Add the tag `hide` or the tag `outlines` to any tiddler to keep it from appearing in the 'simple transclude' view of the references from other tiddlers. Tiddlers with either tag will appear here.
<<list-search
"[!is[system]tag[outlines]] [!is[system]tag[hide]] +[sort[title]]"
"search"
"$:/temp/list-search-example"
"$:/core/ui/ListItemTemplate"
placeholder:"" >>
Tag tiddlers with the tag `sources` if they are book chapters, articles, or webpages. They will appear here and will also appear as references below the tiddlers linked to from them.
<<list-search
"[!is[system]tag[sources]sort[title]]"
"search"
"$:/temp/list-search-example"
"$:/core/ui/ListItemTemplate"
placeholder:"" >>
Topics are any notes that do not have `202` in their title field (i.e., tiddlers created with the clock icon buttons), and are not tagged with any of the following tags: `hide`, `meta`, `outlines`, or `sources`.
<<list-search
"[!is[system]!tag[sources]!tag[meta]!tag[outlines]!tag[hide]!regexp:title[202]sort[title]]"
"search"
"$:/temp/list-search-example"
"$:/core/ui/ListItemTemplate"
placeholder:"" >>
/*BOXES*/
html body.tc-body .bluebox {display:block;background-color:#eef;padding:5px;padding-left:20px;padding-top:10px;margin-top:5px;margin-bottom:5px;width:95%;color:#000;}
html body.tc-body .graybox {display:block;background-color:#eee;padding:5px;padding-left:20px;padding-top:10px;margin-top:5px;margin-bottom:5px;width:95%;color:#000;}
body p {<<colour foreground>>;}
code {color: #b0a;background-color:#eee;}
/*TIGHT NOTES*/
html body.tc-body h1, html body.tc-body h2, html body.tc-body h3, html body.tc-body h4 { margin-top: 0.3em; margin-bottom: 0.3em; }
/*FONT SUBTITLES*/
.serif {font-family: 'Arial', sans-serif; color: <<colour tiddler-editor-border>>font-size:10pt;}
html body.tc-body .serif a.tc-tiddlylink-external {font-family: 'Arial', sans-serif;font-size:12pt; line-height:normal;font-weight:normal;color:#666;}
/*FONT STUFF (colors)*/
html body.tc-body .lightgraybk {background:#eee;padding:1px 4px px 4px;margin-bottom:2px;font-family:'Arial', sans-serif;}
.red {color:red;}
html body.tc-body .blue a {color:blue;}
/*FONT STUFF SOURCES*/
html body.tc-body .source {color:#777;font-size:10pt;}
/*ICON COLORS*/
html body.tc-body .tc-image-edit-button {stroke: white;fill:#555;}
html body.tc-body .tc-image-chevron-up {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-chevron-down {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-fold-button {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-close-button {stroke: white;fill:#555;}
html body.tc-body .tc-image-unfold-button {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-preview-open {stroke: white;fill:#f29;font-size:150%;}
html body.tc-body .tc-image-delete-button {stroke: white;fill:#ff2222;}
html body.tc-body .tc-image-cancel-button {stroke: white;fill:#ffdd55;}
html body.tc-body .tc-image-done-button {stroke: white;fill:#094;}
/*INDENTING*/
html body.tc-body .indent1 {margin-left:1.5em;display:block;}
/*LINKS*/
html body.tc-body a.tc-tiddlylink {text-decoration: none;font-style: normal;font-weight: normal;}
html body.tc-body a.tc-tiddlylink-external {text-decoration: none;font-weight: normal;}
html body.tc-body a.tc-tiddlylink-visited {text-decoration: none;font-weight: normal;}
html body.tc-body .source a.tc-tiddlylink-external {font-weight: normal;font-size:10pt;}
/*LISTS BASIC*/
html body.tc-body ul li {color: <<colour foreground>>;}
html body.tc-body ol li {color:<<colour foreground>>;}
/*TIDDLER TITLES*/
.tc-tiddler-missing .tc-title { font-style: normal; font-weight: bold; }
/*VIEWTEMPLATE FONT SIZE*/
html body.tc-body .viewtemplatebigtext {font-size:110%;}
/*HIDE SECTIONS FOR PRINTING*/
@media print {#tc-page-background {display: none ! important;}}
@media print {.tc-tags-wrapper {display: none ! important;}}
@media print { body.tc-body {background-color: transparent;}}
@media print {.tc-image-chevron-up {display: none ! important;}}
@media print {.tc-image-chevron-down {display: none ! important;}}
@media print {button.sidebar-toggle {display: none ! important;}}
@media print {.hideprint {display: none ! important;}}
@media print {.tc-btn-invisible {display: none ! important;}}
@media print {
.story-river {
margin: 0;
padding: 0;
}
html body.tc-body .tc-tiddler-frame {
margin: 0;
border-bottom: 1px solid #fff;
padding: 5px;}
html body.tc-body a.tc-tiddlylink-external:hover {
border: 1px solid <<colour tiddler-border>>;
}
html body.tc-body .tc-tiddler-info {
padding: 14px 42px 14px 42px;
background-color: <<colour tiddler-info-background>>;}
}
/*BOXES*/
html body.tc-body .graybox {display:block;background-color:#eee;padding:5px;padding-left:20px;padding-top:10px;margin-top:5px;margin-bottom:5px;width:95%;}
body p {color:#000}
code {color: #b0a;}
/*TIGHT NOTES*/
html body.tc-body h1, html body.tc-body h2, html body.tc-body h3, html body.tc-body h4 { margin-top: 0.3em; margin-bottom: 0.3em; }
/*FONT SUBTITLES*/
.serif {font-family: 'Arial', sans-serif;color:#bbb;font-size:10pt;}
html body.tc-body .serif a.tc-tiddlylink-external {font-family: 'Arial', sans-serif;font-size:12pt; line-height:normal;font-weight:normal;color:#666;}
/*FONT STUFF (colors)*/
html body.tc-body .lightgraybk {background:#eee;padding:1px 4px px 4px;margin-bottom:2px;font-family:'Arial', sans-serif;}
.red {color:red;}
/*FONT STUFF SOURCES*/
html body.tc-body .source {color:#777;font-size:10pt;}
/*HORIZONTAL RULE*/
html body.tc-body hr {border:0px;}
html body.tc-body hr {
border-top: 1px solid #bbb;
text-align: center;
width:100%; margin-top:15px; margin-bottom:15px;
}
/*ICON COLORS*/
html body.tc-body .tc-image-new-button {stroke: white;fill:#7897fc;}
html body.tc-body .tc-image-timestamp-on {stroke: white;fill:#7897fc;}
html body.tc-body .tc-image-chevron-up {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-chevron-down {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-fold-button {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-unfold-button {stroke: white;fill:#ccc;}
html body.tc-body .tc-image-preview-open {stroke: white;fill:#d9c;}
/*INDENTING*/
html body.tc-body .indent1 {margin-left:1.5em;display:block;}
/*LINKS*/
html body.tc-body a.tc-tiddlylink {text-decoration: none;font-style: normal;font-weight: normal;}
html body.tc-body a.tc-tiddlylink-missing {font-weight:normal; background-color:#ffd; color:#66f;font-style:normal;}
html body.tc-body a.tc-tiddlylink-external {text-decoration: none;font-weight: normal;color: #109;}
html body.tc-body a.tc-tiddlylink-visited {text-decoration: none;font-weight: normal;color: #66f;}
html body.tc-body .source a.tc-tiddlylink-external {font-weight: normal;font-size:10pt;}
/*LISTS BASIC*/
html body.tc-body ul li {color:#000;}
html body.tc-body ol li {color:#000;}
/*TABLES BASIC*/
html body.tc-body th {color:#000;}
html body.tc-body td {color:#000;}
/*TABLES GREENALTROWS*/
html body.tc-body .greenaltrows th {padding: 10px; border: 1px solid #aaa; vertical-align:top;text-align:left;}
html body.tc-body .greenaltrows td {padding: 10px; border: 1px solid #aaa; vertical-align:top;}
html body.tc-body .greenaltrows tr:nth-child(even) td {background-color:#F3F6F5;}
html body.tc-body .greenaltrows tr:nth-child(odd) td {background-color:#E7EDEB;}
html body.tc-body .greenaltrows {
-moz-box-shadow: 10px 10px 5px #bbb;
-webkit-box-shadow: 10px 10px 5px #bbb;
box-shadow: 10px 10px 5px #bbb;
}
/*TIDDLER TITLES*/
.tc-tiddler-missing .tc-title { font-style: normal; font-weight: bold; }
/*HIDE SECTIONS FOR PRINTING*/
@media print {#tc-page-background {display: none ! important;}}
@media print {.tc-tags-wrapper {display: none ! important;}}
@media print { body.tc-body {background-color: transparent;}}
@media print {.tc-image-chevron-up {display: none ! important;}}
@media print {.tc-image-chevron-down {display: none ! important;}}
@media print {button.sidebar-toggle {display: none ! important;}}
@media print {.hideprint {display: none ! important;}}
@media print {.tc-btn-invisible {display: none ! important;}}
@media print {
.story-river {
margin: 0;
padding: 0;
}
html body.tc-body .tc-tiddler-frame {
margin: 0;
border-bottom: 1px solid #fff;
padding: 5px;}
html body.tc-body a.tc-tiddlylink-external:hover {
border: 1px solid <<colour tiddler-border>>;
}
html body.tc-body .tc-tiddler-info {
padding: 14px 42px 14px 42px;
background-color: <<colour tiddler-info-background>>;}
}
}
<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags}} journalText="">
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
<$reveal type="nomatch" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags="" text={{{ [<journalTitle>get[]] }}}/>
</$reveal>
<$reveal type="match" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags="" text=<<journalText>>/>
</$reveal>
</$wikify>
</$vars>
<$button class="tc-btn-invisible" popup="$:/SamplePopupState">{{$:/core/images/chevron-down}}</$button>
<$reveal type="popup" state="$:/SamplePopupState" class="tc-tiddler-body tc-drop-down tc-popup-keep">
<$checkbox tiddler="$:/core/ui/EditTemplate/title" tag="$:/tags/EditTemplate"> title</$checkbox><br>
<$checkbox tiddler="$:/core/ui/EditTemplate/tags" tag="$:/tags/EditTemplate"> tags</$checkbox><br>
<$checkbox tiddler="$:/core/ui/EditTemplate/type" tag="$:/tags/EditTemplate"> type</$checkbox><br>
<$checkbox tiddler="$:/core/ui/EditTemplate/fields" tag="$:/tags/EditTemplate"> fields</$checkbox><br>
<$checkbox tiddler="$:/config/TextEditor/EnableToolbar" field="text" checked="yes" unchecked="no" default="no"> toolbar</$checkbox><br>
<$checkbox tiddler="$:/.giffmex/EditTemplate/custom" tag="$:/tags/EditTemplate"> custom</$checkbox>
''Open / close the sidebar:'' <$list filter="[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]" variable="ignore"><$button set="$:/state/sidebar" setTo="no" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class="tc-btn-invisible">{{$:/core/images/chevron-right}}</$button>
</$list><$list filter="[[$:/state/sidebar]get[text]] +[else[yes]match[no]]" variable="ignore">
<$button set="$:/state/sidebar" setTo="yes" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class="tc-btn-invisible">{{$:/core/images/chevron-left}}</$button>
</$list>
''Click the link below to edit the''<br> [[Custom area|$:/.giffmex/EditTemplate/custom]]
{{$:/core/ui/EditorToolbar/editor-height-dropdown}}
</$reveal>
\define journalButton()
<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/.giffmex/actions/new-journal}}>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/timestamp-on}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>
</$list>
</$button>
\end
<<journalButton>>
<span class="red">red</span> <span class="thinred">thinred</span> <span class="orange">orange</span> <span class="pink">pink</span> <span class="purple">purple</span> <br><br>
<span class="gray">gray</span> <span class="thingray">thingray</span> <span class="wine">wine</span> <span class="thinwine">thinwine</span> <span class="brown">brown</span> <span class="gold">gold</span> <br><br>
<span class="green">green</span> <span class="dkgrn">dkgrn</span> <span class="blue">blue</span> <span class="thinblue">thinblue</span> <span class="teal">teal</span>
<hr>
<span class="greenbk">greenbk</span> <span class="bluebk">bluebk</span> <span class="orangebk">orangebk</span> <span class="pinkbk">pinkbk</span> <br><br>
<span class="purplebk">purplebk</span> <span class="graybk">graybk</span> <span class="tanbk">tanbk</span> <span class="yellowbk">yellowbk</span> <br><br>
<span class="turqbk">turqbk</span>
<hr>
!!! subtopicblue, subtopicnavy, etc
<span class="subtopicblue">blue</span> <span class="subtopicnavy">navy</span> <span class="subtopicpurple">purple</span>
<span class="subtopicturq">turq</span> <span class="subtopicteal">teal</span> <span class="subtopicgreen">green</span> <span class="subtopicpine">pine</span>
<span class="subtopiclav">lav</span> <span class="subtopicmagenta">magenta</span> <span class="subtopicorange">orange</span>
<span class="subtopicgold">gold</span> <span class="subtopicolive">olive</span> <span class="subtopicbrown">brown</span> <span class="subtopicwine">wine</span>
<span class="subtopicgray">gray</span> <span class="subtopicslate">slate</span>
*Change the title and subtitle of this file
**Edit [[$:/SiteTitle]] and [[$:/SiteSubtitle]]
*Customize the date and time stamp when creating new notes
**Open [[$:/config/NewJournal/Title]] and adjust. The guide to formatting dates and times is here: https://tiddlywiki.com/#DateFormat
**Make changes to the Custom Stylesheet: edit [[$:/.giffmex/.Stylesheet4tiddlyblink]] and/or create a tiddler and tag it `$:/tags/Stylesheet` and choose 'text/css' in the type field.
*Keep WikiWords (CamelCase words like McDonalds ) from becoming links
**Add `~` before a wikiword to keep it from becoming a link
**To add to a word-by-word list of frequent wikiwords that should not be links, add them, comma-separated, to $:/sk/WhiteList
**Nuclear option: To turn off //all //automatic wikiword linking, open $:/ControlPanel > Settings > uncheck the Camel Case Wiki Links checkbox
<$action-sendmessage
$message="tm-edit-text-operation"
$param="wrap-selection"
prefix="""<span class="">"""
suffix="""</span>"""
/>
"""
This is where you can add your own items you want visible in the edit template. For example:
Grab symbol code: e.g., ♦ `♦` ★ `★`
Grab snippets: e.g., `tiddlywiki --rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html static text/plain --rendertiddler $:/core/templates/static.template.css static/static.css text/plain`
"""
<br>
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
!!All references, in links and in regular text.
We disabled references that do not appear in links. This was a feature in early versions of TiddlyBlink, but we and others found it produced a lot of unwanted references, and confusion as people clicked the link and did not have a link to return back to the previous tiddler.
But if you would like to have this feature back in your TiddlyBlink, just edit the following tiddlers:
"""
$:/.giffmex/ViewTemplate/refscontext
$:/.giffmex/ViewTemplate/refslinks
$:/.giffmex/ViewTemplate/refstranscludeclean
$:/.giffmex/ViewTemplate/refstranscludecollapse
"""
And replace
`all[current]backlinks[]`
with
`regexp:text<mycrit>`
For those who want to understand ~TiddlyBlink better, tinker with it and customize it, here is the basic information (assuming you already know how ~TiddlyWiki works).
''General''
*CSS styles can be found and edited in $:/.giffmex/.Stylesheet4tiddlyblink
''Tiddler toolbar in view mode''
*The + icon activates $:/.giffmex/ViewToolbar/new-note-here and the clock icon activates $:/.giffmex/ViewToolbar/new-note-here-datetime . These create new tiddlers whose text field contains a link to the tiddler used to create them. So the 'child' tiddler contains a link to the 'parent' tiddler. The title field is either empty or contains a date and time stamp, depending on which button is chosen.
*The {{$:/core/images/full-screen-button}} icon activates the [[Fullscreen editor plugin|$:/plugins/jd/fullscreen-editor]]. This opens the current tiddler in edit mode that occupies the entire screen.
''Link creation and editing''
*Typing `[[` activates autocomplete, executed by the [[comptext plugin|$:/plugins/snowgoon88/edit-comptext]]. If the tiddler already exists, you can hit enter if the desired tiddler is the first entry, or navigate with the down arrow key until you reach it. Then hit enter. The opening and closing brackets that get created by this plugin can be modified using the tiddler $:/plugins/snowgoon88/edit-comptext/config .
**Note that the comptext plugin relies on $:/config/EditorTypeMappings/text/vnd.tiddlywiki set to `comptext`
*When you rename a tiddler, this activates the [[Relink plugin|$:/plugins/flibbles/relink]]. This changes all the references to the renamed tiddler title found as links in all the other tiddlers. It does not change references that are not found in links.
*WikiWords in CamelCase automatically turn into links. $:/sk/WhiteList is a list run by the [[Whitelist plugin|$:/plugins/sk/WhiteList]] that allows you to list all WikiWords you do not want turned into links. Other options: manually insert `~` before the WikiWords as they occur in tidders, or, if you are like me and find WikiWords annoying rather than helpful, uncheck the first checkbox in the $:/ControlPanel > settings tab.
''Sidebar''
*The ~TiddlyBlink sidebar is found in the $:/.giffmex/sidebar/tabs/tiddlyblinkcontrols tiddler.
*The blue clock button in the sidebar activates $:/.giffmex/buttons/newnote-datetime . This is set up to create a new tiddler with a date and timestamp in the title.
*Clicking on a checkmark in the ~TiddlyBlink tab tags one of three tiddlers ($:/.giffmex/ViewTemplate/refscontext, $:/.giffmex/ViewTemplate/refslinks, $:/.giffmex/ViewTemplate/refstranscludeclean and $:/.giffmex/ViewTemplate/refstranscludecollapse) with the tag ~$:/tags/ViewTemplate, making them show up under the tiddler. Those three tiddlers grab all the text references to the current tiddler, and format them into either links, transclusions, or highlighted search results in context. The latter uses the [[ContextPlugin|$:/plugins/danielo515/ContextPlugin]].
<<list-links "[all[current]backlinks[]!tag[outlines]]">>
\define tagreset2()
<$list filter="[tag[$:/giffmex/titleview]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
\define switchStoryView(storyview,default)
<$select tiddler='$storyview$' default='$default$'>
<option value="zoomin"><$text text='one tiddler only'/></option>
<option value="classic"><$text text='multiple tiddlers'/></option>
</$select>
\end
''Choose how to view titles:''
<$list filter="[tag[$:/giffmex/titleview]sort[caption]]">
<$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox>
<$view field="caption"/><br/>
</$list>
<$list filter="[all[current]!tag[$:/tags/ViewTemplate]]">
<$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset2>>/> <$view field="caption"/><br/>
</$list>
</$list>
<br>
''Choose how to view tiddlers in each column''
Left column: <<switchStoryView $:/view zoomin>>
Right column: <<switchStoryView $:/_sq/Stories/config/Story2-storyview classic>>
''Left column to right column width ratio:''
{{$:/config/sq/Stories/storyRiverRatio}} : <$text text={{{[[100]subtract{$:/config/sq/Stories/storyRiverRatio}]}}}/>
<$range tiddler="$:/config/sq/Stories/storyRiverRatio" min="20" max="80" default="50" increment="5"/>
<!--
''Right column font-size''
Tiddler: {{$:/config/sq/Stories/story2/fontsize-title}}px
<$range tiddler="$:/config/sq/Stories/story2/fontsize-title" min="6" max="40" default="14" increment="1"/>
Body: {{$:/config/sq/Stories/story2/fontsize-body}}px
<$range tiddler="$:/config/sq/Stories/story2/fontsize-body" min="6" max="40" default="15" increment="1"/>
-->
Paste a tiddler title to view tiddler in tab: <$edit-text tiddler="$:/temp/sbartidddisplayvalue" placeholder="tiddler title" tag="input" type="text"/>
{{$:/.giffmex/sidebar/parallel}} <br><h2><$list filter="[{$:/temp/sbartidddisplayvalue}is[tiddler]]" emptyMessage="tiddler doesn't exist" ></$list></h2>
<$transclude tiddler={{$:/temp/sbartidddisplayvalue}} mode="block" />
\define tagreset()
<$list filter="[tag[$:/giffmex/refs]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
''Choose how to view references:''
<$list filter="[tag[$:/giffmex/refs]sort[caption]]">
<$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox>
<$view field="caption"/><br/>
</$list>
<$list filter="[all[current]!tag[$:/tags/ViewTemplate]]">
<$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset>>/> <$view field="caption"/><br/>
</$list>
</$list>
{{Hint for Muffin tutorial}}
<br>Note that the gray boxes in the context and transclude options are links to their respective tiddlers.
\define tagreset()
<$list filter="[tag[refs]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
Click the palette icon below to ''select a color palette'' from a dropdown. Default is ~TiddlyBlink. TiddlyWiki default is Vanilla. Note that dark themes may obscure some features.
Click here: {{$:/core/ui/Buttons/palette}}
<hr>
<span class="graybox">
''View references as:''
<$list filter="[tag[refs]sort[created]]">
<$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox>
<$link><$view field="caption"/></$link><br/>
</$list>
<$list filter="[all[current]!tag[$:/tags/ViewTemplate]]">
<$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset>>/><$link> <$view field="caption"/></$link><br/>
</$list>
</$list>
<br>Note that the gray boxes in the context and transclude options are links to their respective tiddlers.
</span>
```
/*FONT STUFF (colors)*/
html body.tc-body .red {color: red; font-weight: bold;}
html body.tc-body .thinred {color: red; }
html body.tc-body .green {color:#0a5;font-weight:bold;}
html body.tc-body .blue {color:#0000ee;font-weight:bold;}
html body.tc-body .thinblue {color:#0000ee;font-weight:normal;}
html body.tc-body .bigblue {color:#0000ee;font-size:20pt;font-weight:bold;}
html body.tc-body .orange {color:#e81;font-weight: bold;}
html body.tc-body .dkgrn {color:#063;font-weight: bold;}
html body.tc-body .pink {color:#e0b;font-weight: bold;}
html body.tc-body .checkmark {color:#f81;font-weight: bold;font-size:18pt;}
html body.tc-body .purple {color:#990099;font-weight: bold;}
html body.tc-body .gray {color:#777777;font-weight: bold;}
html body.tc-body .thingray {color:#999;}
html body.tc-body .wine {color:#903;font-weight: bold;}
html body.tc-body .thinwine {color:#903;}
html body.tc-body .brown {color:#773300;font-weight: bold;}
html body.tc-body .gold {color:#aa0;font-weight: bold;}
html body.tc-body .white {color: white;}
html body.tc-body .teal {color:#0099bb;font-weight: bold;}
html body.tc-body .greenbk {background:#cf9;padding:1px 4px 1px 4px;}
html body.tc-body .bluebk {background:#eef;padding:1px 4px 1px 4px;}
html body.tc-body .orangebk {background:#fd7;padding:1px 4px 1px 4px;}
html body.tc-body .pinkbk {background:#fde;padding:1px 4px 1px 4px;}
html body.tc-body .purplebk {background:#ecf;padding:1px 4px 1px 4px;}
html body.tc-body .graybk {background:#ddd;padding:1px 4px 1px 4px;}
html body.tc-body .tanbk {background:#e8dfa1;padding:1px 4px 1px 4px;}
html body.tc-body .yellowbk {background:#ffc;padding:1px 4px 1px 4px;}
html body.tc-body .turqbk {background:#bdb;padding:1px 4px 1px 4px;}
html body.tc-body .subtopicgreen {color:#0a5;font-weight:bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicmagenta {color:#c09;font-weight:bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicblue {color:#0000ee;font-weight:bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicorange {color:#dd6633;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicpine {color:#558877;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopiclav {color:#cc88bb;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicpurple {color:#8833dd;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicgray {color:#777777;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicnavy {color:#00a;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicwine {color:#906;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicbrown {color:#773300;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicgold {color:#bbaa11;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicteal {color:#0099bb;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicolive {color:#aabb66;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicturq {color:#55ddbb;font-weight: bold;font-size:18pt;text-align:center;}
html body.tc-body .subtopicslate {color:#8888cc;font-weight: bold;font-size:18pt;text-align:center;}
```
{
"$:/temp/focussedTiddler": "hide",
"BwO": "hide",
"Rhizome Plateau Note 11-3": "hide",
"plane of consistency": "hide",
"Rhizome Plateau Note p12-1": "hide",
"Rhizome Plateau Note p4-3": "hide",
"Rhizome Plateau Note p8-3": "hide",
"Rhizome Plateau Note p3/4-1": "hide",
"Rhizome Plateau Note p5-1": "hide",
"Rhizome Plateau Note p15-1": "hide",
"Rhizome Plateau Note p9-6": "hide",
"Rhizome Plateau Note p9-5": "show",
"Rhizome Plateau Note p4-2": "show",
"ATP p40/41-1": "show",
"ATP p28-1": "hide",
"ATP p37-1": "hide",
"ATP p26/7-1": "hide",
"ATP p38-1": "show",
"ATP p30/31-1": "hide",
"ATP p11-5": "hide",
"ATP p4-4": "show",
"ATP p7-4": "hide",
"ATP p68/69-1": "hide",
"ATP p68-1": "hide",
"ATP p66/67-1": "hide",
"molecular": "hide",
"molar": "hide",
"ATP p44/43-1": "hide",
"ATP p79-1": "hide",
"ATP p82/3-1": "hide",
"ATP p83/84-1": "hide",
"ATP p85-1": "show",
"ATP p92-1": "hide",
"ATP p95-1": "show",
"ATP p143-1": "show",
"ATP p140-2": "hide",
"ATP p140-1": "show",
"ATP p146/147-1": "hide",
"ATP p144-1": "show",
"ATP p138/139-1": "show",
"ATP p134-2": "show",
"ATP p134-1": "hide",
"ATP p76-3": "show",
"ATP p76-2": "hide",
"ATP p143-2": "show",
"ATP p141/142-1": "show",
"ATP p7-2": "hide",
"ATP p10-1": "hide",
"ATP p11/12-1": "hide",
"ATP p9-7": "hide",
"ATP p157/158-1": "show",
"MnC p18-1": "hide",
"ATP p72/73-1": "hide",
"ATP p141-2": "hide",
"ATP p225-1": "show",
"ATP p217-1": "show",
"ATP p182-1": "hide",
"ATP p181-2": "hide",
"Draft of 'ATP p180-1'": "show",
"ATP p180-1": "show",
"ATP p247-1": "show",
"ATP p263-2": "hide",
"ATP p24/25-1": "show",
"MnC p97-1": "show",
"ATP p94-1": "hide",
"AO p1-2": "hide",
"ATP p15/16-1": "show",
"ATP I 77/78-1": "hide",
"ATP I 78/79-1": "hide",
"ATP I 80-1": "hide",
"ATP I 80/81-1": "show",
"ATP p129-2": "hide",
"ATP p22-2": "hide",
"ATP p251-1": "hide",
"ATP p258-1": "show",
"AoP p48-1": "hide",
"AoP p36-1": "hide",
"ATP p300-1": "show",
"ATP p314-1": "show",
"ATP p317-2": "show",
"ATP p317/318-1": "show",
"ATP p331-2": "hide",
"ATP p274/275-1": "show",
"ATP p272/273-1": "show",
"AO p3-1": "hide",
"ATP p145/146-1": "hide",
"ToS p19-1": "hide",
"MnC p90-1": "hide",
"ATP p267-1": "hide",
"ATP p409-1": "show",
"ATP p407-1": "hide",
"ATP p406-1": "hide",
"ATP p348-1": "hide",
"ATP p335-2": "hide",
"Draft 3 of 'TT2 p'": "show",
"ATP p195/196-1": "hide",
"ATP p87/88-1": "show",
"ATP p17-3": "hide",
"ATP p170-2": "hide",
"CMO p4-1": "show",
"AoP p67-1": "hide",
"DF p28/29-1": "hide",
"ATP p318-1": "hide",
"LoS p52-1": "show",
"DR p78-1": "hide",
"ATP p120-1": "hide",
"SM1 p52-1": "hide",
"DnP I 106-1": "hide",
"ATP p195-1": "hide",
"TMU p 39-1": "show",
"AO p10/11-1": "show",
"Draft of 'AO p7-3'": "hide",
"KPR p12-1": "show",
"KPR p13-1": "show",
"LoF p7-1": "show",
"SM1 p56-1": "hide",
"AS1 p33-1": "hide",
"SOS p20-1": "hide",
"S4 p8/9-1": "show",
"AS1 p30/31-1": "hide",
"AS1 p28-1": "hide",
"SM1 p65-1": "hide",
"SM1 p64-1": "hide",
"NL p9-1": "hide",
"LoF p38/39-1": "hide",
"CMO p8/9-1": "hide",
"DF p6-2": "hide",
"TMU p26-2": "hide",
"T&T p59-1": "hide",
"NS6 p8-1": "show",
"RTS p22-2": "hide",
"RTS p23-1": "hide",
"RTS p31/32-1": "hide",
"RTS p41-1": "hide",
"RTS p56-1": "hide",
"RTS p52-1": "hide",
"RTS p 132-1": "hide",
"RTS p57-1": "hide",
"ATP p110-1": "hide",
"EIP p13/14-1": "hide",
"LE p33-1": "hide",
"flow": "show",
"ATP p116/117-1": "show",
"ATP p76/77-1": "hide",
"S5 p9-1": "show",
"ATP p264-1": "hide",
"LoS p30-1": "hide",
"double articulation": "hide",
"T&T p24-1": "show",
"IFI p15-1": "hide",
"LoS p46-1": "show",
"T&T p57-1": "show",
"T&T p58-1": "show",
"T&T p58/59-1": "show",
"T&T p59-2": "show",
"T&T p60-2": "show",
"T&T p62-1": "show",
"IFI p12-3": "show",
"TWL p37-1": "show",
"ATP p54/55-1": "show",
"ATP p35-3": "show",
"ATP p113/114-1": "show",
"AO p2-2": "show",
"free association": "show",
"Reassembling the Social": "hide",
"RTS p103-1": "hide",
"RTS p108-1": "show",
"Research Project": "hide",
"RTS p175-1": "hide",
"RTS p183-1": "hide",
"RTS p187-1": "hide",
"RTS p207-1": "hide",
"TS131": "show",
"TS43": "show",
"TS23": "show",
"L81-20": "hide",
"L81-23": "hide",
"Draft 7 of 'DR p 1' by Ian277634": "hide",
"Draft 14 of 'DR p' by Ian277634": "hide",
"CC50": "hide",
"Syn p107-1": "hide",
"TS20": "hide",
"Draft 9 of 'DR p' by Ian277634": "hide",
"TF4-1": "show",
"AR1 p75-1": "show",
"U165": "hide",
"DG12": "show",
"DG11": "show",
"L82-5": "hide",
"ATP p84-3": "show",
"AD1 23-1": "hide",
"AD1 p12-1": "hide",
"transindividual": "show",
"CR40/42": "hide",
"IS59": "show",
"IS28": "hide",
"IS85": "hide",
"IS84": "hide",
"IS81": "hide",
"IS76": "hide",
"IS70": "hide",
"IS53": "hide",
"IS86": "hide",
"LE p36-1": "hide",
"PF11": "hide",
"Skinner": "hide",
"stimulus discrimination": "hide",
"VB35": "hide",
"VB43": "hide",
"CR29": "show",
"CR32": "show",
"BD102": "hide",
"verbal": "hide",
"HE58": "show",
"HE33": "show",
"AS1 p33-2": "show",
"HE16": "hide",
"IC10": "show",
"reality": "hide",
"TD5": "show",
"HE79": "show",
"HE89": "show",
"Draft of 'Di23' by Ian277634": "hide"
}
\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter="[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]"/>
\define save-tiddler-actions()
<$action-sendmessage $message="tm-add-tag" $param={{{ [<newTagNameTiddler>get[text]] }}}/>
<$action-sendmessage $message="tm-add-field" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
<<delete-edittemplate-state-tiddlers>>
<$action-sendmessage $message="tm-save-tiddler"/>
\end
\define cancel-delete-tiddler-actions(message)
<<delete-edittemplate-state-tiddlers>>
<$action-sendmessage $message="tm-$message$-tiddler"/>
<$list filter="[all[current]links[]is[missing]]"><$action-createtiddler $basetitle=<<currentTiddler>>/></$list>
\end
<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>
<$fieldmangler>
<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify "$:/temp/NewTagName">> newFieldNameTiddler=<<qualify "$:/temp/NewFieldName">> newFieldValueTiddler=<<qualify "$:/temp/NewFieldValue">> newFieldNameInputTiddler=<<qualify "$:/temp/NewFieldName/input">> newFieldNameSelectionTiddler=<<qualify "$:/temp/NewFieldName/selected-item">> newTagNameInputTiddler=<<qualify "$:/temp/NewTagName/input">> newTagNameSelectionTiddler=<<qualify "$:/temp/NewTagName/selected-item">> typeInputTiddler=<<qualify "$:/temp/Type/input">> typeSelectionTiddler=<<qualify "$:/temp/Type/selected-item">>>
<$keyboard key="((cancel-edit-tiddler))" actions=<<cancel-delete-tiddler-actions "cancel">>>
<$keyboard key="((save-tiddler))" actions=<<save-tiddler-actions>>>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]" variable="listItem">
<$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]">
<$transclude tiddler=<<listItem>>/>
</$set>
</$list>
</$keyboard>
</$keyboard>
</$vars>
</$fieldmangler>
</div>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[outlines]!tag[hide]sort[title]] -[is[current]]"><$link><$view field="title"/></$link><span class="indent1"><$link><span class="graybox"><$context term=<<searchme>> /></span></$link></span></$list>
</$vars>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link>
<$reveal type="nomatch" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="show">{{$:/core/images/unfold-button}}</$button><br>
</$reveal>
<$reveal type="match" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="hide">{{$:/core/images/fold-button}}</$button>
<span class="indent1"><$link><span class="graybox"><$context term=<<searchme>> /></span></$link></span>
</$reveal>
</$list>
</$vars>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]sort[title]] -[is[current]]"><$link><$view field="title" /></$link><br></$list>
</$vars>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$vars searchme=<<currentTiddler>> searchspx={{{ [<currentTiddler>escaperegexp[]]}}} >
<<tabs '[!is[system]all[current]backlinks[]!tag[hide]sort[title]] -[is[current]]' '' '$:/state/tab/strolltabs' 'tc-vertical'>>
</$vars>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link><span class="indent1"><$link><span class="graybox"><$transclude field="text" mode="block" /></span></$link></span></$list>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link>
<$reveal type="nomatch" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="show">{{$:/core/images/unfold-button}}</$button><br/>
</$reveal>
<$reveal type="match" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="hide">{{$:/core/images/fold-button}}</$button>
<span class="indent1">
<$link><span class="graybox">
<$transclude field="text" mode="block" /></span></$link></span>
</$reveal>
</$list>
</$reveal>
</span>
<span class="viewtemplatebigtext">
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<hr>
<$list filter="[!is[system]all[current]backlinks[]!tag[hide]!tag[outlines]sort[title]] -[is[current]]"><$link><$view field="title"/></$link>
<$reveal type="nomatch" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="show">{{$:/core/images/unfold-button}}</$button><br/>
</$reveal>
<$reveal type="match" stateTitle="$:/.giffmex/TiddlyBlinkFoldData" stateIndex=<<currentTiddler>> text="show">
<$button class=<<tv-config-toolbar-class>> setTitle="$:/.giffmex/TiddlyBlinkFoldData" setIndex=<<currentTiddler>> setTo="hide">{{$:/core/images/fold-button}}</$button>
<span class="indent1">
<$link><span class="graybox">
<$transclude field="text" mode="block" />
<$list filter="[all[current]]">
{{||$:/.giffmex/showsubrefs}}
</$list>
</span></$link></span>
</$reveal>
</$list>
</$reveal>
</span>
\define title-styles()
fill:$(foregroundColor)$;
\end
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<div class="tc-tiddler-title">
<div class="tc-titlebar">
<span class="tc-tiddler-controls">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>
</span>
<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
<$link>
<$set name="foregroundColor" value={{!!color}}>
<span class="tc-tiddler-title-icon" style=<<title-styles>>>
<$transclude tiddler={{!!icon}}/>
</span>
</$set>
<$list filter="[all[current]removeprefix[$:/]]">
<h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
<span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/>
</h2>
</$list>
<br><$list filter="[all[current]!prefix[$:/]]">
<h2 class="tc-title">
<$view field="title"/>
</h2>
</$list>
</$link>
</$set>
</div>
<$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<<listItem>> mode="block"/></$list>
</$reveal>
</div>
\define button()
<$button tooltip={{$:/language/Buttons/NewHere/Hint}} class=<<tv-config-toolbar-class>> actions=<<actions>>>
{{$:/core/images/new-button}}
</$button>
\end
\define actions()
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> text="""[[$(tid)$]]"""/>
\end
<$wikify name=tid text=<<currentTiddler>>>
<<button>>
</$wikify>
\whitespace trim
\define journalButtonActions()
<$action-sendmessage $message="tm-new-tiddler" title=<<now """$(journalTitleTemplate)$""">> text="""[[$(tid)$]]""" />
\end
\define journalButtonTags()
[[$(currentTiddlerTag)$]] $(journalTags)$
\end
\define journalButton()
<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}}
aria-label={{$:/language/Buttons/NewJournalHere/Caption}}
class=<<tv-config-toolbar-class>>
actions=<<journalButtonActions>>>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/new-journal-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>
</span>
</$list>
</$button>
\end
<$set name="journalTitleTemplate" value={{$:/config/NewJournal/Title}}>
<$set name="tid" value=<<currentTiddler>>>
<<journalButton>>
</$set>
</$set>
\whitespace trim
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<$button popup=<<qualify "$:/state/popup/more">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/preview-open}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text={{$:/language/Buttons/More/Caption}}/>
</span>
</$list>
</$button>
<$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="belowleft" animate="yes">
<div class="tc-drop-down">
<$set name="tv-config-toolbar-icons" value="yes">
<$set name="tv-config-toolbar-text" value="yes">
<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] +[tag[refview]] -[[$:/core/ui/Buttons/more-tiddler-actions]]" variable="listItem">
<$reveal type="match" state=<<config-title>> text="hide">
<$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]">
<$transclude tiddler=<<listItem>> mode="inline"/>
</$set>
</$reveal>
</$list>
</$set>
</$set>
</$set>
</div>
</$reveal>
\define tagreset()
<$list filter="[tag[refs]sort[created]] -[[$(currentTiddler)$]]" variable="removeme">
<$action-listops $tiddler=<<removeme>> $tags="+[remove[$:/tags/ViewTemplate]]"/>
</$list>
<$action-deletefield dummy/>
\end
<span style="font-size:12pt;">
<span class="graybox">
''View references as:''
<$list filter="[tag[refs]sort[created]]"><$list filter="[all[current]tag[$:/tags/ViewTemplate]]">
<$checkbox field=dummy checked="yes" unchecked="yes" default="yes"></$checkbox><$link><$view field="caption"/></$link></$list><$list filter="[all[current]!tag[$:/tags/ViewTemplate]]"><$checkbox tag="$:/tags/ViewTemplate" xinvertTag="yes" checkactions=<<tagreset>>/><$link><$view field="caption"/></$link> </$list></$list>
</span>
</span>
{{build-and-export}}
\define list-search(
filter:"[tags[]]",
search:"search:title",
state:"$:/temp/list-search",
template:"$:/core/ui/ListItemTemplate",
placeholder:"Filter",
limit:100000
)
<div>
<$edit-text
tiddler="$state$"
type="search"
tag="input"
default=""
placeholder="$placeholder$"/>
</div>
<$reveal state="$state$" type="match" text="">
<$list filter="$filter$+[limit[$limit$]]" template="$template$"/>
</$reveal>
<$reveal state="$state$" type="nomatch" text="">
<$list filter="$filter$+[$search${$state$}]+[limit[$limit$]]" template="$template$"/>
</$reveal>
\end
[[A Thousand Pleateaus]] [[Rhizome]]
{{$:/language/OfficialPluginLibrary/Hint}}
$:/.giffmex/ui/EditTemplate
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2021, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" class=\"tc-image-plugin-generic-language tc-image-button\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" class=\"tc-image-plugin-generic-plugin tc-image-button\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" class=\"tc-image-plugin-generic-theme tc-image-button\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/RemoveTags": {
"title": "$:/language/ControlPanel/Basics/RemoveTags",
"text": "Update to current format"
},
"$:/language/ControlPanel/Basics/RemoveTags/Hint": {
"title": "$:/language/ControlPanel/Basics/RemoveTags/Hint",
"text": "Update the tags configuration to the latest format"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LayoutSwitcher/Caption": {
"title": "$:/language/ControlPanel/LayoutSwitcher/Caption",
"text": "Layout"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel",
"text": "~TiddlySpot Control Panel"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly",
"text": "The ~TiddlySpot service is currently only available in read-only form. Please see http://tiddlyspot.com/ for the latest details. The ~TiddlySpot saver can still be used to save to compatible servers."
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-browser": {
"title": "$:/language/Docs/ModuleTypes/utils-browser",
"text": "Adds browser-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/ClearInput/Caption": {
"title": "$:/language/EditTemplate/Tags/ClearInput/Caption",
"text": "clear input"
},
"$:/language/EditTemplate/Tags/ClearInput/Hint": {
"title": "$:/language/EditTemplate/Tags/ClearInput/Hint",
"text": "Clear tag input"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''sse-enabled'' - set to \"yes\" to enable Server-sent events (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [ [<name>] [<value>] ]*\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variables\n* ''value'': Value of optional variables\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* Multiple ''name''/''value'' pairs can be used to pass more than one variable\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Listing/Rename/Tooltip": {
"title": "$:/language/Import/Listing/Rename/Tooltip",
"text": "Rename tiddler before importing"
},
"$:/language/Import/Listing/Rename/Prompt": {
"title": "$:/language/Import/Listing/Rename/Prompt",
"text": "Rename to:"
},
"$:/language/Import/Listing/Rename/ConfirmRename": {
"title": "$:/language/Import/Listing/Rename/ConfirmRename",
"text": "Rename tiddler"
},
"$:/language/Import/Listing/Rename/CancelRename": {
"title": "$:/language/Import/Listing/Rename/CancelRename",
"text": "Cancel"
},
"$:/language/Import/Listing/Rename/OverwriteWarning": {
"title": "$:/language/Import/Listing/Rename/OverwriteWarning",
"text": "A tiddler with this title already exists."
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin."
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>)."
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>."
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler."
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler."
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler."
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable."
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>."
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmAction": {
"title": "$:/language/ConfirmAction",
"text": "Do you wish to proceed?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/FilterRunPrefix": {
"title": "$:/language/Error/FilterRunPrefix",
"text": "Filter Error: Unknown prefix for filter run"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/FormatFilterOperator": {
"title": "$:/language/Error/FormatFilterOperator",
"text": "Filter Error: Unknown suffix for the 'format' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LayoutSwitcher/Description": {
"title": "$:/language/LayoutSwitcher/Description",
"text": "Open the layout switcher"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PageTemplate/Description": {
"title": "$:/language/PageTemplate/Description",
"text": "the default ~TiddlyWiki layout"
},
"$:/language/PageTemplate/Name": {
"title": "$:/language/PageTemplate/Name",
"text": "Default ~PageTemplate"
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/Shortcuts/Input/AdvancedSearch/Hint": {
"title": "$:/language/Shortcuts/Input/AdvancedSearch/Hint",
"text": "Open the ~AdvancedSearch panel from within the sidebar search field"
},
"$:/language/Shortcuts/Input/Accept/Hint": {
"title": "$:/language/Shortcuts/Input/Accept/Hint",
"text": "Accept the selected item"
},
"$:/language/Shortcuts/Input/AcceptVariant/Hint": {
"title": "$:/language/Shortcuts/Input/AcceptVariant/Hint",
"text": "Accept the selected item (variant)"
},
"$:/language/Shortcuts/Input/Cancel/Hint": {
"title": "$:/language/Shortcuts/Input/Cancel/Hint",
"text": "Clear the input field"
},
"$:/language/Shortcuts/Input/Down/Hint": {
"title": "$:/language/Shortcuts/Input/Down/Hint",
"text": "Select the next item"
},
"$:/language/Shortcuts/Input/Tab-Left/Hint": {
"title": "$:/language/Shortcuts/Input/Tab-Left/Hint",
"text": "Select the previous Tab"
},
"$:/language/Shortcuts/Input/Tab-Right/Hint": {
"title": "$:/language/Shortcuts/Input/Tab-Right/Hint",
"text": "Select the next Tab"
},
"$:/language/Shortcuts/Input/Up/Hint": {
"title": "$:/language/Shortcuts/Input/Up/Hint",
"text": "Select the previous item"
},
"$:/language/Shortcuts/SidebarLayout/Hint": {
"title": "$:/language/Shortcuts/SidebarLayout/Hint",
"text": "Change the sidebar layout"
},
"$:/language/Switcher/Subtitle/theme": {
"title": "$:/language/Switcher/Subtitle/theme",
"text": "Switch Theme"
},
"$:/language/Switcher/Subtitle/layout": {
"title": "$:/language/Switcher/Subtitle/layout",
"text": "Switch Layout"
},
"$:/language/Switcher/Subtitle/language": {
"title": "$:/language/Switcher/Subtitle/language",
"text": "Switch Language"
},
"$:/language/Switcher/Subtitle/palette": {
"title": "$:/language/Switcher/Subtitle/palette",
"text": "Switch Palette"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo 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.\n\n//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.//\n\nOn 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.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* 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\n# Close this tab\n\n//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//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"text": "Journal\n"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "Backlinks"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = this.commander.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvariableList = this.params.slice(4),\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter),\n\t\tvariables = Object.create(null);\n\t\twhile(variableList.length >= 2) {\n\t\t\tvariables[variableList[0]] = variableList[1];\n\t\t\tvariableList = variableList.slice(2);\n\t\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title);\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: $tw.utils.extend({},variables,{currentTiddler: title})}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <tiddler-filter> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe tiddler filter specifies the plugins to be included.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!self.commander.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar title = tiddler.fields.title, fileInfo, pathFilters, extFilters;\n\tif(this.wiki.tiddlerExists(\"$:/config/FileSystemPaths\")) {\n\t\tpathFilters = this.wiki.getTiddlerText(\"$:/config/FileSystemPaths\",\"\").split(\"\\n\");\n\t}\n\tif(this.wiki.tiddlerExists(\"$:/config/FileSystemExtensions\")) {\n\t\textFilters = this.wiki.getTiddlerText(\"$:/config/FileSystemExtensions\",\"\").split(\"\\n\");\n\t}\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki,\n\t\tpathFilters: pathFilters,\n\t\textFilters: extFilters,\n\t\toriginalpath: this.wiki.extractTiddlerDataItem(\"$:/config/OriginalTiddlerPaths\",title, \"\")\n\t});\n\ttry {\n\t\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n\t} catch (err) {\n\t\tconsole.log(\"SaveWikiFolder: Error saving file '\" + fileInfo.filepath + \"', tiddler: '\" + tiddler.fields.title);\n\t}\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\t\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"},\n\t\t{name: \"focus\",handlerObject: this,handlerMethod: \"handleFocusEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nFramedEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a focus event\n*/\nFramedEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\t\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nSimpleEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\n\t}\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\") === \"yes\";\n\t\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\t\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\t\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE] || changedAttributes.disabled) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if (changedTiddlers[this.editRefreshTitle]) {\n\t\t\tthis.engine.updateDomNodeText(this.getEditInfo().value);\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filterrunprefixes/all.js": {
"title": "$:/core/modules/filterrunprefixes/all.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/all.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nUnion of sets without de-duplication.\nEquivalent to = filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.all = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.push.apply(results, operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/and.js": {
"title": "$:/core/modules/filterrunprefixes/and.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/and.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nIntersection of sets.\nEquivalent to + filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.and = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\tsource = options.wiki.makeTiddlerIterator(results.toArray());\n\t\tresults.clear();\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/else.js": {
"title": "$:/core/modules/filterrunprefixes/else.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/else.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to ~ filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.else = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length === 0) {\n\t\t\t// Main result so far is empty\n\t\t\tresults.pushTop(operationSubFunction(source,widget));\n\t\t}\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/except.js": {
"title": "$:/core/modules/filterrunprefixes/except.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/except.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nDifference of sets.\nEquivalent to - filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.except = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.remove(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/filter.js": {
"title": "$:/core/modules/filterrunprefixes/filter.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/filter.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar resultsToRemove = [];\n\t\t\tresults.each(function(result) {\n\t\t\t\tvar filtered = operationSubFunction(options.wiki.makeTiddlerIterator([result]),widget);\n\t\t\t\tif(filtered.length === 0) {\n\t\t\t\t\tresultsToRemove.push(result);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults.remove(resultsToRemove);\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/intersection.js": {
"title": "$:/core/modules/filterrunprefixes/intersection.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/intersection.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.intersection = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length !== 0) {\n\t\t\tvar secondRunResults = operationSubFunction(source,widget);\n\t\t\tvar firstRunResults = results.toArray();\n\t\t\tresults.clear();\n\t\t\t$tw.utils.each(firstRunResults,function(title) {\n\t\t\t\tif(secondRunResults.indexOf(title) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/or.js": {
"title": "$:/core/modules/filterrunprefixes/or.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/or.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to a filter run with no prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.or = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filterrunprefixes/reduce.js": {
"title": "$:/core/modules/filterrunprefixes/reduce.js",
"text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/reduce.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.reduce = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar accumulator = \"\";\n\t\t\tvar index = 0;\n\t\t\tresults.each(function(title) {\n\t\t\t\tvar list = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\t\t\treturn \"\" + (results.length - 1 - index);\n\t\t\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn widget.getVariable(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tif(list.length > 0) {\n\t\t\t\t\taccumulator = \"\" + list[0];\n\t\t\t\t}\n\t\t\t\t++index;\n\t\t\t});\n\t\t\tresults.clear();\n\t\t\tresults.push(accumulator);\t\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filterrunprefix"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = new $tw.utils.LinkedList(),\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\tresults.pushTop(subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results.toArray();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = $tw.utils.makeCompareFunction(type,{defaultType: \"number\"}),\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/duplicateslugs.js": {
"title": "$:/core/modules/filters/duplicateslugs.js",
"text": "/*\\\ntitle: $:/core/modules/filters/duplicateslugs.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter function for [duplicateslugs[]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.duplicateslugs = function(source,operator,options) {\n\tvar slugs = Object.create(null), // Hashmap by slug of title, replaced with \"true\" if the duplicate title has already been output\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tvar slug = options.wiki.slugify(title);\n\t\tif(slug in slugs) {\n\t\t\tif(slugs[slug] !== true) {\n\t\t\t\tresults.push(slugs[slug]);\n\t\t\t\tslugs[slug] = true;\n\t\t\t}\n\t\t\tresults.push(title);\n\t\t} else {\n\t\t\tslugs[slug] = title;\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\t\tresults.push(name);\n\t\t\t});\n\t\t}\n\t\tresults.sort();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/filter.js": {
"title": "$:/core/modules/filters/filter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/filter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning those input titles that pass a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(source,operator,options) {\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\tresults = [],\n\t\ttarget = operator.prefix !== \"!\";\n\tsource(function(tiddler,title) {\n\t\tvar list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]));\n\t\tif((list.length > 0) === target) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/format/date.js": {
"title": "$:/core/modules/filters/format/date.js",
"text": "/*\\\ntitle: $:/core/modules/filters/format/date.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.date = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.formatDateString(value,operand || \"YYYY MM DD 0hh:0mm\"));\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
"type": "application/javascript",
"module-type": "formatfilteroperator"
},
"$:/core/modules/filters/format/relativedate.js": {
"title": "$:/core/modules/filters/format/relativedate.js",
"text": "/*\\\ntitle: $:/core/modules/filters/format/relativedate.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.relativedate = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.getRelativeDate((new Date()) - (new Date(value))).description);\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
"type": "application/javascript",
"module-type": "formatfilteroperator"
},
"$:/core/modules/filters/format.js": {
"title": "$:/core/modules/filters/format.js",
"text": "/*\\\ntitle: $:/core/modules/filters/format.js\ntype: application/javascript\nmodule-type: filteroperator\nFilter operator for formatting strings\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar formatFilterOperators;\n\nfunction getFormatFilterOperators() {\n\tif(!formatFilterOperators) {\n\t\tformatFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"formatfilteroperator\",formatFilterOperators);\n\t}\n\treturn formatFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.format = function(source,operator,options) {\n\t// Dispatch to the correct formatfilteroperator\n\tvar formatFilterOperators = getFormatFilterOperators();\n\tif(operator.suffix) {\n\t\tvar formatFilterOperator = formatFilterOperators[operator.suffix];\n\t\tif(formatFilterOperator) {\n\t\t\treturn formatFilterOperator(source,operator.operand,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/FormatFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all unchanged if the suffix is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/draft.js": {
"title": "$:/core/modules/filters/is/draft.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/draft.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[draft]] analagous to [has[draft.of]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.draft = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,\"draft.of\")) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,\"draft.of\") && (tiddler.fields[\"draft.of\"].length !== 0)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\t\t\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = new $tw.utils.LinkedList();\n\tsource(function(tiddler,title) {\n\t\tresults.pushTop(options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results.toArray();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || operator.suffix || '');\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.power = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.pow(a,b);}\n);\n\nexports.log = makeNumericBinaryOperator(\n\tfunction(a,b) {\n\t\tif(b) {\n\t\t\treturn Math.log(a)/Math.log(b);\n\t\t} else {\n\t\t\treturn Math.log(a);\n\t\t}\n\t}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/reduce.js": {
"title": "$:/core/modules/filters/reduce.js",
"text": "/*\\\ntitle: $:/core/modules/filters/reduce.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator evaluates a subfilter for each item, making the running total available in the variable `accumulator`, and the current index available in the variable `index`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.reduce = function(source,operator,options) {\n\t// Accumulate the list\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Run the filter over each item\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\taccumulator = operator.operands[1] || \"\";\n\tfor(var index=0; index<results.length; index++) {\n\t\tvar title = results[index],\n\t\t\tlist = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\treturn \"\" + (results.length - 1 - index);\n\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tif(list.length > 0) {\n\t\t\taccumulator = \"\" + list[0];\n\t\t}\n\t}\n\tif(results.length > 0) {\n\t\treturn [accumulator];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/slugify.js": {
"title": "$:/core/modules/filters/slugify.js",
"text": "/*\\\ntitle: $:/core/modules/filters/slugify.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for slugifying a tiddler title\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.slugify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.slugify(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sortsub.js": {
"title": "$:/core/modules/filters/sortsub.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sortsub.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting by a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sortsub = function(source,operator,options) {\n\t// Compile the subfilter\n\tvar filterFn = options.wiki.compileFilter(operator.operand);\n\t// Collect the input titles and the corresponding sort keys\n\tvar inputTitles = [],\n\t\tsortKeys = [];\n\tsource(function(tiddler,title) {\n\t\tinputTitles.push(title);\n\t\tvar r = filterFn.call(options.wiki,function(iterator) {\n\t\t\titerator(options.wiki.getTiddler(title),title);\n\t\t},{\n\t\t\tgetVariable: function(name) {\n\t\t\t\tif(name === \"currentTiddler\") {\n\t\t\t\t\treturn title;\n\t\t\t\t} else {\n\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsortKeys.push(r[0] || \"\");\n\t});\n\t// Rather than sorting the titles array, we'll sort the indexes so that we can consult both arrays\n\tvar indexes = new Array(inputTitles.length);\n\tfor(var t=0; t<inputTitles.length; t++) {\n\t\tindexes[t] = t;\n\t}\n\t// Sort the indexes\n\tvar compareFn = $tw.utils.makeCompareFunction(operator.suffix,{defaultType: \"string\",invert: operator.prefix === \"!\"});\n\tindexes = indexes.sort(function(a,b) {\n\t\treturn compareFn(sortKeys[a],sortKeys[b]);\n\t});\n\t// Make the results array in order\n\tvar results = [];\n\t$tw.utils.each(indexes,function(index) {\n\t\tresults.push(inputTitles[index]);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\toperand = (operator.operand || \"\"),\n\t\tfnCalc;\n\tif(suffix === \"prefix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimPrefix(a,b)];}\n\t} else if(suffix === \"suffix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix(a,b)];}\n\t} else {\n\t\tif(operand === \"\") {\n\t\t\tfnCalc = function(a) {return [$tw.utils.trim(a)];}\n\t\t} else {\n\t\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix($tw.utils.trimPrefix(a,b),b)];}\n\t\t}\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,fnCalc(title,operand));\n\t});\n\treturn result;\n};\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports[\"enlist-input\"] = makeStringBinaryOperator(\n\tfunction(a,o,s) {return $tw.utils.parseStringArray(\"\" + a,(s === \"raw\"));}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\",operator.suffix || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\tif(result.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\nexports[\"search-replace\"] = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = operator.suffixes || [],\n\t\tflagSuffix = (suffixes[0] ? (suffixes[0][0] || \"\") : \"\"),\n\t\tflags = (flagSuffix.indexOf(\"g\") !== -1 ? \"g\" : \"\") + (flagSuffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tisRegExp = (suffixes[1] && suffixes[1][0] === \"regexp\") ? true : false,\n\t\tsearchTerm,\n\t\tregExp;\n\t\n\tsource(function(tiddler,title) {\n\t\tif(title && (operator.operands.length > 1)) {\n\t\t\t//Escape regexp characters if the operand is not a regular expression\n\t\t\tsearchTerm = isRegExp ? operator.operand : $tw.utils.escapeRegExp(operator.operand);\n\t\t\ttry {\n\t\t\t\tregExp = new RegExp(searchTerm,flags);\n\t\t\t} catch(ex) {\n\t\t\t\treturn [\"RegExp error: \" + ex];\n\t\t\t}\n\t\t\tresults.push(\n\t\t\t\ttitle.replace(regExp,operator.operands[1])\n\t\t\t);\n\t\t} else {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.pad = function(source,operator,options) {\n\tvar results = [],\n\t\ttargetLength = operator.operand ? parseInt(operator.operand) : 0,\n\t\tfill = operator.operands[1] || \"0\";\n\n\tsource(function(tiddler,title) {\n\t\tif(title && title.length) {\n\t\t\tif(title.length >= targetLength) {\n\t\t\t\tresults.push(title);\n\t\t\t} else {\n\t\t\t\tvar padString = \"\",\n\t\t\t\t\tpadStringLength = targetLength - title.length;\n\t\t\t\twhile (padStringLength > padString.length) {\n\t\t\t\t\tpadString += fill;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t//make sure we do not exceed the specified length\n\t\t\t\tpadString = padString.slice(0,padStringLength);\n\t\t\t\tif(operator.suffix && (operator.suffix === \"suffix\")) {\n\t\t\t\t\ttitle = title + padString;\n\t\t\t\t} else {\n\t\t\t\t\ttitle = padString + title;\n\t\t\t\t}\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: false */\n\t\"use strict\";\n\n\t/*\n\tFetch titles from the current list\n\t*/\n\tvar prepare_results = function (source) {\n\tvar results = [];\n\t\tsource(function (tiddler, title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list before the item named in the operand\n\t*/\n\texports.putbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list after the item named in the operand\n\t*/\n\texports.putafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tReplaces the item named in the operand with a number of items from the tail of the current list\n\t*/\n\texports.replace = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -count) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list to the head of the list\n\t*/\n\texports.putfirst = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(-count).concat(results.slice(0, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the head of the current list to the tail of the list\n\t*/\n\texports.putlast = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(count).concat(results.slice(0, count));\n\t};\n\n\t/*\n\tMoves the item named in the operand a number of places forward or backward in the list\n\t*/\n\texports.move = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1),\n\t\t\tmarker = results.splice(index, 1),\n\t\t\toffset = (index + count) > 0 ? index + count : 0;\n\t\treturn results.slice(0, offset).concat(marker).concat(results.slice(offset));\n\t};\n\n\t/*\n\tReturns the items from the current list that are after the item named in the operand\n\t*/\n\texports.allafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(index) :\n\t\t\tresults.slice(index + 1);\n\t};\n\n\t/*\n\tReturns the items from the current list that are before the item named in the operand\n\t*/\n\texports.allbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(0, index + 1) :\n\t\t\tresults.slice(0, index);\n\t};\n\n\t/*\n\tAppends the items listed in the operand array to the tail of the current list\n\t*/\n\texports.append = function (source, operator) {\n\t\tvar append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || append.length;\n\t\treturn (append.length === 0) ? results :\n\t\t\t(operator.prefix) ? results.concat(append.slice(-count)) :\n\t\t\tresults.concat(append.slice(0, count));\n\t};\n\n\t/*\n\tPrepends the items listed in the operand array to the head of the current list\n\t*/\n\texports.prepend = function (source, operator) {\n\t\tvar prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,prepend.length);\n\t\treturn (prepend.length === 0) ? results :\n\t\t\t(operator.prefix) ? prepend.slice(-count).concat(results) :\n\t\t\tprepend.slice(0, count).concat(results);\n\t};\n\n\t/*\n\tReturns all items from the current list except the items listed in the operand array\n\t*/\n\texports.remove = function (source, operator) {\n\t\tvar array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || array.length,\n\t\t\tp,\n\t\t\tlen,\n\t\t\tindex;\n\t\tlen = array.length - 1;\n\t\tfor (p = 0; p < count; ++p) {\n\t\t\tif (operator.prefix) {\n\t\t\t\tindex = results.indexOf(array[len - p]);\n\t\t\t} else {\n\t\t\t\tindex = results.indexOf(array[p]);\n\t\t\t}\n\t\t\tif (index !== -1) {\n\t\t\t\tresults.splice(index, 1);\n\t\t\t}\n\t\t}\n\t\treturn results;\n\t};\n\n\t/*\n\tReturns all items from the current list sorted in the order of the items in the operand array\n\t*/\n\texports.sortby = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tif (!results || results.length < 2) {\n\t\t\treturn results;\n\t\t}\n\t\tvar lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n\t\tresults.sort(function (a, b) {\n\t\t\treturn lookup.indexOf(a) - lookup.indexOf(b);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tRemoves all duplicate items from the current list\n\t*/\n\texports.unique = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tvar set = results.reduce(function (a, b) {\n\t\t\tif (a.indexOf(b) < 0) {\n\t\t\t\ta.push(b);\n\t\t\t}\n\t\t\treturn a;\n\t\t}, []);\n\t\treturn set;\n\t};\n\n\tvar cycleValueInArray = function(results,operands,stepSize) {\n\t\tvar resultsIndex,\n\t\t\tstep = stepSize || 1,\n\t\t\ti = 0,\n\t\t\topLength = operands.length,\n\t\t\tnextOperandIndex;\t\t\n\t\tfor(i; i < opLength; i++) {\n\t\t\tresultsIndex = results.indexOf(operands[i]);\n\t\t\tif(resultsIndex !== -1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(resultsIndex !== -1) {\n\t\t\ti = i + step;\n\t\t\tnextOperandIndex = (i < opLength ? i : i - opLength);\n\t\t\tif(operands.length > 1) {\n\t\t\t\tresults.splice(resultsIndex,1,operands[nextOperandIndex]);\n\t\t\t} else {\n\t\t\t\tresults.splice(resultsIndex,1);\n\t\t\t}\n\t\t} else {\n\t\t\tresults.push(operands[0]);\n\t\t}\n\t\treturn results;\t\t\n\t}\n\n\t/*\n\tToggles an item in the current list.\n\t*/\t\n\texports.toggle = function(source,operator) {\n\t\treturn cycleValueInArray(prepare_results(source),operator.operands);\n\t}\n\n\texports.cycle = function(source,operator) {\n\t\tvar results = prepare_results(source),\n\t\t\toperands = (operator.operand.length ? $tw.utils.parseStringArray(operator.operand, \"true\") : [\"\"]),\n\t\t\tstep = $tw.utils.getInt(operator.operands[1]||\"\",1);\n\t\tif(step < 0) {\n\t\t\toperands.reverse();\n\t\t\tstep = Math.abs(step);\n\t\t}\t\n\t\treturn cycleValueInArray(results,operands,step);\n\t}\n\t\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\t\toperator.operands = [];\n\t\tvar parseOperand = function(bracketType) {\n\t\t\tvar operand = {};\n\t\t\tswitch (bracketType) {\n\t\t\t\tcase \"{\": // Curly brackets\n\t\t\t\t\toperand.indirect = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"[\": // Square brackets\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<\": // Angle brackets\n\t\t\t\t\toperand.variable = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"/\": // regexp brackets\n\t\t\t\t\tvar rex = /^((?:[^\\\\\\/]|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\t\tif(rexMatch) {\n\t\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n\t// DEPRECATION WARNING\n\tconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif(nextBracketPos === -1) {\n\t\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t\t}\n\t\t\tif(!operator.regexp) {\n\t\t\t\toperand.text = filterString.substring(p,nextBracketPos);\n\t\t\t\toperator.operands.push(operand);\n\t\t\t}\n\t\t\tp = nextBracketPos + 1;\n\t\t}\n\t\t\n\t\tp = nextBracketPos + 1;\n\t\tparseOperand(bracket);\n\t\t\n\t\t// Check for multiple operands\n\t\twhile(filterString.charAt(p) === \",\") {\n\t\t\tp++;\n\t\t\tif(/^[\\[\\{<\\/]/.test(filterString.substring(p))) {\n\t\t\t\tnextBracketPos = p;\n\t\t\t\tp++;\n\t\t\t\tparseOperand(filterString.charAt(nextBracketPos));\n\t\t\t} else {\n\t\t\t\tthrow \"Missing [ in filter expression\";\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=|\\:(\\w+))?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp = p + operation.prefix.length;\n\t\t\t\tif(match[2]) {\n\t\t\t\t\toperation.namedPrefix = match[2];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(match[3]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[4] || match[5] || match[6]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operands: [{text: match[4] || match[5] || match[6]}]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.getFilterRunPrefixes = function() {\n\tif(!this.filterRunPrefixes) {\n\t\t$tw.Wiki.prototype.filterRunPrefixes = {};\n\t\t$tw.modules.applyMethods(\"filterrunprefix\",this.filterRunPrefixes);\n\t}\n\treturn this.filterRunPrefixes;\n}\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operands = [],\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$tw.utils.each(operator.operands,function(operand) {\n\t\t\t\t\tif(operand.indirect) {\n\t\t\t\t\t\toperand.value = self.getTextReference(operand.text,\"\",currTiddlerTitle);\n\t\t\t\t\t} else if(operand.variable) {\n\t\t\t\t\t\toperand.value = widget.getVariable(operand.text,{defaultValue: \"\"});\n\t\t\t\t\t} else {\n\t\t\t\t\t\toperand.value = operand.text;\n\t\t\t\t\t}\n\t\t\t\t\toperands.push(operand.value);\n\t\t\t\t});\n\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operands.length > 0 ? operands[0] : undefined,\n\t\t\t\t\t\t\toperands: operands,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\tvar filterRunPrefixes = self.getFilterRunPrefixes();\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tvar options = {wiki: self};\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn filterRunPrefixes[\"or\"](operationSubFunction, options);\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn filterRunPrefixes[\"all\"](operationSubFunction, options);\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn filterRunPrefixes[\"except\"](operationSubFunction, options);\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn filterRunPrefixes[\"and\"](operationSubFunction, options);\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn filterRunPrefixes[\"else\"](operationSubFunction, options);\n\t\t\t\tdefault: \n\t\t\t\t\tif(operation.namedPrefix && filterRunPrefixes[operation.namedPrefix]) {\n\t\t\t\t\t\treturn filterRunPrefixes[operation.namedPrefix](operationSubFunction, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t\tresults.clear();\n\t\t\t\t\t\t\tresults.push($tw.language.getString(\"Error/FilterRunPrefix\"));\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = new $tw.utils.LinkedList();\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results.toArray();\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function(updateInfoTiddlersCallback) {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tinfoTiddlerFields.push({title: \"$:/info/startup-timestamp\", text: $tw.utils.stringifyDate(new Date())});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n \t\t// Dark mode through event listener on MediaQueryList\n \t\tvar mqList = window.matchMedia(\"(prefers-color-scheme: dark)\"),\n \t\t\tgetDarkModeTiddler = function() {return {title: \"$:/info/darkmode\", text: mqList.matches ? \"yes\" : \"no\"};};\n \t\tinfoTiddlerFields.push(getDarkModeTiddler());\n \t\tmqList.addListener(function(event) {\n \t\t\tupdateInfoTiddlersCallback([getDarkModeTiddler()]);\n \t\t});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {\n\treturn event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl\" : \n\t\tevent.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? \"shift\" : \n\t\tevent.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl-shift\" : \n\t\tevent.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt\" : \n\t\tevent.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt-shift\" : \n\t\tevent.altKey && event.ctrlKey && !event.shiftKey && !event.metaKey ? \"ctrl-alt\" : \n\t\tevent.altKey && event.shiftKey && event.ctrlKey && !event.metaKey ? \"ctrl-alt-shift\" : \n\t\tevent.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta\" : \n\t\tevent.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta-ctrl\" :\n\t\tevent.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? \"meta-ctrl-shift\" :\n\t\tevent.metaKey && event.ctrlKey & event.shiftKey && event.altKey ? \"meta-ctrl-alt-shift\" : \"normal\";\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\nexports[\"image/vnd.microsoft.icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|((?:(?:>(?!>))|[^\\s>\"'])+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = this.match.index + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = this.match.index + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\";\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\tvar reEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\tvar nextStart = startPos;\n\t// Try parsing at all possible macrocall openers until we match\n\twhile((nextStart = this.parser.source.indexOf(\"<<\",nextStart)) >= 0) {\n\t\tvar nextCall = $tw.utils.parseMacroInvocation(this.parser.source,nextStart);\n\t\tif(nextCall) {\n\t\t\tvar c = this.parser.source.charAt(nextCall.end);\n\t\t\t// Ensure EOL after parsed macro\n\t\t\t// If we didn't need to support IE, we'd just use /(?:\\r?\\n|$)/ym\n\t\t\tif ((c === \"\") || (c === \"\\n\") || ((c === \"\\r\") && this.parser.source.charAt(nextCall.end+1) === \"\\n\")) {\n\t\t\t\tthis.nextCall = nextCall;\n\t\t\t\treturn nextStart;\n\t\t\t}\n\t\t}\n\t\tnextStart += 2;\n\t}\n\treturn undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar call = this.nextCall;\n\tcall.isBlock = true;\n\tthis.nextCall = null;\n\tthis.parser.pos = call.end;\n\treturn [call];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\tvar nextStart = startPos;\n\t// Try parsing at all possible macrocall openers until we match\n\twhile((nextStart = this.parser.source.indexOf(\"<<\",nextStart)) >= 0) {\n\t\tthis.nextCall = $tw.utils.parseMacroInvocation(this.parser.source,nextStart);\n\t\tif(this.nextCall) {\n\t\t\treturn nextStart;\n\t\t}\n\t\tnextStart += 2;\n\t}\n\treturn undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar call = this.nextCall;\n\tthis.nextCall = null;\n\tthis.parser.pos = call.end;\n\treturn [call];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\ntype: content type of text\ntext: text to be parsed\noptions: see below:\n\tparseAsInline: true to parse text as inline instead of block\n\twiki: reference to wiki to use\n\t_canonical_uri: optional URI of content if text is missing or empty\n*/\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Start with empty output\n\tthis.tree = [];\n\t// Assemble the rule classes we're going to use\n\tvar pragmaRuleClasses, blockRuleClasses, inlineRuleClasses;\n\tif(options.rules) {\n\t\tpragmaRuleClasses = options.rules.pragma;\n\t\tblockRuleClasses = options.rules.block;\n\t\tinlineRuleClasses = options.rules.inline;\n\t} else {\n\t\t// Setup the rule classes if we don't have them already\n\t\tif(!this.pragmaRuleClasses) {\n\t\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t\t}\n\t\tpragmaRuleClasses = this.pragmaRuleClasses;\n\t\tif(!this.blockRuleClasses) {\n\t\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t\t}\n\t\tblockRuleClasses = this.blockRuleClasses;\n\t\tif(!this.inlineRuleClasses) {\n\t\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t\t}\n\t\tinlineRuleClasses = this.inlineRuleClasses;\n\t}\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar target;\n\tif(type === \"only\") {\n\t\ttarget = true;\n\t} else if(type === \"except\") {\n\t\ttarget = false;\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif((names.indexOf(ruleArray[t].rule.name) === -1) === target) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && ($tw.config.disableAutoSave || this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\")) {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tvar self = this;\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\t$tw.utils.toggleClass(win.document.body,\"tc-dirty\",self.isDirty());\n\t\t});\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/custom.js": {
"title": "$:/core/modules/savers/custom.js",
"text": "/*\\\ntitle: $:/core/modules/savers/custom.js\ntype: application/javascript\nmodule-type: saver\n\nLooks for `window.$tw.customSaver` first on the current window, then\non the parent window (of an iframe). If present, the saver must define\n\tsave: function(text,method,callback) { ... }\nand the saver may define\n\tpriority: number\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar findSaver = function(window) {\n\ttry {\n\t\treturn window && window.$tw && window.$tw.customSaver;\n\t} catch (err) {\n\t\t// Catching the exception is the most reliable way to detect cross-origin iframe errors.\n\t\t// For example, instead of saying that `window.parent.$tw` is undefined, Firefox will throw\n\t\t// Uncaught DOMException: Permission denied to access property \"$tw\" on cross-origin object\n\t\tconsole.log({ msg: \"custom saver is disabled\", reason: err });\n\t\treturn null;\n\t}\n}\nvar saver = findSaver(window) || findSaver(window.parent) || {};\n\nvar CustomSaver = function(wiki) {\n};\n\nCustomSaver.prototype.save = function(text,method,callback) {\n\treturn saver.save(text, method, callback);\n};\n\n/*\nInformation about this saver\n*/\nCustomSaver.prototype.info = {\n\tname: \"custom\",\n\tpriority: saver.priority || 4000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!(saver.save);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new CustomSaver(wiki);\n};\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"token \" + password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"main\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password),\n\t\t\t\"If-None-Match\": \"\"\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/hyperdrive.js": {
"title": "$:/core/modules/savers/hyperdrive.js",
"text": "/*\\\ntitle: $:/core/modules/savers/hyperdrive.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Hyperdrive Protocol (https://hypercore-protocol.org/#hyperdrive) Beaker browser beta-1.0 and later (https://beakerbrowser.com)\nCompatible with beaker >= V1.0.0\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar HyperdriveSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nHyperdriveSaver.prototype.save = function(text,method,callback) {\n\tvar dat = beaker.hyperdrive.drive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Hyperdrive Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Hyperdrive Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nHyperdriveSaver.prototype.info = {\n\tname: \"beaker-1.x\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.beaker && !!beaker.hyperdrive && location.protocol===\"hyper:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new HyperdriveSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\tuploadWithUrlOnly = this.wiki.getTextReference(\"$:/UploadWithUrlOnly\") || \"no\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif (uploadWithUrlOnly === \"yes\") {\n\t\t// The url is good enough. No need for a username and password.\n\t\t// Assume the server uses some other kind of auth mechanism.\n\t\tif(!url || url.toString().trim() === \"\") {\n\t\t\treturn false;\n\t\t}\n\t}\n\telse {\n\t\t// Require username and password to be present.\n\t\t// Assume the server uses the standard UploadPlugin username/password.\n\t\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve(this.server.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\") ? server.get(\"authenticated-user-header\").toLowerCase() : undefined;\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve(state.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tsse_enabled: state.server.get(\"sse-enabled\") === \"yes\",\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif(state.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif(state.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tif(state.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"no\") {\n\t\tfilter += \"+[!is[system]]\";\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server-sent-events.js": {
"title": "$:/core/modules/server/server-sent-events.js",
"text": "/*\\\ntitle: $:/core/modules/server/server-sent-events.js\ntype: application/javascript\nmodule-type: library\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nparameters:\n\t\tprefix - usually the plugin path, such as `plugins/tiddlywiki/tiddlyweb`. The\n\t\t\troute will match `/events/${prefix}` exactly.\n\n\t\thandler - a function that will be called each time a request comes in with the\n\t\t\trequest and state from the route and an emit function to call.\n*/\n\nvar ServerSentEvents = function ServerSentEvents(prefix, handler) {\n\tthis.handler = handler;\n\tthis.prefix = prefix;\n};\n\nServerSentEvents.prototype.getExports = function() {\n\treturn {\n\t\tbodyFormat: \"stream\",\n\t\tmethod: \"GET\",\n\t\tpath: new RegExp(\"^/events/\" + this.prefix + \"$\"),\n\t\thandler: this.handleEventRequest.bind(this)\n\t};\n};\n\nServerSentEvents.prototype.handleEventRequest = function(request,response,state) {\n\tif(ServerSentEvents.prototype.isEventStreamRequest(request)) {\n\t\tresponse.writeHead(200, {\n\t\t\t\"Content-Type\": \"text/event-stream\",\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\t\"Connection\": \"keep-alive\"\n\t\t});\n\t\tthis.handler(request,state,this.emit.bind(this,response),this.end.bind(this,response));\n\t} else {\n\t\tresponse.writeHead(406,\"Not Acceptable\",{});\n\t\tresponse.end();\n\t}\n};\n\nServerSentEvents.prototype.isEventStreamRequest = function(request) {\n\treturn request.headers.accept &&\n\t\trequest.headers.accept.match(/^text\\/event-stream/);\n};\n\nServerSentEvents.prototype.emit = function(response,event,data) {\n\tif(typeof event !== \"string\" || event.indexOf(\"\\n\") !== -1) {\n\t\tthrow new Error(\"Type must be a single-line string\");\n\t}\n\tif(typeof data !== \"string\" || data.indexOf(\"\\n\") !== -1) {\n\t\tthrow new Error(\"Data must be a single-line string\");\n\t}\n\tresponse.write(\"event: \" + event + \"\\ndata: \" + data + \"\\n\\n\", \"utf8\");\n};\n\nServerSentEvents.prototype.end = function(response) {\n\tresponse.end();\n};\n\nexports.ServerSentEvents = ServerSentEvents;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.boot = options.boot || $tw.boot;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(state.pathPrefix) {\n\t\t\tif(pathname.substr(0,state.pathPrefix.length) === state.pathPrefix) {\n\t\t\t\tpathname = pathname.substr(state.pathPrefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response,options) {\n\toptions = options || {};\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = options.wiki || self.wiki;\n\tstate.boot = options.boot || self.boot;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\tstate.pathPrefix = options.pathPrefix || this.get(\"path-prefix\") || \"\";\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!this.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !this.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = function() {factory(root);}; \n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\tObject.getPrototypeOf(root.CSS).escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",$tw.utils.makeDataUri(tiddler.fields.text,tiddler.fields.type,tiddler.fields._canonical_uri));\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Function to bake the info plugin with new tiddlers\n\tvar updateInfoPlugin = function(tiddlerFieldsArray) {\n\t\t// Get the existing tiddlers\n\t\tvar json = $tw.wiki.getTiddlerData(TITLE_INFO_PLUGIN,{tiddlers: {}});\n\t\t// Add the new ones\n\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\tif(fields && fields.title) {\n\t\t\t\tjson.tiddlers[fields.title] = fields;\n\t\t\t}\n\t\t});\n\t\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\t\tvar fields = {\n\t\t\ttitle: TITLE_INFO_PLUGIN,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"info\",\n\t\t\ttext: JSON.stringify(json,null,$tw.config.preferences.jsonSpaces)\n\t\t};\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\n\t};\n\t// Collect up the info tiddlers\n\tvar tiddlerFieldsArray = [];\n\t// Give each info module a chance to provide as many info tiddlers as they want as an array, and give them a callback for dynamically updating them\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tArray.prototype.push.apply(tiddlerFieldsArray,moduleExports.getInfoTiddlerFields(updateInfoPlugin));\n\t\t}\n\t});\n\tupdateInfoPlugin(tiddlerFieldsArray);\n\tvar changes = $tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\",[TITLE_INFO_PLUGIN]);\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\tif($tw.browser) {\n\t\t$tw.modules.applyMethods(\"utils-browser\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Work out which of the changed tiddlers are plugins that we need to reregister\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Issue warning if any of the tiddlers require a reload\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\tvar changedShadowTiddlers = {};\n\t\t\t\t// Collect the shadow tiddlers of any deleted plugins\n\t\t\t\t$tw.utils.each(changes.deletedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// Collect the shadow tiddlers of any modified plugins\n\t\t\t\t$tw.utils.each(changes.modifiedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t\t// Queue change events for the changed shadow tiddlers\n\t\t\t\t$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {\n\t\t\t\t\t$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title]);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/RootTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget, recursionMarker: \"no\"});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n\t// Run any post-render startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/PostRender\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-show-switcher\",function(event) {\n\t\t$tw.modal.display(\"$:/core/ui/SwitcherModal\",{variables: event.paramObject, event: event});\n\t});\t\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Browser\");\n\t}\n\tif($tw.node) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Node\");\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tvar story = new $tw.Story({\n\t\twiki: $tw.wiki,\n\t\tstoryTitle: DEFAULT_STORY_TITLE,\n\t\thistoryTitle: DEFAULT_HISTORY_TITLE\n\t});\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\tstory.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\tstory.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\n$tw.windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\t$tw.windows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete $tw.windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t\tsrcWindow.document.documentElement.addEventListener(\"click\",$tw.popup,true);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncDisablePolling = \"$:/config/SyncDisablePolling\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function(event) {\n\t\t\tvar username = event && event.paramObject && event.paramObject.username,\n\t\t\t\tpassword = event && event.paramObject && event.paramObject.password;\n\t\t\tif(username && password) {\n\t\t\t\t// Login with username and password\n\t\t\t\tself.login(username,password,function() {});\n\t\t\t} else {\n\t\t\t\t// No username and password, so we display a prompt\n\t\t\t\tself.handleLoginEvent();\n\t\t\t}\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\n\t}\n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tself.tiddlerInfo[title] = {\n\t\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t\t};\n\t\t}\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif(this.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous,isPollingDisabled) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t\tif(isPollingDisabled) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleSyncDisablePolling, text: \"yes\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tif(pollingEnabled) {\n\t\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\t\tself.pollTimerId = null;\n\t\t\t\t\tself.syncFromServer.call(self);\n\t\t\t\t},self.pollTimerInterval);\n\t\t\t}\n\t\t},\n\t\tsyncSystemFromServer = (self.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"yes\"),\n\t\tpollingEnabled = (self.wiki.getTiddlerText(self.titleSyncDisablePolling) !== \"yes\");\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\tif(self.syncadaptor && self.syncadaptor.displayLoginPrompt) {\n\t\t\t\tself.syncadaptor.displayLoginPrompt(self);\n\t\t\t} else {\n\t\t\t\tself.displayLoginPrompt();\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nDispay a password prompt\n*/\nSyncer.prototype.displayLoginPrompt = function() {\n\tvar self = this;\n\tvar promptInfo = $tw.passwordPrompt.createPrompt({\n\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\tcallback: function(data) {\n\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\tself.syncFromServer();\n\t\t\t});\n\t\t\treturn true; // Get rid of the password prompt\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || this.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title);\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.syncer.tiddlerInfo[self.title]\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? (wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)if((e=r.charCodeAt(t))<128)o+=String.fromCharCode(e);else if(e>127&&e<2048)o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128);else if(e>55295&&e<57344&&r.length>t+1){var i=e,n=r.charCodeAt(t+1);t++;var d=65536+(i-55296<<10|n-56320);o+=String.fromCharCode(d>>18|240),o+=String.fromCharCode(d>>12&63|128),o+=String.fromCharCode(d>>6&63|128),o+=String.fromCharCode(63&d|128)}else o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128);return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)if((t=r.charCodeAt(o))<128)e+=String.fromCharCode(t),o++;else if(t>191&&t<224)e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2;else if(t>223&&t<240)e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3;else{var i=(7&t)<<18|(63&r.charCodeAt(o+1))<<12|(63&r.charCodeAt(o+2))<<6|63&r.charCodeAt(o+3);e+=String.fromCharCode(55296+(i-65536>>10))+String.fromCharCode(56320+(i-65536&1023)),o+=4}return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var i=0;i<t.length;i++)o[t[i]]=o.require(t[i]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,i,n,d,f,a,h,C=\"\",c=0;c<r.length;)d=(t=r.charCodeAt(c++))>>2,f=(3&t)<<4|(i=r.charCodeAt(c++))>>4,a=(15&i)<<2|(n=r.charCodeAt(c++))>>6,h=63&n,isNaN(i)?a=h=64:isNaN(n)&&(h=64),C+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return C},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,i,n,d,f,a,h=\"\",C=0;C<r.length;)t=o.indexOf(r.charAt(C++))<<2|(d=o.indexOf(r.charAt(C++)))>>4,i=(15&d)<<4|(f=o.indexOf(r.charAt(C++)))>>2,n=(3&f)<<6|(a=o.indexOf(r.charAt(C++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(i)),64!=a&&(h+=String.fromCharCode(n));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.hasAttribute && el.hasAttribute(\"class\") && el.getAttribute(\"class\").split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\thasHeader = function(targetHeader) {\n\t\t\ttargetHeader = targetHeader.toLowerCase();\n\t\t\tvar result = false;\n\t\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\t\tif(headerTitle.toLowerCase() === targetHeader) {\n\t\t\t\t\tresult = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !hasHeader(\"Content-Type\")) {\n\t\trequest.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!hasHeader(\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\nvar navigator = require(\"$:/core/modules/widgets/navigator.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event && options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({\n\t\t\tcurrentTiddler: title,\n\t\t\t\"tv-story-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-story-list\") : \"\"),\n\t\t\t\"tv-history-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-history-list\") : \"\")\n\t\t},options.variables);\n\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\tvar navigatorTree = {\n\t\t\"type\": \"navigator\",\n\t\t\"attributes\": {\n\t\t\t\"story\": {\n\t\t\t\t\"name\": \"story\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-story-list\"]\n\t\t\t},\n\t\t\t\"history\": {\n\t\t\t\t\"name\": \"history\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-history-list\"]\n\t\t\t}\n\t\t},\n\t\t\"tag\": \"$navigator\",\n\t\t\"isBlock\": true,\n\t\t\"children\": []\n\t};\n\tvar navigatorWidgetNode = new navigator.navigator(navigatorTree, {\n\t\twiki: this.wiki,\n\t\tdocument : this.srcDocument,\n\t\tparentWidget: $tw.rootWidget\n\t});\n\tnavigatorWidgetNode.render(modalBody,null);\n\t\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\tif(event.paramObject && event.paramObject.selector) {\n\t\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t\t} else {\n\t\t\tthis.scrollIntoView(event.target);\t\t\t\n\t\t}\n\t\treturn false; // Event was handled\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nPageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_Node = function (){\n\tthrow TypeError(\"Illegal constructor\");\n};\n\nObject.defineProperty(TW_Node.prototype, 'ELEMENT_NODE', {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nObject.defineProperty(TW_Node.prototype, 'TEXT_NODE', {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nTW_TextNode.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.TEXT_NODE;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nTW_Element.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.ELEMENT_NODE;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nReturn the subdirectories of a path\n*/\nexports.getSubdirectories = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn null;\n\t}\n\tvar subdirs = [];\n\t$tw.utils.each(fs.readdirSync(dirPath),function(item) {\n\t\tif($tw.utils.isDirectory(path.resolve(dirPath,item))) {\n\t\t\tsubdirs.push(item);\n\t\t}\n\t});\n\treturn subdirs;\n}\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = path.resolve($tw.utils.removeTrailingSeparator(srcPath));\n\tdstPath = path.resolve($tw.utils.removeTrailingSeparator(dstPath));\n\t// Check that neither director is within the other\n\tif(srcPath.substring(0,dstPath.length) === dstPath || dstPath.substring(0,srcPath.length) === srcPath) {\n\t\treturn \"Cannot copy nested directories\";\n\t}\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file on disk (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n\tisEditableFile: true if the tiddler was loaded via non-standard options & marked editable\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\textFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters,\n\tfileInfo: an existing fileInfo to check against\n\toriginalpath: a preferred filepath if no pathFilters match\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {}, metaExt;\n\t// Propagate the isEditableFile flag\n\tif(options.fileInfo) {\n\t\tfileInfo.isEditableFile = options.fileInfo.isEditableFile || false;\n\t}\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t\tif(options.extFilters) {\n\t\t\t// Check for extension override\n\t\t\tmetaExt = $tw.utils.generateTiddlerExtension(tiddler.fields.title,{\n\t\t\t\textFilters: options.extFilters,\n\t\t\t\twiki: options.wiki\n\t\t\t});\n\t\t\tif(metaExt) {\n\t\t\t\tif(metaExt === \".tid\") {\n\t\t\t\t\t// Overriding to the .tid extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else if (metaExt === \".json\") {\n\t\t\t\t\t// Overriding to the .json extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/json\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else {\n\t\t\t\t\t//If the new type matches a known extention, use that MIME type's encoding\n\t\t\t\t\tvar extInfo = $tw.utils.getFileExtensionInfo(metaExt);\n\t\t\t\t\tfileInfo.type = extInfo ? extInfo.type : null;\n\t\t\t\t\tfileInfo.encoding = $tw.utils.getTypeEncoding(metaExt);\n\t\t\t\t\tfileInfo.hasMetaFile = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type or metaExt\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: metaExt || contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki,\n\t\tfileInfo: options.fileInfo,\n\t\toriginalpath: options.originalpath\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the file extension for saving a tiddler\nOptions include:\n\textFilters: optional array of filters to be used to generate the extention\n\twiki: optional wiki for evaluating the extFilters\n*/\nexports.generateTiddlerExtension = function(title,options) {\n\tvar self = this,\n\t\textension;\n\t// Check if any of the extFilters applies\n\tif(options.extFilters && options.wiki) { \n\t\t$tw.utils.each(options.extFilters,function(filter) {\n\t\t\tif(!extension) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\textension = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn extension;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n\tfileInfo: an existing fileInfo object to check against\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\toriginalpath = options.originalpath || \"\",\n\t\tfilepath;\t\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tif(!filepath && originalpath !== \"\") {\n\t\t//Use the originalpath without the extension\n\t\tvar ext = path.extname(originalpath);\n\t\tfilepath = originalpath.substring(0,originalpath.length - ext.length);\n\t} else if(!filepath) {\n\t\tfilepath = title;\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t//If the path does not start with \".\" or \"..\" and a path seperator, then\n\tif(!/^\\.{1,2}[/\\\\]/g.test(filepath)) {\n\t\t// Don't let the filename start with any dots because such files are invisible on *nix\n\t\tfilepath = filepath.replace(/^\\.+/g,\"_\");\n\t}\n\t// If the filepath already ends in the extension then remove it\n\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t}\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|~|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// Truncate the extension if it is too long\n\tif(extension.length > 32) {\n\t\textension = extension.substr(0,32);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath, oldPath = (options.fileInfo) ? options.fileInfo.filepath : undefined,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tif(oldPath && oldPath == fullPath) {\n\t\t\tbreak;\n\t\t}\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// If the last write failed with an error, or if path does not start with:\n\t//\tthe resolved options.directory, the resolved wikiPath directory, or the wikiTiddlersPath directory, \n\t//\tthen encodeURIComponent() and resolve to tiddler directory\n\tvar writePath = $tw.hooks.invokeHook(\"th-make-tiddler-path\",fullPath),\n\t\tencode = (options.fileInfo || {writeError: false}).writeError == true;\n\tif(!encode) {\n\t\tencode = !(fullPath.indexOf(path.resolve(directory)) == 0 ||\n\t\t\tfullPath.indexOf(path.resolve($tw.boot.wikiPath)) == 0 ||\n\t\t\tfullPath.indexOf($tw.boot.wikiTiddlersPath) == 0);\n\t\t}\n\tif(encode) {\n\t\twritePath = path.resolve(directory,encodeURIComponent(fullPath));\n\t}\n\t// Return the full path to the file\n\treturn writePath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn callback(null,fileInfo);\n\t\t\t});\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn callback(null,fileInfo);\n\t\t\t});\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn callback(null,fileInfo);\n\t\t\t});\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n/*\nDelete a file described by the fileInfo if it exits\n*/\nexports.deleteTiddlerFile = function(fileInfo,callback) {\n\t//Only attempt to delete files that exist on disk\n\tif(!fileInfo.filepath || !fs.existsSync(fileInfo.filepath)) {\n\t\t//For some reason, the tiddler is only in memory or we can't modify the file at this path\n\t\t$tw.syncer.displayError(\"Server deleteTiddlerFile task failed for filepath: \"+fileInfo.filepath);\n\t\treturn callback(null,fileInfo);\n\t}\n\t// Delete the file\n\tfs.unlink(fileInfo.filepath,function(err) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\t\n\t\t// Delete the metafile if present\n\t\tif(fileInfo.hasMetaFile && fs.existsSync(fileInfo.filepath + \".meta\")) {\n\t\t\tfs.unlink(fileInfo.filepath + \".meta\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),function(err) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\treturn callback(null,fileInfo);\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn callback(null,fileInfo);\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nCleanup old files on disk, by comparing the options values:\n\tadaptorInfo from $tw.syncer.tiddlerInfo\n\tbootInfo from $tw.boot.files\n*/\nexports.cleanupTiddlerFiles = function(options,callback) {\n\tvar adaptorInfo = options.adaptorInfo || {},\n\tbootInfo = options.bootInfo || {},\n\ttitle = options.title || \"undefined\";\n\tif(adaptorInfo.filepath && bootInfo.filepath && adaptorInfo.filepath !== bootInfo.filepath) {\n\t\t$tw.utils.deleteTiddlerFile(adaptorInfo,function(err) {\n\t\t\tif(err) {\n\t\t\t\tif ((err.code == \"EPERM\" || err.code == \"EACCES\") && err.syscall == \"unlink\") {\n\t\t\t\t\t// Error deleting the previous file on disk, should fail gracefully\n\t\t\t\t\t$tw.syncer.displayError(\"Server desynchronized. Error cleaning up previous file for tiddler: \\\"\"+title+\"\\\"\",err);\n\t\t\t\t\treturn callback(null,bootInfo);\n\t\t\t\t} else {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn callback(null,bootInfo);\n\t\t});\n\t} else {\n\t\treturn callback(null,bootInfo);\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/linkedlist.js": {
"title": "$:/core/modules/utils/linkedlist.js",
"text": "/*\\\nmodule-type: utils\ntitle: $:/core/modules/utils/linkedlist.js\ntype: application/javascript\n\nThis is a doubly-linked indexed list intended for manipulation, particularly\npushTop, which it does with significantly better performance than an array.\n\n\\*/\n(function(){\n\nfunction LinkedList() {\n\tthis.clear();\n};\n\nLinkedList.prototype.clear = function() {\n\t// LinkedList performs the duty of both the head and tail node\n\tthis.next = Object.create(null);\n\tthis.prev = Object.create(null);\n\tthis.first = undefined;\n\tthis.last = undefined;\n\tthis.length = 0;\n};\n\nLinkedList.prototype.remove = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_assertString(value[t]);\n\t\t}\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t} else {\n\t\t_assertString(value);\n\t\t_removeOne(this,value);\n\t}\n};\n\n/*\nPush behaves like array.push and accepts multiple string arguments. But it also\naccepts a single array argument too, to be consistent with its other methods.\n*/\nLinkedList.prototype.push = function(/* values */) {\n\tvar values = arguments;\n\tif($tw.utils.isArray(values[0])) {\n\t\tvalues = values[0];\n\t}\n\tfor(var i = 0; i < values.length; i++) {\n\t\t_assertString(values[i]);\n\t}\n\tfor(var i = 0; i < values.length; i++) {\n\t\t_linkToEnd(this,values[i]);\n\t}\n\treturn this.length;\n};\n\nLinkedList.prototype.pushTop = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor (var t=0; t<value.length; t++) {\n\t\t\t_assertString(value[t]);\n\t\t}\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_linkToEnd(this,value[t]);\n\t\t}\n\t} else {\n\t\t_assertString(value);\n\t\t_removeOne(this,value);\n\t\t_linkToEnd(this,value);\n\t}\n};\n\nLinkedList.prototype.each = function(callback) {\n\tvar visits = Object.create(null),\n\t\tvalue = this.first;\n\twhile(value !== undefined) {\n\t\tcallback(value);\n\t\tvar next = this.next[value];\n\t\tif(typeof next === \"object\") {\n\t\t\tvar i = visits[value] || 0;\n\t\t\tvisits[value] = i+1;\n\t\t\tvalue = next[i];\n\t\t} else {\n\t\t\tvalue = next;\n\t\t}\n\t}\n};\n\nLinkedList.prototype.toArray = function() {\n\tvar output = new Array(this.length),\n\t\tindex = 0;\n\tthis.each(function(value) { output[index++] = value; });\n\treturn output;\n};\n\nfunction _removeOne(list,value) {\n\tvar prevEntry = list.prev[value],\n\t\tnextEntry = list.next[value],\n\t\tprev = prevEntry,\n\t\tnext = nextEntry;\n\tif(typeof nextEntry === \"object\") {\n\t\tnext = nextEntry[0];\n\t\tprev = prevEntry[0];\n\t}\n\t// Relink preceding element.\n\tif(list.first === value) {\n\t\tlist.first = next\n\t} else if(prev !== undefined) {\n\t\tif(typeof list.next[prev] === \"object\") {\n\t\t\tif(next === undefined) {\n\t\t\t\t// Must have been last, and 'i' would be last element.\n\t\t\t\tlist.next[prev].pop();\n\t\t\t} else {\n\t\t\t\tvar i = list.next[prev].indexOf(value);\n\t\t\t\tlist.next[prev][i] = next;\n\t\t\t}\n\t\t} else {\n\t\t\tlist.next[prev] = next;\n\t\t}\n\t} else {\n\t\treturn;\n\t}\n\t// Now relink following element\n\t// Check \"next !== undefined\" rather than \"list.last === value\" because\n\t// we need to know if the FIRST value is the last in the list, not the last.\n\tif(next !== undefined) {\n\t\tif(typeof list.prev[next] === \"object\") {\n\t\t\tif(prev === undefined) {\n\t\t\t\t// Must have been first, and 'i' would be 0.\n\t\t\t\tlist.prev[next].shift();\n\t\t\t} else {\n\t\t\t\tvar i = list.prev[next].indexOf(value);\n\t\t\t\tlist.prev[next][i] = prev;\n\t\t\t}\n\t\t} else {\n\t\t\tlist.prev[next] = prev;\n\t\t}\n\t} else {\n\t\tlist.last = prev;\n\t}\n\t// Delink actual value. If it uses arrays, just remove first entries.\n\tif(typeof nextEntry === \"object\") {\n\t\tnextEntry.shift();\n\t\tprevEntry.shift();\n\t} else {\n\t\tlist.next[value] = undefined;\n\t\tlist.prev[value] = undefined;\n\t}\n\tlist.length -= 1;\n};\n\n// Sticks the given node onto the end of the list.\nfunction _linkToEnd(list,value) {\n\tif(list.first === undefined) {\n\t\tlist.first = value;\n\t} else {\n\t\t// Does it already exists?\n\t\tif(list.first === value || list.prev[value] !== undefined) {\n\t\t\tif(typeof list.next[value] === \"string\") {\n\t\t\t\tlist.next[value] = [list.next[value]];\n\t\t\t\tlist.prev[value] = [list.prev[value]];\n\t\t\t} else if(typeof list.next[value] === \"undefined\") {\n\t\t\t\t// list.next[value] must be undefined.\n\t\t\t\t// Special case. List already has 1 value. It's at the end.\n\t\t\t\tlist.next[value] = [];\n\t\t\t\tlist.prev[value] = [list.prev[value]];\n\t\t\t}\n\t\t\tlist.prev[value].push(list.last);\n\t\t\t// We do NOT append a new value onto \"next\" list. Iteration will\n\t\t\t// figure out it must point to End-of-List on its own.\n\t\t} else {\n\t\t\tlist.prev[value] = list.last;\n\t\t}\n\t\t// Make the old last point to this new one.\n\t\tif(typeof list.next[list.last] === \"object\") {\n\t\t\tlist.next[list.last].push(value);\n\t\t} else {\n\t\t\tlist.next[list.last] = value;\n\t\t}\n\t}\n\tlist.last = value;\n\tlist.length += 1;\n};\n\nfunction _assertString(value) {\n\tif(typeof value !== \"string\") {\n\t\tthrow \"Linked List only accepts string values, not \" + value;\n\t}\n};\n\nexports.LinkedList = LinkedList;\n\n})();\n",
"module-type": "utils",
"type": "application/javascript"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nLog a table of name: value pairs\n*/\nexports.logTable = function(data) {\n\tif(console.table) {\n\t\tconsole.table(data);\n\t} else {\n\t\t$tw.utils.each(data,function(value,name) {\n\t\t\tconsole.log(name + \": \" + value);\n\t\t});\n\t}\n}\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimPrefix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/^\\s\\s*/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('^(' + unwanted + ')+');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimSuffix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/\\s\\s*$/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('(' + unwanted + ')+$');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date),4);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear(),4);\n\t\t\t}],\n\t\t\t[/^aYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(Math.abs(date.getFullYear()),4);\n\t\t\t}],\n\t\t\t[/^\\{era:([^,\\|}]*)\\|([^}\\|]*)\\|([^}]*)\\}/, function(match) {\n\t\t\t\tvar year = date.getFullYear();\n\t\t\t\treturn year === 0 ? match[2] : (year < 0 ? match[1] : match[3]);\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call(null,match);\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s, rawUnicode) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(regex, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s, rawUnicode) {\n\t// See http://www.json.org/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(regex,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,0);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\nexports.makeCompareFunction = function(type,options) {\n\toptions = options || {};\n\tvar gt = options.invert ? -1 : +1,\n\t\tlt = options.invert ? +1 : -1,\n\t\tcompare = function(a,b) {\n\t\t\tif(a > b) {\n\t\t\t\treturn gt ;\n\t\t\t} else if(a < b) {\n\t\t\t\treturn lt;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\ttypes = {\n\t\t\t\"number\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t\t\t},\n\t\t\t\"integer\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t\t\t},\n\t\t\t\"string\": function(a,b) {\n\t\t\t\treturn compare(\"\" + a,\"\" +b);\n\t\t\t},\n\t\t\t\"date\": function(a,b) {\n\t\t\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\t\t\tdateB = $tw.utils.parseDate(b);\n\t\t\t\tif(!isFinite(dateA)) {\n\t\t\t\t\tdateA = new Date(0);\n\t\t\t\t}\n\t\t\t\tif(!isFinite(dateB)) {\n\t\t\t\t\tdateB = new Date(0);\n\t\t\t\t}\n\t\t\t\treturn compare(dateA,dateB);\n\t\t\t},\n\t\t\t\"version\": function(a,b) {\n\t\t\t\treturn $tw.utils.compareVersions(a,b);\n\t\t\t}\n\t\t};\n\treturn (types[type] || types[options.defaultType] || types.number);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-confirm.js": {
"title": "$:/core/modules/widgets/action-confirm.js",
"text": "/*\\\n\ntitle: $:/core/modules/widgets/action-confirm.js\ntype: application/javascript\nmodule-type: widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ConfirmWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nConfirmWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nConfirmWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.parentDomNode = parent;\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nConfirmWidget.prototype.execute = function() {\n\tthis.message = this.getAttribute(\"$message\",$tw.language.getString(\"ConfirmAction\"));\n\tthis.prompt = (this.getAttribute(\"$prompt\",\"yes\") == \"no\" ? false : true);\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nConfirmWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$message\"] || changedAttributes[\"$prompt\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nConfirmWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar invokeActions = true,\n\t\thandled = true;\n\tif(this.prompt) {\n\t\tinvokeActions = confirm(this.message);\n\t}\n\tif(invokeActions) {\n\t\thandled = this.invokeActions(triggeringWidget,event);\n\t}\n\treturn handled;\n};\n\nConfirmWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nexports[\"action-confirm\"] = ConfirmWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-log.js": {
"title": "$:/core/modules/widgets/action-log.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-log.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LogWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLogWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLogWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\nLogWidget.prototype.execute = function(){\n\tthis.message = this.getAttribute(\"$$message\",\"debug\");\n\tthis.logAll = this.getAttribute(\"$$all\",\"no\") === \"yes\" ? true : false;\n\tthis.filter = this.getAttribute(\"$$filter\");\n}\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nLogWidget.prototype.refresh = function(changedTiddlers) {\n\tthis.refreshSelf();\n\treturn true;\n};\n\n/*\nInvoke the action associated with this widget\n*/\nLogWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tthis.log();\n\treturn true; // Action was invoked\n};\n\nLogWidget.prototype.log = function() {\n\tvar data = {},\n\t\tdataCount,\n\t\tallVars = {},\n\t\tfilteredVars;\n\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.substring(0,2) !== \"$$\") {\n\t\t\tdata[name] = attribute;\n\t\t}\t\t\n\t});\n\n\tfor(var v in this.variables) {\n\t\tallVars[v] = this.getVariable(v,{defaultValue:\"\"});\n\t}\t\n\tif(this.filter) {\n\t\tfilteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars));\n\t\t$tw.utils.each(filteredVars,function(name) {\n\t\t\tdata[name] = allVars[name];\n\t\t});\t\t\n\t}\n\tdataCount = $tw.utils.count(data);\n\n\tconsole.group(this.message);\n\tif(dataCount > 0) {\n\t\t$tw.utils.logTable(data);\n\t}\n\tif(this.logAll || !dataCount) {\n\t\tconsole.groupCollapsed(\"All variables\");\n\t\t$tw.utils.logTable(allVars);\n\t\tconsole.groupEnd();\n\t}\n\tconsole.groupEnd();\n}\n\nexports[\"action-log\"] = LogWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords || \"\");\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t} else {\n\t\t$tw.popup.cancel(0);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\tif(this.accept) {\n\t\tdomNode.setAttribute(\"accept\",this.accept);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.accept = this.getAttribute(\"accept\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = \"button\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\tif(this.popup || this.popupTitle) {\n\t\tdomNode.setAttribute(\"aria-expanded\",isPoppedUp ? \"true\" : \"false\");\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tdomNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tself.invokeActionString(self.actions,self,event,{modifier: modifierKey});\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nButtonWidget.prototype.updateDomNodeClasses = function() {\n\tvar domNodeClasses = this.domNode.className.split(\" \"),\n\t\toldClasses = this.class.split(\" \"),\n\t\tnewClasses;\t\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tnewClasses = this.class.split(\" \");\n\t//Remove classes assigned from the old value of class attribute\n\t$tw.utils.each(oldClasses,function(oldClass){\n\t\tvar i = domNodeClasses.indexOf(oldClass);\n\t\tif(i !== -1) {\n\t\t\tdomNodeClasses.splice(i,1);\n\t\t}\n\t});\n\t//Add new classes from updated class attribute.\n\t$tw.utils.pushTop(domNodeClasses,newClasses);\n\tthis.domNode.className = domNodeClasses.join(\" \");\n}\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.updateDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = this.parseTreeNode.isBlock ? \"div\" : \"span\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t} else {\n\t\t$tw.utils.addClass(this.domNode,this.disabledClass);\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\tif(this.domNodes[0]) {\n\t\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t\t}\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.disabledClass = this.getAttribute(\"disabledClass\",\"\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nDroppableWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields]), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.autoOpenOnImport = this.getAttribute(\"autoOpenOnImport\");\n\tthis.importTitle = this.getAttribute(\"importTitle\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable || changedAttributes.autoOpenOnImport || changedAttributes.importTitle || changedAttributes.deserializer || changedAttributes.class) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\");\n\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: this.parseTreeNode.attributes,\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// Neuter blacklisted elements\n\tthis.tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(this.tag) !== -1) {\n\t\tthis.tag = \"safe-\" + this.tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(this.tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\tthis.tag = \"h\" + headingLevel;\n\t}\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Invoke the th-rendering-element hook\n\tvar parseTreeNodes = $tw.hooks.invokeHook(\"th-rendering-element\",null,this);\n\tthis.isReplaced = !!parseTreeNodes;\n\tif(parseTreeNodes) {\n\t\t// Use the parse tree nodes provided by the hook\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t\tthis.renderChildren(this.parentDomNode,null);\n\t\treturn;\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n\t// Create the DOM node and render children\n\tvar domNode = this.document.createElementNS(this.namespace,this.tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\tif(!this.isReplaced) {\n\t\t\t// Update our attributes\n\t\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\t\t\t\n\t\t} else {\n\t\t\t// If we were replaced then completely refresh ourselves\n\t\t\treturn this.refreshSelf();\n\t\t}\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/eventcatcher.js": {
"title": "$:/core/modules/widgets/eventcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/eventcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nEvent handler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EventWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEventWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEventWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.elementTag && $tw.config.htmlUnsafeElements.indexOf(this.elementTag) === -1) {\n\t\ttag = this.elementTag;\n\t}\t\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tthis.assignDomNodeClasses();\t\n\t// Add our event handler\n\t$tw.utils.each(this.types,function(type) {\n\t\tdomNode.addEventListener(type,function(event) {\n\t\t\tvar selector = self.getAttribute(\"selector\"),\n\t\t\t\tactions = self.getAttribute(\"actions-\"+type),\n\t\t\t\tselectedNode = event.target,\n\t\t\t\tselectedNodeRect,\n\t\t\t\tcatcherNodeRect,\n\t\t\t\tvariables = {};\n\t\t\tif(selector) {\n\t\t\t\t// Search ancestors for a node that matches the selector\n\t\t\t\twhile(!selectedNode.matches(selector) && selectedNode !== domNode) {\n\t\t\t\t\tselectedNode = selectedNode.parentNode;\n\t\t\t\t}\n\t\t\t\t// If we found one, copy the attributes as variables, otherwise exit\n\t\t\t\tif(selectedNode.matches(selector)) {\n\t\t\t\t\t$tw.utils.each(selectedNode.attributes,function(attribute) {\n\t\t\t\t\t\tvariables[\"dom-\" + attribute.name] = attribute.value.toString();\n\t\t\t\t\t});\n\t\t\t\t\t//Add a variable with a popup coordinate string for the selected node\n\t\t\t\t\tvariables[\"tv-popup-coords\"] = \"(\" + selectedNode.offsetLeft + \",\" + selectedNode.offsetTop +\",\" + selectedNode.offsetWidth + \",\" + selectedNode.offsetHeight + \")\";\n\t\t\t\t\t\n\t\t\t\t\t//Add variables for offset of selected node\n\t\t\t\t\tvariables[\"tv-selectednode-posx\"] = selectedNode.offsetLeft.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-posy\"] = selectedNode.offsetTop.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-width\"] = selectedNode.offsetWidth.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-height\"] = selectedNode.offsetHeight.toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to selected node\n\t\t\t\t\tselectedNodeRect = selectedNode.getBoundingClientRect();\t\t\t\t\n\t\t\t\t\tvariables[\"event-fromselected-posx\"] = (event.clientX - selectedNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromselected-posy\"] = (event.clientY - selectedNodeRect.top).toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to event catcher node\n\t\t\t\t\tcatcherNodeRect = self.domNode.getBoundingClientRect();\n\t\t\t\t\tvariables[\"event-fromcatcher-posx\"] = (event.clientX - catcherNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromcatcher-posy\"] = (event.clientY - catcherNodeRect.top).toString();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Execute our actions with the variables\n\t\t\tif(actions) {\n\t\t\t\t// Add a variable for the modifier key\n\t\t\t\tvariables.modifier = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\t\t// Add a variable for the mouse button\n\t\t\t\tif(\"button\" in event) {\n\t\t\t\t\tif(event.button === 0) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"left\";\n\t\t\t\t\t} else if(event.button === 1) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"middle\";\n\t\t\t\t\t} else if(event.button === 2) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"right\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvariables[\"event-type\"] = event.type.toString();\n\t\t\t\tif(typeof event.detail === \"object\" && !!event.detail) {\n\t\t\t\t\t$tw.utils.each(event.detail,function(detailValue,detail) {\n\t\t\t\t\t\tvariables[\"event-detail-\" + detail] = detailValue.toString();\n\t\t\t\t\t});\n\t\t\t\t} else if(!!event.detail) {\n\t\t\t\t\tvariables[\"event-detail\"] = event.detail.toString();\n\t\t\t\t}\n\t\t\t\tself.invokeActionString(actions,self,event,variables);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},false);\n\t});\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEventWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes that require a refresh on change\n\tthis.types = this.getAttribute(\"events\",\"\").split(\" \");\n\tthis.elementTag = this.getAttribute(\"tag\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nEventWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-eventcatcher\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEventWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"events\"] || changedAttributes[\"tag\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.eventcatcher = EventWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Got to flush all the accumulated variables\n\tthis.variables = new this.variablesConstructor();\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.children = [widgetPointer.makeChildWidget(node)];\n\t\t\t\t\t// No more regenerating children for\n\t\t\t\t\t// this widget. If it needs to refresh,\n\t\t\t\t\t// it'll do so along with the the whole\n\t\t\t\t\t// importvariable tree.\n\t\t\t\t\tif (widgetPointer != this) {\n\t\t\t\t\t\twidgetPointer.makeChildWidgets = function(){};\n\t\t\t\t\t}\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tvar handled = self.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tif(handled || self.actions || self.message) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"}),\n\t\tdomNode = this.document.createElementNS(namespace,tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tvar namespaceHref = (namespace === \"http://www.w3.org/2000/svg\") ? \"http://www.w3.org/1999/xlink\" : undefined;\n\t\tdomNode.setAttributeNS(namespaceHref,\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey,\n\t\tevent: event\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo, modifier: modifierKey});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar parser,\n\t\temptyMessage = this.getAttribute(\"emptyMessage\",\"\");\n\t// this.wiki.parseText() calls \n\t// new Parser(..), which should only be done, if needed, because it's heavy!\n\tif (emptyMessage === \"\") {\n\t\treturn [];\n\t}\n\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/log.js": {
"title": "$:/core/modules/widgets/log.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/log.js\ntype: application/javascript\nmodule-type: widget-subclass\n\nWidget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.baseClass = \"action-log\";\n\nexports.name = \"log\";\n\nexports.constructor = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n}\n\nexports.prototype = {};\n\nexports.prototype.render = function(event) {\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event);\t\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this);\n}\n\n})();",
"type": "application/javascript",
"module-type": "widget-subclass"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\t// Check if we've already cached parsing this macro\n\t\tvar mode = this.parseTreeNode.isBlock ? \"blockParser\" : \"inlineParser\",\n\t\t\tparser;\n\t\tif(variableInfo.srcVariable && variableInfo.srcVariable[mode]) {\n\t\t\tparser = variableInfo.srcVariable[mode];\n\t\t} else {\n\t\t\tparser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\t\tif(variableInfo.isCacheable && variableInfo.srcVariable) {\n\t\t\t\tvariableInfo.srcVariable[mode] = parser;\n\t\t\t}\n\t\t}\n\t\tvar parseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else if(this.renderOutput === \"text/raw\") {\n\t\tparseTreeNodes = [{type: \"text\", text: text}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/messagecatcher.js": {
"title": "$:/core/modules/widgets/messagecatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/messagecatcher.js\ntype: application/javascript\nmodule-type: widget\n\nMessage catcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MessageCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMessageCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMessageCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Add our message handler\n\tif(this.messageType) {\n\t\tthis.addEventListeners([\n\t\t\t{type: this.messageType, handler: \"handleEvent\"}\n\t\t]);\n\t}\n\t// Render children\n\tthis.renderChildren(parent,null);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMessageCatcherWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes that require a refresh on change\n\tthis.messageType = this.getAttribute(\"type\");\n\tthis.messageActions = this.getAttribute(\"actions\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nHandle an event\n*/\nMessageCatcherWidget.prototype.handleEvent = function(event) {\n\tif(this.messageActions) {\n\t\t// Collect all the event properties into variables\n\t\tvar collectProps = function(obj,prefix) {\n\t\t\t\tprefix = prefix || \"\";\n\t\t\t\tvar props = {};\n\t\t\t\t$tw.utils.each(obj,function(value,name) {\n\t\t\t\t\tif([\"string\",\"boolean\",\"number\"].indexOf(typeof value) !== -1) {\n\t\t\t\t\t\tprops[prefix + name] = value.toString();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn props;\n\t\t\t};\n\t\tvar variables = $tw.utils.extend(\n\t\t\t{},\n\t\t\tcollectProps(event.paramObject,\"event-paramObject-\"),\n\t\t\tcollectProps(event,\"event-\"),\n\t\t\t{\n\t\t\t\tmodifier: $tw.keyboardManager.getEventModifierKeyDescriptor(event)\n\t\t\t});\n\t\tthis.invokeActionString(this.messageActions,this,event,variables);\n\t}\n\treturn false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMessageCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"type\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.messagecatcher = MessageCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\tthis.story = new $tw.Story({\n\t\twiki: this.wiki,\n\t\tstoryTitle: this.storyTitle,\n\t\thistoryTitle: this.historyTitle\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.story.addToStory(title,fromTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.story.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\t\ttext: \"\",\n\t\t\t},\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler,tiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTitle = event.importTitle ? event.importTitle : IMPORT_TITLE,\n\t\timportTiddler = this.wiki.getTiddler(importTitle),\n\t\timportData = this.wiki.getTiddlerData(importTitle,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: importTitle,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t\tnewFields[\"suppressed-\" + title] = \"yes\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tvar autoOpenOnImport = event.autoOpenOnImport ? event.autoOpenOnImport : this.getVariable(\"tv-auto-open-on-import\"); \n\tif(autoOpenOnImport !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(importTitle) === -1) {\n\t\t\tstoryList.unshift(importTitle);\n\t\t}\n\t\t// And to history\n\t\thistory.push(importTitle);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tif($tw.utils.hop(importTiddler.fields,[\"rename-\" + title])) {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields,{title : importTiddler.fields[\"rename-\" + title]});\n\t\t\t} else {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\t}\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddler.fields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar options = {},\n\t\tparamObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\toptions.dontRenameInTags = (paramObject.renameInTags === \"false\" || paramObject.renameInTags === \"no\") ? true : false;\n\toptions.dontRenameInLists = (paramObject.renameInLists === \"false\" || paramObject.renameInLists === \"no\") ? true : false;\n\tthis.wiki.renameTiddler(from,to,options);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n\t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n\t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.checked = true;\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif(tiddler) {\n\t\tif(this.radioIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t\t} else {\n\t\t\tvalue = tiddler.getFieldString(this.radioField);\n\t\t}\n\t} else {\n\t\tvalue = this.radioDefault;\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n\t// Trigger actions\n\tif(this.radioActions) {\n\t\tthis.invokeActionString(this.radioActions,this,event,{\"actionValue\": this.radioValue});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tthis.radioDefault = this.getAttribute(\"default\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\tthis.radioActions = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(($tw.utils.count(changedAttributes) > 0)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.radioTitle]) {\n\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\treturn this.refreshChildren(changedTiddlers);\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name:\"mousedown\", handlerObject:this, handlerMethod:\"handleMouseDownEvent\"},\n\t\t{name:\"mouseup\", handlerObject:this, handlerMethod:\"handleMouseUpEvent\"},\n\t\t{name:\"change\", handlerObject:this, handlerMethod:\"handleChangeEvent\"},\n\t\t{name:\"input\", handlerObject:this, handlerMethod:\"handleInputEvent\"},\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField,\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue);\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.getActionVariables = function(options) {\n\toptions = options || {};\n\tvar hasChanged = (this.startValue !== this.inputDomNode.value) ? \"yes\" : \"no\";\n\t// Trigger actions. Use variables = {key:value, key:value ...}\n\t// the \"value\" is needed.\n\treturn $tw.utils.extend({\"actionValue\": this.inputDomNode.value, \"actionValueHasChanged\": hasChanged}, options);\n}\n\n// actionsStart\nRangeWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.mouseDown = true; // TODO remove once IE is gone.\n\tthis.startValue = this.inputDomNode.value; // TODO remove this line once IE is gone!\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseDown) {\n\t\tvar variables = this.getActionVariables() // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsMouseDown,this,event,variables);\n\t}\n}\n\n// actionsStop\nRangeWidget.prototype.handleMouseUpEvent = function(event) {\n\tthis.mouseDown = false; // TODO remove once IE is gone.\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseUp) {\n\t\tvar variables = this.getActionVariables()\n\t\tthis.invokeActionString(this.actionsMouseUp,this,event,variables);\n\t}\n\t// TODO remove the following if() once IE is gone!\n\tif ($tw.browser.isIE) {\n\t\tif (this.startValue !== this.inputDomNode.value) {\n\t\t\tthis.handleChangeEvent(event);\n\t\t\tthis.startValue = this.inputDomNode.value;\n\t\t}\n\t}\n}\n\nRangeWidget.prototype.handleChangeEvent = function(event) {\n\tif (this.mouseDown) { // TODO refactor this function once IE is gone.\n\t\tthis.handleInputEvent(event);\n\t}\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsInput) {\n\t\t// \"tiddler\" parameter may be missing. See .execute() below\n\t\tvar variables = this.getActionVariables({\"actionValueHasChanged\": \"yes\"}) // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsInput,this,event,variables);\n\t}\n};\n\nRangeWidget.prototype.handleEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// TODO remove the next 1 lines once IE is gone!\n\tthis.mouseUp = true; // Needed for IE10\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\",\"text\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\",\"\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Actions since 5.1.23\n\t// Next 2 only fire once!\n\tthis.actionsMouseDown = this.getAttribute(\"actionsStart\",\"\");\n\tthis.actionsMouseUp = this.getAttribute(\"actionsStop\",\"\");\n\t// Input fires very often!\n\tthis.actionsInput = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"belowright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\t\t\t\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tcase \"aboveleft\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\t\t\t\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\t// class attribute handled in assignDomNodeClasses()\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\tthis.updatePopupPosition = this.getAttribute(\"updatePopupPosition\",\"no\") === \"yes\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\nRevealWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-reveal\");\n\tthis.domNode.className = classes.join(\" \");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if(this.type === \"popup\" && this.updatePopupPosition && (changedTiddlers[this.state] || changedTiddlers[this.stateTitle])) {\n\t\t\tthis.positionPopup(this.domNode);\n\t\t}\n\t\tif(changedAttributes.style) {\n\t\t\tthis.domNode.style = this.getAttribute(\"style\",\"\");\n\t\t}\n\t\tif(changedAttributes[\"class\"]) {\n\t\t\tthis.assignDomNodeClasses();\n\t\t}\t\t\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tif(event.paramObject && event.paramObject.selector) {\n\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t} else {\n\t\tthis.scrollIntoView(event.target);\t\t\t\n\t}\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\tsrcWindow = element ? element.ownerDocument.defaultView : window;\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nScrollableWidget.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\tthis.recursionMarker = this.getAttribute(\"recursionMarker\",\"yes\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tif(this.recursionMarker === \"yes\") {\n\t\tthis.setVariable(\"transclusion\",recursionMarker);\n\t}\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Assign any variables set via attributes starting with $\n\tvar variables = Object.create(null);\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) === \"$\") {\n\t\t\tvariables[name.substr(1)] = attribute;\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes,{\n\t\tvariables: variables\n\t});\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\t// Call the constructor\n\tWidget.call(this);\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\toriginalValue = variable.value,\n\t\t\tvalue = originalValue,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params,\n\t\t\tsrcVariable: variable,\n\t\t\tisCacheable: originalValue === value\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes,options) {\n\toptions = options || {};\n\tthis.children = [];\n\tvar self = this;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: parseTreeNodes\n\t\t};\n\t\tparseTreeNodes = [setVariableWidget];\n\t});\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\noptions include:\n\tvariables: optional hashmap of variables to wrap around the widget\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode,options) {\n\toptions = options || {};\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tparseTreeNode\n\t\t\t]\n\t\t};\n\t\tparseTreeNode = setVariableWidget;\n\t});\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\tevent.widget = event.widget || this;\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\n/*\nExecute action tiddlers by tag\n*/\nWidget.prototype.invokeActionsByTag = function(tag,event,variables) {\n\tvar self = this;\n\t$tw.utils.each(self.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\tself.invokeActionString(self.wiki.getTiddlerText(title),self,event,variables);\n\t});\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.recursionMarker : optional flag to set a recursion marker, defaults to \"yes\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\trecursionMarker: {\n\t\t\t\t\tname: \"recursionMarker\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: options.recursionMarker || \"yes\"\n\t\t\t\t\t},\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn this.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\"};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\n\tconsole.log(\"$tw.wiki.addToHistory() is deprecated since V5.1.23! Use the this.story.addToHistory() from the story-object!\")\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\n\tconsole.log(\"$tw.wiki.addToStory() is deprecated since V5.1.23! Use the this.story.addToStory() from the story-object!\")\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.slugify = function(title,options) {\n\tvar tiddler = this.getTiddler(title),\n\t\tslug;\n\tif(tiddler && tiddler.fields.slug) {\n\t\tslug = tiddler.fields.slug;\n\t} else {\n\t\tslug = $tw.utils.transliterate(title.toString().toLowerCase()) // Replace diacritics with basic lowercase ASCII\n\t\t\t.replace(/\\s+/g,\"-\") // Replace spaces with -\n\t\t\t.replace(/[^\\w\\-\\.]+/g,\"\") // Remove all non-word chars except dash and dot\n\t\t\t.replace(/\\-\\-+/g,\"-\") // Replace multiple - with single -\n\t\t\t.replace(/^-+/,\"\") // Trim - from start of text\n\t\t\t.replace(/-+$/,\"\"); // Trim - from end of text\n\t}\n\t// If the resulting slug is blank (eg because the title is just punctuation characters)\n\tif(!slug) {\n\t\t// ...then just use the character codes of the title\n\t\tvar result = [];\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tresult.push(char.charCodeAt(0).toString());\n\t\t});\n\t\tslug = result.join(\"-\");\n\t}\n\treturn slug;\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/CupertinoDark": {
"title": "$:/palettes/CupertinoDark",
"tags": "$:/tags/Palette",
"name": "Cupertino Dark",
"description": "A macOS inspired dark palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #FF453A\nalert-border: #FF453A\nalert-highlight: #FFD60A\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #282828\nblockquote-bar: <<colour page-background>>\nbutton-foreground: <<colour background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #FF453A\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour tiddler-info-background>>\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: #3F638B\ndropdown-tab-background: #323232\ndropzone-background: #30D158\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #BF5AF2\nexternal-link-foreground: #32D74B\nforeground: #FFFFFF\nmenubar-background: #464646\nmenubar-foreground: #ffffff\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: #98989D\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #323232\npre-background: #464646\npre-border: transparent\nprimary: #0A84FF\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour background>>\nsidebar-controls-foreground-hover: #FF9F0A\nsidebar-controls-foreground: #8E8E93\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: #3F638B\nsidebar-tab-background: <<colour background>>\nsidebar-tab-border-selected: <<colour background>>\nsidebar-tab-border: <<colour background>>\nsidebar-tab-divider: <<colour background>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: #ffffff\nstatic-alert-foreground: #B4B4B4\ntab-background-selected: #3F638B\ntab-background: <<colour page-background>>\ntab-border-selected: <<colour page-background>>\ntab-border: <<colour page-background>>\ntab-divider: <<colour page-background>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #464646\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #48484A\ntag-foreground: #323232\ntiddler-background: <<colour background>>\ntiddler-border: transparent\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: #48484A\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #1E1E1E\ntiddler-info-border: #1E1E1E\ntiddler-info-tab-background: #3F638B\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: #464646\nselection-background: #3F638B\nselection-foreground: #ffffff\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #3F638B\nwikilist-button-foreground: <<colour foreground>>\nwikilist-button-open: #32D74B\nwikilist-button-open-hover: #32D74B\nwikilist-button-reveal: #0A84FF\nwikilist-button-reveal-hover: #0A84FF\nwikilist-button-remove: #FF453A\nwikilist-button-remove-hover: #FF453A\nwikilist-droplink-dragover: #32D74B\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour foreground>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-url: <<colour muted-foreground>>\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DesertSand": {
"title": "$:/palettes/DesertSand",
"tags": "$:/tags/Palette",
"name": "Desert Sand",
"description": "A desert sand palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #E9E0C7\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour foreground>>\ncode-background: #F3EDDF\ncode-border: #C3BAA1\ncode-foreground: #ab3250\ndiff-delete-background: #bd8b8b\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #91c093\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ad3434\ndownload-background: #6ca16c\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #E9E0C7\ndropdown-tab-background: #BAB29C\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #313163\nexternal-link-foreground: #555592\nforeground: #2D2A23\nmenubar-background: #CDC2A6\nmenubar-foreground: #5A5446\nmessage-background: #ECE5CF\nmessage-border: #D6CBAA\nmessage-foreground: #5f6e7d\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #8A8885\nmodal-footer-background: #CDC2A6\nmodal-footer-border: #9D998E\nmodal-header-border: #9D998E\nmuted-foreground: #9D998E\nnotification-background: #F0E9D7\nnotification-border: #939189\npage-background: #e0d3af\npre-background: #D6CBAA\npre-border: #CDC2A6\nprimary: #5B6F55\nselection-background: #9D947B\nselection-foreground: <<colour foreground>>\nselect-tag-background: #F0E9D7\nselect-tag-foreground: #2D2A23\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #2D2A23\nsidebar-controls-foreground: #867F69\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #867F69\nsidebar-muted-foreground-hover: #706A58\nsidebar-muted-foreground: #B3A98C\nsidebar-tab-background-selected: #e0d3af\nsidebar-tab-background: #A6A193\nsidebar-tab-border-selected: #C3BAA1\nsidebar-tab-border: #C3BAA1\nsidebar-tab-divider: #CDC2A6\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #2D2A23\nsidebar-tiddler-link-foreground-hover: #433F35\nsidebar-tiddler-link-foreground: #706A58\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #A6A193\ntab-background-selected: #E9E0C7\ntab-background: #A6A193\ntab-border-selected: #C3BAA1\ntab-border: #C3BAA1\ntab-divider: #CDC2A6\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #2D2A23\ntable-border: #9D998E\ntable-footer-background: #8A8885\ntable-header-background: #B0AA98\ntag-background: #706A58\ntag-foreground: #E3D7B7\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #9D947B\ntiddler-controls-foreground-selected: #706A58\ntiddler-controls-foreground: #C3BAA1\ntiddler-editor-background: #E9E0C7\ntiddler-editor-border-image: #A6A193\ntiddler-editor-border: #A6A193\ntiddler-editor-fields-even: #D6CBAA\ntiddler-editor-fields-odd: #C3BAA1\ntiddler-info-background: #E3D7B7\ntiddler-info-border: #BAB29C\ntiddler-info-tab-background: #E9E0C7\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #867F69\ntiddler-title-foreground: #374464\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #8A8885\nvery-muted-foreground: #CDC2A6\nwikilist-background: <<colour page-background>>\nwikilist-item: #CDC2A6\nwikilist-info: #161512\nwikilist-title: #433F35\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #706A58\nwikilist-button-open: #7db66a\nwikilist-button-open-hover: #56a556\nwikilist-button-reveal: #5a6c9e\nwikilist-button-reveal-hover: #454591\nwikilist-button-remove: #bc5972\nwikilist-button-remove-hover: #814040\nwikilist-toolbar-background: #CDC2A6\nwikilist-toolbar-foreground: #2D2A23\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #A6A193\nwikilist-button-foreground: #161512\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nselection-background: #458588\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: <<colour primary>>\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #32302f\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #acacac\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>\n"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nselection-background: #5E81AC\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #3b4252\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\nwikilist-background: <<colour page-background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-item: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-info: <<colour muted-foreground>>\nwikilist-button-open: #A3BE8C\nwikilist-button-open-hover: #A3BE8C\nwikilist-button-reveal: #81A1C1\nwikilist-button-reveal-hover: #81A1C1\nwikilist-button-remove: #B48EAD\nwikilist-button-remove-hover: #B48EAD\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedDark": {
"title": "$:/palettes/SolarizedDark",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision dark colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedDark",
"text": "alert-background: #073642\nalert-border: #93a1a1\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #073642\nblockquote-bar: #d33682\nbutton-background: #073642\nbutton-border: #586e75\nbutton-foreground: #93a1a1\ncode-background: #073642\ncode-border: #586e75\ncode-foreground: #93a1a1\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #073642\ndragger-background: #073642\ndragger-foreground: #839496\ndropdown-background: #073642\ndropdown-border: #93a1a1\ndropdown-tab-background: #002b36\ndropdown-tab-background-selected: #073642\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover:\nexternal-link-foreground-visited: #268bd2\nforeground: #839496\nmessage-background: #002b36\nmessage-border: #586e75\nmessage-foreground: #839496\nmodal-backdrop: #657b83\nmodal-background: #002b36\nmodal-border: #586e75\nmodal-footer-background: #073642\nmodal-footer-border: #586e75\nmodal-header-border: #586e75\nmuted-foreground: #93a1a1\nnotification-background: #002b36\nnotification-border: #586e75\npage-background: #073642\npre-background: inherit\npre-border: #657b83\nprimary: #859900\nselect-tag-background: #002b36\nselect-tag-foreground: #839496\nsidebar-button-foreground: #93a1a1\nsidebar-controls-foreground: #93a1a1\nsidebar-controls-foreground-hover: #eee8d5\nsidebar-foreground: #93a1a1\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #839496\nsidebar-muted-foreground-hover: #93a1a1\nsidebar-tab-background: #002b36\nsidebar-tab-background-selected: #073642\nsidebar-tab-border: #073642\nsidebar-tab-border-selected: #839496\nsidebar-tab-divider: #002b36\nsidebar-tab-foreground: #657b83\nsidebar-tab-foreground-selected: #93a1a1\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #eee8d5\nsite-title-foreground: #d33682\nstatic-alert-foreground: #93a1a1\ntab-background: #073642\ntab-background-selected: #002b36\ntab-border: #586e75\ntab-border-selected: #93a1a1\ntab-divider: #93a1a1\ntab-foreground: #839496\ntab-foreground-selected: #93a1a1\ntable-border: #586e75\ntable-footer-background: #073642\ntable-header-background: #073642\ntag-background: #b58900\ntag-foreground: #002b36\ntiddler-background: #002b36\ntiddler-border: #586e75\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #002b36\ntiddler-editor-border: #073642\ntiddler-editor-border-image: #002b36\ntiddler-editor-fields-even: #002b36\ntiddler-editor-fields-odd: #073642\ntiddler-info-background: #073642\ntiddler-info-border: #657b83\ntiddler-info-tab-background: #002b36\ntiddler-link-background: #002b36\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #839496\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #839496\ntoolbar-close-button: #839496\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #839496\ntoolbar-edit-button: #839496\ntoolbar-info-button: #839496\ntoolbar-new-button: #839496\ntoolbar-options-button: #839496\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #586e75\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #586e75\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #eee8d5\nblockquote-bar: #d33682\nbutton-background: #eee8d5\nbutton-border: #93a1a1\nbutton-foreground: #586e75\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #586e75\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #eee8d5\ndragger-background: #eee8d5\ndragger-foreground: #657b83\ndropdown-background: #eee8d5\ndropdown-border: #586e75\ndropdown-tab-background: #fdf6e3\ndropdown-tab-background-selected: #eee8d5\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #268bd2\nforeground: #657b83\nmessage-background: #fdf6e3\nmessage-border: #93a1a1\nmessage-foreground: #657b83\nmodal-backdrop: #839496\nmodal-background: #fdf6e3\nmodal-border: #93a1a1\nmodal-footer-background: #eee8d5\nmodal-footer-border: #93a1a1\nmodal-header-border: #93a1a1\nmuted-foreground: #586e75\nnotification-background: #fdf6e3\nnotification-border: #93a1a1\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #839496\nprimary: #859900\nselect-tag-background: #fdf6e3\nselect-tag-foreground: #657b83\nsidebar-button-foreground: #586e75\nsidebar-controls-foreground: #586e75\nsidebar-controls-foreground-hover: #d33682\nsidebar-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #657b83\nsidebar-muted-foreground-hover: #586e75\nsidebar-tab-background: #fdf6e3\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-border: #eee8d5\nsidebar-tab-border-selected: #657b83\nsidebar-tab-divider: #fdf6e3\nsidebar-tab-foreground: #839496\nsidebar-tab-foreground-selected: #586e75\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #002b36\nsite-title-foreground: #d33682\nstatic-alert-foreground: #586e75\ntab-background: #eee8d5\ntab-background-selected: #fdf6e3\ntab-border: #93a1a1\ntab-border-selected: #586e75\ntab-divider: #586e75\ntab-foreground: #657b83\ntab-foreground-selected: #586e75\ntable-border: #93a1a1\ntable-footer-background: #eee8d5\ntable-header-background: #eee8d5\ntag-background: #b58900\ntag-foreground: #fdf6e3\ntiddler-background: #fdf6e3\ntiddler-border: #93a1a1\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #fdf6e3\ntiddler-editor-border: #eee8d5\ntiddler-editor-border-image: #fdf6e3\ntiddler-editor-fields-even: #fdf6e3\ntiddler-editor-fields-odd: #eee8d5\ntiddler-info-background: #eee8d5\ntiddler-info-border: #839496\ntiddler-info-tab-background: #fdf6e3\ntiddler-link-background: #fdf6e3\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #657b83\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #657b83\ntoolbar-close-button: #657b83\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #657b83\ntoolbar-edit-button: #657b83\ntoolbar-info-button: #657b83\ntoolbar-new-button: #657b83\ntoolbar-options-button: #657b83\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselection-background:\nselection-foreground:\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "<$macrocall $name=\"csvtiddlers\" filter=<<exportFilter>> format=\"quoted-comma-sep\" $output=\"text/raw\"/>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "<$macrocall $name=\"jsontiddlers\" filter=<<exportFilter>> $output=\"text/raw\"/>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river tc-static-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"condition": "[<count>compare:lte[1]]",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis 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\n\n-->`<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\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river tc-static-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`\n"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars imageType={{$:/config/NewImageType}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags=<<get-tags>>/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<get-tags>>/>\n</$vars>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\" \n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/temp/advancedsearch]]\" firstSearchFilterField=\"text\" \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tinputCancelActions=<<cancel-search-actions>>/>\n</$keyboard>\n</$keyboard>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param='.tc-advanced-search input' />\"\"\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"first-search-filter": "[all[shadows]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]",
"text": "\\define lingo-base() $:/language/Search/\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/Shadows]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define next-search-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/advancedsearch\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"shift-alt-Right\" actions=<<next-search-tab>>>\n<$keyboard key=\"shift-alt-Left\" actions=<<next-search-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"\n\t\tfilterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$vars userInput={{{ [[$:/temp/advancedsearch]get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} searchListState=\"$:/temp/advancedsearch/selected-item\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/advancedsearch\" />\n</$list>\n</$vars>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"first-search-filter": "[is[system]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]",
"text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\",stateTitle,tag,defaultState,currentTabTiddler) <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\"\n\t\ttype=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/System]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" default=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab--1498284803\"/>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/TiddlerFields\" explicitState=\"$:/state/tab--959111941\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Theme\" explicitState=\"$:/state/tab--1963855381\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-advanced-search input\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewTiddler/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewJournal/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Basics\" explicitState=\"$:/state/tab--2112689675\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[name]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$list filter=\"[<currentTiddler>get[enabled]else[yes]match[yes]]\" variable=\"ignore\">\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n</$list>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[name]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[name]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<$macrocall $name=\"tabs\" tabsList=\"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" default=\"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\" explicitState=\"$:/state/tab--86143343\"/>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"main\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define siteURL(path)\nhttp://$(userName)$.tiddlyspot.com/$path$/\n\\end\n\\define siteLink(path)\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<siteURL $path$>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<div class=\"tc-message-box\">\n\n<<lingo ReadOnly>>\n\n</div>\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<siteLink backup>> |\n|<<lingo ControlPanel>> |<<siteLink controlpanel>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>\n"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Saving/General\" explicitState=\"$:/state/tab-2065006209\"/>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" class=\"tc-vertical\" explicitState=\"$:/state/tabs/controlpanel/toolbars-1345989671\"/>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Info\" explicitState=\"$:/state/tab-1749438307\"/>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"first-search-filter": "[!is[system]search:title<userInput>sort[title]limit[250]]",
"second-search-filter": "[!is[system]search<userInput>sort[title]limit[250]]",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[second-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n cancelPopups=\"yes\"\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name-wrapper input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define delete-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\n\\define cancel-search-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newFieldNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-state-tiddlers>>\n</$list>\n\\end\n\n\\define cancel-search-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newFieldNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newFieldNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}>\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$keyboard key=\"((delete-field))\" actions=\"\"\"<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\"\"\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit tc-big-gap-right\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<$vars refreshTitle=<<qualify \"$:/temp/fieldname/refresh\">> storeTitle=<<newFieldNameInputTiddler>> searchListState=<<newFieldNameSelectionTiddler>>>\n<div class=\"tc-edit-field-add-name-wrapper\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<searchListState>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}}\n\t\tfocus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups=\"yes\"\n\t\tconfigTiddlerFilter=\"[[$:/config/EditMode/fieldname-filter]]\" inputCancelActions=<<cancel-search-actions>> />\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-primaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-secondaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n</div>\n<span class=\"tc-edit-field-add-value tc-small-gap-right\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</$set>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</$vars>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:\"tags\")\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button class=\"tc-btn-invisible tc-remove-tag-button\" style=<<tag-styles>>><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[{!!title}]\"/>{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon,tagField:\"tags\")\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\" tagField=<<__tagField__>>/>\n\\end\n\n\\define edit-tags-template(tagField:\"tags\")\n\\whitespace trim\n<div class=\"tc-edit-tags\">\n<$list filter=\"[list[!!$tagField$]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}} tagField=<<__tagField__>>/>\n</$list>\n<$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups=\"yes\">\n<$macrocall $name=\"tag-picker\" tagField=<<__tagField__>>/>\n</$vars>\n</div>\n\\end\n<$set name=\"saveTiddler\" value=<<currentTiddler>>>\n<$macrocall $name=\"edit-tags-template\" tagField=<<tagField>>/>\n</$set>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"first-search-filter": "[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[description]sort[group-sort]removeprefix[$:/language/Docs/Types/]search<userInput>]",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define input-cancel-actions() <$list filter=\"[<storeTitle>get[text]] [<currentTiddler>get[type]] +[limit[1]]\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\"><$action-sendmessage $message=\"tm-remove-field\" $param=\"type\"/><$action-deletetiddler $filter=\"[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]\"/></$list>\n\\whitespace trim\n<$set name=\"refreshTitle\" value=<<qualify \"$:/temp/type-search/refresh\">>>\n<div class=\"tc-edit-type-selector-wrapper\">\n<em class=\"tc-edit tc-big-gap-right\"><<lingo Type/Prompt>></em>\n<div class=\"tc-type-selector-dropdown-wrapper\">\n<div class=\"tc-type-selector\"><$fieldmangler>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups=\"yes\" configTiddlerFilter=\"[[$:/core/ui/EditTemplate/type]]\" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter=\"[<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]\"/></$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$set name=\"userInput\" value={{{ [<typeInputTiddler>get[text]] }}}>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]] +[removeprefix[$:/language/Docs/Types/]] +[search<userInput>]\"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] -[<typeSelectionTiddler>get[text]] +[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"description\"/> (<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"name\"/>)</$link></span>\n</$list>\n</$set>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n</div>\n</div>\n</$set>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]\"/>\n\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define cancel-delete-tiddler-actions(message)\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">> newFieldNameInputTiddler=<<qualify \"$:/temp/NewFieldName/input\">> newFieldNameSelectionTiddler=<<qualify \"$:/temp/NewFieldName/selected-item\">> newTagNameInputTiddler=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddler=<<qualify \"$:/temp/NewTagName/selected-item\">> typeInputTiddler=<<qualify \"$:/temp/Type/input\">> typeSelectionTiddler=<<qualify \"$:/temp/Type/selected-item\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" actions=<<cancel-delete-tiddler-actions \"cancel\">>>\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"cancel\">> tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"delete\">> tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n\\whitespace trim\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>\n"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $filter=\"[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\\end\n\n\\define get-focus-selector() [data-tiddler-title=\"$(cssEscapedTitle)$\"] .tc-create-wikitext-link input\n\n\\define cancel-search-actions-inner()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}><$list filter=\"[<searchTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/></$list></$set>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"wrap-selection\" prefix=\"\" suffix=\"\"/></$list>\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" searchListState=<<qualify \"$:/temp/link-search/selected-item\">> refreshTitle=<<qualify \"$:/temp/link-search/refresh\">> storeTitle=<<qualify \"$:/temp/link-search/input\">>>\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">> class=\"tc-create-wikitext-link\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>\n\t\tselectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type=\"search\" filterMinLength=\"1\"\n\t\ttag=\"input\" focus=\"true\" class=\"tc-popup-handle\" inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=\"\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\" />\n</$keyboard>\n</$keyboard>\n<$reveal tag=\"span\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<<cancel-search-actions>><$set name=\"cssEscapedTitle\" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-focus-selector>>/></$set>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$vars>\n\n<$reveal tag=\"div\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n\n{{$:/core/ui/SearchResults}}\n\n</$vars>\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField() message-$(payloadTiddler)$\n\n\\define payloadTitleFilter() [<currentTiddler>get<renameField>minlength[1]else<payloadTiddler>]\n\n\\define overWriteWarning()\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\">\n<$text text={{{[subfilter<payloadTitleFilter>!is[tiddler]then[]] ~[<lingo-base>addsuffix[Listing/Rename/OverwriteWarning]get[text]]}}}/>\n</$list>\n\\end\n\n\\define selectionField() selection-$(payloadTiddler)$\n\n\\define renameField() rename-$(payloadTiddler)$\n\n\\define suppressedField() suppressed-$(payloadTiddler)$\n\n\\define newImportTitleTiddler() $:/temp/NewImportTitle-$(payloadTiddler)$\n\n\\define previewPopupState() $(currentTiddler)$!!popup-$(payloadTiddler)$\n\n\\define renameFieldState() $(currentTiddler)$!!state-rename-$(payloadTiddler)$\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table class=\"tc-import-table\">\n<tbody>\n<tr>\n<th align=\"left\">\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr class={{{[<currentTiddler>has<suppressedField>then[tc-row-disabled]] ~[subfilter<payloadTitleFilter>is[tiddler]then[tc-row-warning]] }}}>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\" tag=\"div\" class=\"tc-flex\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown tc-flex-grow-1 tc-word-break\" set=<<previewPopupState>> setTo=\"yes\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}>\n<span class=\"tc-small-gap-right\">{{$:/core/images/right-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"yes\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/Tooltip]get[text]]}}}>{{$:/core/images/edit-button}}</$button></$list>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n<span class=\"tc-small-gap-right\">{{$:/core/images/down-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$text text={{{[<lingo-base>addsuffix[Listing/Rename/Prompt]get[text]]}}}/>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n<<overWriteWarning>>\n</td>\n</tr>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"tr\">\n<td colspan=\"3\">\n<div class=\"tc-flex\">\n<$edit-text tiddler=<<newImportTitleTiddler>> default={{{[subfilter<payloadTitleFilter>]}}} tag=\"input\" class=\"tc-import-rename tc-flex-grow-1\"/><span class=\"tc-small-gap-left\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/CancelRename]get[text]]}}}>{{$:/core/images/close-button}}<$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button><span class=\"tc-small-gap-right\"/></span><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/ConfirmRename]get[text]]}}}>{{$:/core/images/done-button}}<$action-setfield $field=<<renameField>> $value={{{[<newImportTitleTiddler>get[text]minlength[1]else<payloadTiddler>]}}} /><$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button>\n</div>\n</td>\n</$reveal>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/change-sidebar-layout": {
"title": "$:/core/ui/KeyboardShortcuts/change-sidebar-layout",
"tags": "$:/tags/KeyboardShortcut",
"key": "((change-sidebar-layout))",
"text": "<$list filter=\"[{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}match[fixed-fluid]]\" \nemptyMessage=\"\"\"<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fixed-fluid\"/>\"\"\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fluid-fixed\"/>\n</$list>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/save-wiki": {
"title": "$:/core/ui/KeyboardShortcuts/save-wiki",
"tags": "$:/tags/KeyboardShortcut",
"key": "((save-wiki))",
"text": "<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcuts/switcher": {
"title": "$:/core/ui/KeyboardShortcuts/switcher",
"tags": "$:/tags/KeyboardShortcut",
"key": "((layout-switcher))",
"text": "<$action-sendmessage $message=\"tm-show-switcher\" switch=\"layout\"/>"
},
"$:/core/ui/KeyboardShortcuts/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcuts/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/snippets/LayoutSwitcher": {
"title": "$:/snippets/LayoutSwitcher",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/LayoutSwitcher/Caption}}",
"text": "<$linkcatcher to=\"$:/layout\">\n<div class=\"tc-chooser\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Layout]] [[$:/core/ui/PageTemplate]] +[!is[draft]sort[name]]\">\n<$list filter=\"[{$:/layout}!has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/layout}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n\"\"\">\n<$set name=\"cls\" filter=\"[all[current]field:title[$:/core/ui/PageTemplate]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n</$list>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\whitespace trim\n\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\" storyview=\"pop\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</$fieldmangler>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" default=\"$:/core/ui/MoreSideBar/Plugins/Plugins\" explicitState=\"$:/state/tab-1163638994\"/>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define advanced-search-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<advanced-search-button>>>\n<<advanced-search-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"name": "{{$:/language/PageTemplate/Name}}",
"description": "{{$:/language/PageTemplate/Description}}",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} aria-label={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"><span class=\"tc-small-gap-left\"><<lingo Names/External/Show>></span></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/RootTemplate": {
"title": "$:/core/ui/RootTemplate",
"text": "<$transclude tiddler={{{ [{$:/layout}has[text]] ~[[$:/core/ui/PageTemplate]] }}} mode=\"inline\"/>\n\n"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/sidebar\"/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" explicitState=\"$:/state/tab/moresidebar-1850697562\"/>\n</div>\n"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini tc-small-gap-right\">{{$:/core/images/close-button}}</$button><$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n\n\\define count-popup-button()\n\\whitespace trim\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$(searchTiddler)$}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} replaceRegexp=\"limit\\[\\d+\\]\">\n<$vars primaryListFilter={{{ [<configTiddler>get[first-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}} secondaryListFilter={{{ [<configTiddler>get[second-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[subfilter<primaryListFilter>] [subfilter<secondaryListFilter>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$vars>\n</$vars>\n</$list>\n</$button>\n\\end\n\n\\define search-results-list()\n\\whitespace trim\n<$vars userInput={{$(searchTiddler)$}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$tiddler tiddler=<<configTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$tiddler>\n\n</$list>\n</$vars>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<searchTiddler>get[text]!match{$:/temp/search}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/search]] [<searchTiddler>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=\"$:/temp/search\" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler=\"$:/temp/search/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define advanced-search-actions() <$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search/input}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to=\"$:/AdvancedSearch\"/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/><$action-deletetiddler $filter=\"$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]\"/>\n\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$vars editTiddler=\"$:/temp/search\" searchTiddler=\"$:/temp/search/input\" searchListState=<<qualify \"$:/state/search-list/selected-item\">>>\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"((advanced-search-sidebar))\" actions=<<advanced-search-actions>>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>> \n\t\tselectionStateTitle=<<searchListState>> refreshTitle=\"$:/temp/search/refresh\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> \n\t\tclass=\"tc-popup-handle\" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups=\"yes\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<<advanced-search-actions>>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>><$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n{{$:/core/images/close-button}}\n</$button>\n<<count-popup-button>>\n</$reveal>\n<$reveal state=<<searchTiddler>> type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<<search-results-list>>\n\n</$reveal>\n\n</$reveal>\n\n</$vars>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\" explicitState=\"$:/state/tab/sidebar--595412856\"/>\n\n</div>\n"
},
"$:/core/ui/SwitcherModal": {
"title": "$:/core/ui/SwitcherModal",
"subtitle": "<$text text={{{[<switch>lookup[$:/language/Switcher/Subtitle/]]}}}/>",
"class": "tc-modal-centered",
"text": "<$tiddler tiddler={{{[<switch>lookup[$:/config/SwitcherTargets/]]}}}>\n\n\n<$transclude/>\n\n\n</$tiddler>"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagPickerTagTemplate": {
"title": "$:/core/ui/TagPickerTagTemplate",
"text": "\\whitespace trim\n<$button class=<<button-classes>> tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$list filter=\"[<saveTiddler>minlength[1]]\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter=\"[<tag>]\"/>\n</$list>\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>> preventScroll=\"true\"/>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$list filter=\"[<refreshTitle>minlength[1]]\">\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n<<actions>>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<$wikify name=\"foregroundColor\" text=\"\"\"<$macrocall $name=\"contrastcolour\" target={{!!color}} fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>\"\"\">\n<span class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n<$transclude tiddler={{!!icon}}/><$view field=\"title\" format=\"text\"/>\n</span>\n</$wikify>\n</$set>\n</$button>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\" data-tag-title=<<currentTiddler>>>\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>\n"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible tc-hide-sidebar-btn\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible tc-show-sidebar-btn\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-plugin-info\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n</$reveal>"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<$list filter=\"[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]\">\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$list>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\define cancel-delete-tiddler-actions(message) <$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditMode/fieldname-filter": {
"title": "$:/config/EditMode/fieldname-filter",
"first-search-filter": "[!is[shadow]!is[system]fields[]search:title<userInput>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type",
"second-search-filter": "[fields[]search:title<userInput>sort[]] -[!is[shadow]!is[system]fields[]]"
},
"$:/config/EditTabIndex": {
"title": "$:/config/EditTabIndex",
"text": "1\n"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.24/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "yes"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search-sidebar": {
"title": "$:/config/ShortcutInfo/advanced-search-sidebar",
"text": "{{$:/language/Shortcuts/Input/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/change-sidebar-layout": {
"title": "$:/config/ShortcutInfo/change-sidebar-layout",
"text": "{{$:/language/Shortcuts/SidebarLayout/Hint}}"
},
"$:/config/ShortcutInfo/delete-field": {
"title": "$:/config/ShortcutInfo/delete-field",
"text": "{{$:/language/EditTemplate/Field/Remove/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/input-accept": {
"title": "$:/config/ShortcutInfo/input-accept",
"text": "{{$:/language/Shortcuts/Input/Accept/Hint}}"
},
"$:/config/ShortcutInfo/input-accept-variant": {
"title": "$:/config/ShortcutInfo/input-accept-variant",
"text": "{{$:/language/Shortcuts/Input/AcceptVariant/Hint}}"
},
"$:/config/ShortcutInfo/input-cancel": {
"title": "$:/config/ShortcutInfo/input-cancel",
"text": "{{$:/language/Shortcuts/Input/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/input-down": {
"title": "$:/config/ShortcutInfo/input-down",
"text": "{{$:/language/Shortcuts/Input/Down/Hint}}"
},
"$:/config/ShortcutInfo/input-tab-left": {
"title": "$:/config/ShortcutInfo/input-tab-left",
"text": "{{$:/language/Shortcuts/Input/Tab-Left/Hint}}"
},
"$:/config/ShortcutInfo/input-tab-right": {
"title": "$:/config/ShortcutInfo/input-tab-right",
"text": "{{$:/language/Shortcuts/Input/Tab-Right/Hint}}"
},
"$:/config/ShortcutInfo/input-up": {
"title": "$:/config/ShortcutInfo/input-up",
"text": "{{$:/language/Shortcuts/Input/Up/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/layout-switcher": {
"title": "$:/config/ShortcutInfo/layout-switcher",
"text": "{{$:/language/LayoutSwitcher/Description}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/linkify": {
"title": "$:/config/ShortcutInfo/linkify",
"text": "{{$:/language/Buttons/Linkify/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/save-wiki": {
"title": "$:/config/ShortcutInfo/save-wiki",
"text": "{{$:/language/Buttons/SaveWiki/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/transcludify": {
"title": "$:/config/ShortcutInfo/transcludify",
"text": "{{$:/language/Buttons/Transcludify/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SwitcherTargets/layout": {
"title": "$:/config/SwitcherTargets/layout",
"text": "$:/snippets/LayoutSwitcher"
},
"$:/config/SwitcherTargets/language": {
"title": "$:/config/SwitcherTargets/language",
"text": "$:/snippets/languageswitcher"
},
"$:/config/SwitcherTargets/palette": {
"title": "$:/config/SwitcherTargets/palette",
"text": "$:/core/ui/ControlPanel/Palette"
},
"$:/config/SwitcherTargets/theme": {
"title": "$:/config/SwitcherTargets/theme",
"text": "$:/core/ui/ControlPanel/Theme"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/core]] -[[$:/library/sjcl.js]] -[prefix[$:/boot/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
},
"$:/config/SyncSystemTiddlersFromServer": {
"title": "$:/config/SyncSystemTiddlersFromServer",
"text": "no"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/input-tab-left": {
"title": "$:/config/shortcuts-mac/input-tab-left",
"text": "ctrl-Left"
},
"$:/config/shortcuts-mac/input-tab-right": {
"title": "$:/config/shortcuts-mac/input-tab-right",
"text": "ctrl-Right"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-mac/save-wiki": {
"title": "$:/config/shortcuts-mac/save-wiki",
"text": "meta-S"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/advanced-search-sidebar": {
"title": "$:/config/shortcuts/advanced-search-sidebar",
"text": "alt-Enter"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/change-sidebar-layout": {
"title": "$:/config/shortcuts/change-sidebar-layout",
"text": "shift-alt-Down"
},
"$:/config/shortcuts/delete-field": {
"title": "$:/config/shortcuts/delete-field",
"text": "shift-alt-D"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/input-accept": {
"title": "$:/config/shortcuts/input-accept",
"text": "Enter"
},
"$:/config/shortcuts/input-accept-variant": {
"title": "$:/config/shortcuts/input-accept-variant",
"text": "ctrl-Enter"
},
"$:/config/shortcuts/input-cancel": {
"title": "$:/config/shortcuts/input-cancel",
"text": "Escape"
},
"$:/config/shortcuts/input-down": {
"title": "$:/config/shortcuts/input-down",
"text": "Down"
},
"$:/config/shortcuts/input-tab-left": {
"title": "$:/config/shortcuts/input-tab-left",
"text": "alt-Left"
},
"$:/config/shortcuts/input-tab-right": {
"title": "$:/config/shortcuts/input-tab-right",
"text": "alt-Right"
},
"$:/config/shortcuts/input-up": {
"title": "$:/config/shortcuts/input-up",
"text": "Up"
},
"$:/config/shortcuts/layout-switcher": {
"title": "$:/config/shortcuts/layout-switcher",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/save-wiki": {
"title": "$:/config/shortcuts/save-wiki",
"text": "ctrl-S"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch-inner()\n<$set name=\"swatchColour\" value={{##$(colourResolved)$}}>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}>\n<$set name=\"swatchTitle\" value=<<colour>>>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>\n"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<$vars hint={{{ [<__lingoBase__>addsuffix[Hint]get[text]] }}} caption={{{ [<__lingoBase__>addsuffix[Caption]get[text]] }}}>\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip=<<hint>> aria-label=<<caption>> class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=<<caption>>/></span>\n</$list>\n</$button></span></$vars><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$set name=\"count\" value={{{ [subfilter<__exportFilter__>count[]] }}}>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$list filter=\"[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]\" variable=\"ignore\">\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=<<__exportFilter__>> filename={{{ [<__baseFilename__>addsuffix{!!extension}] }}}/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$list>\n</$list>\n</$set>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/keyboard-driven-input": {
"title": "$:/core/macros/keyboard-driven-input",
"tags": "$:/tags/Macro",
"text": "\\define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)\n<$set name=\"tabsList\" filter=\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]\">\n<$vars currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} firstTab={{{ [enlist<tabsList>nth[1]] }}} lastTab={{{ [enlist<tabsList>last[]] }}}>\n<$set name=\"nextTab\" value={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$<currentState>] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix<firstTab>] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix<lastTab>] }}}>\n<$action-setfield $tiddler=<<__stateTitle__>> text=<<nextTab>>/>\n$actions$\n</$set>\n</$vars>\n</$set>\n\\end\n\n\\define keyboard-input-actions()\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/>\n</$list>\n\\end\n\n\\define input-next-actions-inner()\n<$list filter=\"[<nextItem>minlength[1]]\" variable=\"ignore\">\n<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<<nextItem>>/>\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$action-setfield $tiddler=<<__refreshTitle__>> text=\"yes\"/>\n</$list>\n\\end\n\n\\define input-next-actions(afterOrBefore:\"after\",reverse:\"\")\n<$list filter=\"[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]\" variable=\"ignore\">\n<$vars userInput={{{ [<__storeTitle__>get[text]] }}} selectedItem={{{ [<__selectionStateTitle__>get[text]] }}}>\n<$set name=\"configTiddler\" value={{{ [subfilter<__configTiddlerFilter__>] }}}>\n<$vars primaryListFilter={{{ [<configTiddler>get<__firstSearchFilterField__>] }}} secondaryListFilter={{{ [<configTiddler>get<__secondSearchFilterField__>] }}}>\n<$set name=\"filteredList\" filter=\"[subfilter<primaryListFilter>addsuffix[-primaryList]] =[subfilter<secondaryListFilter>addsuffix[-secondaryList]]\">\n<$vars nextItem={{{ [enlist<filteredList>$afterOrBefore$<selectedItem>] ~[enlist<filteredList>$reverse$nth[1]] }}} firstItem={{{ [enlist<filteredList>nth[1]] }}} lastItem={{{ [enlist<filteredList>last[]] }}}>\n<$list filter=\"[<selectedItem>match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[before]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<lastItem>!match<firstItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[after]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<firstItem>match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [<userInput>addsuffix[-userInput]] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>!match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<<input-next-actions-inner>>\n</$list>\n</$vars>\n</$set>\n</$vars>\n</$set>\n</$vars>\n</$list>\n\\end\n\n\\define keyboard-driven-input(tiddler,storeTitle,field:\"text\",index:\"\",tag:\"input\",type,focus:\"\",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:\"\",default:\"\",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:\"0\",refreshTitle,selectionStateTitle,cancelPopups:\"\",configTiddlerFilter,firstSearchFilterField:\"first-search-filter\",secondSearchFilterField:\"second-search-filter\")\n\\whitespace trim\n<$keyboard key=\"((input-accept))\" actions=<<__inputAcceptActions__>>>\n<$keyboard key=\"((input-accept-variant))\" actions=<<__inputAcceptVariantActions__>>>\n<$keyboard key=\"((input-up))\" actions=<<input-next-actions \"before\" \"reverse[]\">>>\n<$keyboard key=\"((input-down))\" actions=<<input-next-actions>>>\n<$keyboard key=\"((input-cancel))\" actions=<<__inputCancelActions__>>>\n<$edit-text tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> \n\t\tinputActions=<<keyboard-input-actions>> tag=<<__tag__>> class=<<__class__>> \n\t\tplaceholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> \n\t\tfocus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> \n\t\ttabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> \n\t\trefreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n{{$:/core/images/blank}}\n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$vars tabsState={{{ [<__explicitState__>minlength[1]] ~[<qualifiedState>] }}}>\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$vars>\n</$set>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"first-search-filter": "[tags[]!is[system]search:title<userInput>sort[]]",
"second-search-filter": "[tags[]is[system]search:title<userInput>sort[]]",
"text": "\\define get-tagpicker-focus-selector() [data-tiddler-title=\"$(currentTiddlerCSSEscaped)$\"] .tc-add-tag-name input\n\n\\define delete-tag-state-tiddlers() <$action-deletetiddler $filter=\"[<newTagNameTiddler>] [<storeTitle>] [<tagSelectionState>]\"/>\n\n\\define add-tag-actions(actions,tagField:\"tags\")\n<$set name=\"tag\" value={{{ [<__tiddler__>get[text]] }}}>\n<$list filter=\"[<saveTiddler>!contains:$tagField$<tag>!match[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[<tag>]\"/>\n\"\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n</$list>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n\\end\n\n\\define clear-tags-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newTagNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-tag-state-tiddlers>>\n</$list>\n\\end\n\n\\define clear-tags-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newTagNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<clear-tags-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newTagNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define tag-picker-inner(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars newTagNameInputTiddlerQualified=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddlerQualified=<<qualify \"$:/temp/NewTagName/selected-item\">> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}>\n<$vars storeTitle={{{ [<newTagNameInputTiddler>!match[]] ~[<newTagNameInputTiddlerQualified>] }}} tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] ~[<newTagNameSelectionTiddlerQualified>] }}}>\n<$vars refreshTitle=<<qualify \"$:/temp/NewTagName/refresh\">> nonSystemTagsFilter=\"[tags[]!is[system]search:title<userInput>sort[]]\" systemTagsFilter=\"[tags[]is[system]search:title<userInput>sort[]]\">\n<div class=\"tc-edit-add-tag\">\n<div>\n<span class=\"tc-add-tag-name tc-small-gap-right\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newTagNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<tagSelectionState>> inputAcceptActions=\"\"\"<$macrocall $name=\"add-tag-actions\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\"\n\t\tinputCancelActions=<<clear-tags-actions>> tag=\"input\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> \n\t\tfocus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} \n\t\tcancelPopups=<<cancelPopups>> configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"/>\n</span><$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$reveal state=<<storeTitle>> type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible tc-small-gap tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}<<delete-tag-state-tiddlers>></$button></$reveal><span class=\"tc-add-tag-button tc-small-gap-left\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=<<newTagNameTiddler>> setTo=\"\" class=\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<<delete-tag-state-tiddlers>><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>>/>\n</$set>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<nonSystemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-primaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n<hr>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<systemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-secondaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n</div>\n</$vars>\n</$vars>\n</$vars>\n\\end\n\\define tag-picker(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars saveTiddler=<<currentTiddler>> palette={{$:/palette}}>\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=\"\"\"<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\">\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\n</$set>\n</$list>\n</$vars>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\" data-tag-title=<<__tag__>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}}\n<$list filter=\"[{$:/SiteSubtitle}trim[]minlength[1]]\" variable=\"ignore\">\n--- {{$:/SiteSubtitle}}\n</$list>"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" default="show">
<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/>
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
{{$:/core/images/fold-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text={{$:/language/Buttons/Fold/Caption}}/>
</span>
</$list>
</$button>
</$reveal>
<$reveal type="match" stateTitle=<<folded-state>> text="hide" default="show">
<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/>
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
{{$:/core/images/unfold-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text={{$:/language/Buttons/Unfold/Caption}}/>
</span>
</$list>
</$button>
</$reveal>
{{$:/snippets/viewswitcher}}
\define title-styles()
fill:$(foregroundColor)$;
\end
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<div class="tc-tiddler-title">
<div class="tc-titlebar">
<span class="tc-tiddler-controls">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>
</span>
<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
<$link>
<$set name="foregroundColor" value={{!!color}}>
<span class="tc-tiddler-title-icon" style=<<title-styles>>>
<$transclude tiddler={{!!icon}}/>
</span>
</$set>
<$list filter="[all[current]removeprefix[$:/]]">
<h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
<span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/>
</h2>
</$list>
<$list filter="[all[current]!prefix[$:/]]">
<h2 class="tc-title">
<$view field="title"/>
</h2>
</$list>
</$link>
</$set>
</div>
<$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<<listItem>> mode="block"/></$list>
</$reveal>
</div>
\whitespace trim
<$navigator story="$:/fullscreen-editor">
<$button message="tm-edit-tiddler" tooltip="Edit in full screen mode" class=<<tv-config-toolbar-class>>>
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/core/images/full-screen-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text">
<$text text=" "/>
<$text text="edit in full screen"/>
</span>
</$list>
</$button>
</$navigator>
Create a new tiddler that links to this one
Create a new journal tiddler that links to this one
alert-background: #ffe476
alert-border: #b99e2f
alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #ffffff
blockquote-bar: <<colour muted-foreground>>
button-background:
button-foreground:
button-border:
code-background: #f7f7f9
code-border: #e1e1e8
code-foreground: #dd1144
diff-delete-background: #ffc9c9
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #aaefad
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #ff0000
download-background: #34c734
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #ececec
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
foreground: #333333
message-background: #ecf2ff
message-border: #cfd6e6
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #999999
modal-footer-background: #f5f5f5
modal-footer-border: #dddddd
modal-header-border: #eeeeee
muted-foreground: #bbb
notification-background: #ffffdd
notification-border: #999999
page-background: #fff
pre-background: #f5f5f5
pre-border: #cccccc
primary: #5778d8
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #aaaaaa
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #f4f4f4
sidebar-tab-background: #e0e0e0
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: #e4e4e4
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #444444
sidebar-tiddler-link-foreground: #999999
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
tab-border-selected: #d8d8d8
tab-border: #cccccc
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ec6
tag-foreground: #ffffff
tiddler-background: #f1f1f1
tiddler-border: #b1b1b1
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #eee
tiddler-editor-border-image: #ffffff
tiddler-editor-border: #cccccc
tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: #f8f8f8
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #c0c0c0
tiddler-title-foreground: #00c
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
.matched {background-color:#ffc;}
.tw-context {
border:0px solid #eee;background-color:#eee;
word-break: break-all; word-wrap: break-word;}
{
"tiddlers": {
"$:/plugins/danielo515/ContextPlugin/widgets/context.js": {
"created": "20140418153435777",
"creator": "danielo",
"modified": "20140530231943517",
"modifier": "danielo",
"module-type": "widget",
"title": "$:/plugins/danielo515/ContextPlugin/widgets/context.js",
"type": "application/javascript",
"text": "/*\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar contextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\ncontextWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\ncontextWidget.prototype.render = function(parent,nextSibling) {\n // Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n \n if(this.term && this.term.length>3){\n \n this.createRegexp();\n var matches = this.executeRegexp();\n\t if(matches.length > 0){ \n this.domNode = this.document.createElement(this.element);\n this.domNode.className=\"tw-context\";\n this.composeResults( matches ); //this appends to domNode \n \t// Insert element\n \tparent.insertBefore(this.domNode,nextSibling);\n \tthis.renderChildren(this.domNode,null);\n\t \tthis.domNodes.push(this.domNode);\n }\n }\n\t\n};\n\n/*\nCompute the internal state of the widget\n*/\ncontextWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n this.matchedClass = this.getAttribute(\"matchClass\",\"matched\");\n\tthis.tiddler = this.getAttribute( \"tiddler\",this.getVariable(\"currentTiddler\") );\n this.term = this.getAttribute(\"term\",this.getAttribute(\"searchTerm\"));\n\tthis.contextLength = this.getAttribute(\"length\",50);\n this.before = this.getAttribute(\"before\",this.contextLength);\n this.after = this.getAttribute(\"after\",this.contextLength);\n this.maxMatches = this.getAttribute(\"maxMatches\",10);\n this.element = this.getAttribute(\"element\",\"pre\");\n\tthis.makeChildWidgets();\n};\n\n /*Create the regular expression*/\ncontextWidget.prototype.createRegexp = function()\n{\n var regString = \"(\\\\w+[\\\\s\\\\S]{0,#before#})?(#term#)([\\\\s\\\\S]{0,#after#}\\\\w+)?\";\n\n var regString = regString.replace(\"#before#\",this.before).replace(\"#term#\", $tw.utils.escapeRegExp(this.term) ) .replace(\"#after#\",this.after);\n this.regexp = new RegExp(regString,\"ig\");\n //console.log(regString);\n};\n/*\nexecute the regular expresion\n*/\ncontextWidget.prototype.executeRegexp = function()\n{\n var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();\n while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )\n { results.push(match) }\n //console.log(\"matches\",results);\n return results;\n};\n\n/*\ncompose the results\nmatches : array of match objects from regular expression execute\n*/\ncontextWidget.prototype.composeResults = function(matches){\n var result=[], self=this, node = this.domNode,\n dots = textNode(\"...\\n\"),\n span = matchedNode( this.term );\n\n for(var i=0; i < matches.length; i++){\n processMatch( matches[i] );\n }\n \n function processMatch(match){\n if( match.index !== 0) node.appendChild( dots.cloneNode(true) );\n for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)\n if( match[i] ) {\n if ( match[i].toLowerCase() == self.term.toLowerCase() ) \n node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )\n else\n node.appendChild( textNode( match[i]) )\n }\n }\n if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );\n }\n \n function textNode(text){ return self.document.createTextNode(text) }\n function matchedNode(text) { \n var node = self.document.createElement(\"span\"); node.appendChild( textNode(text) ); node.className = self.matchedClass;\n return node }\n \n};\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\ncontextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n return this.refreshChildren(changedTiddlers);\n};\n\nexports.context = contextWidget;\n\n})();"
},
"$:/plugins/danielo515/ContextPlugin/visualizer": {
"title": "$:/plugins/danielo515/ContextPlugin/visualizer",
"tags": "$:/tags/SearchResults",
"caption": "Context",
"text": "<$list filter=\"[!is[system]search{$:/temp/search}sort[title]limit[250]]\">\r\n {{!!title||$:/core/ui/ListItemTemplate}}\r\n <$context term={{$:/temp/search}} />\r\n</$list>\r\n"
},
"$:/plugins/danielo515/ContextPlugin/Stylesheet/results": {
"created": "20140529162823729",
"tags": "$:/tags/Stylesheet contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Stylesheet/results",
"type": "text/css",
"text": ".matched{background-color:yellow}\n.tw-context {/*border:1px solid;\n /*word-break: break-all; word-wrap: break-word*/}"
},
"$:/plugins/danielo515/ContextPlugin/Caption": {
"created": "20140530174219263",
"tags": "contextPlugin",
"title": "$:/plugins/danielo515/ContextPlugin/Caption",
"type": "text/vnd.tiddlywiki",
"text": "Context search"
},
"Context Search": {
"caption": "{{$:/plugins/danielo515/ContextPlugin/Caption}}",
"created": "20140530173407542",
"tags": "$:/tags/AdvancedSearch",
"title": "Context Search",
"type": "text/vnd.tiddlywiki",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tw-search\"><$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/><$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\"> <$link to=\"\" class=\"btn-invisible\">{{$:/core/images/close-button}}</$link></$reveal></div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<div class=\"tw-search-results\">\n\n<<lingo Standard/Matches>>\n\n<$list filter=\"[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]\">\n{{!!title||$:/core/ui/ListItemTemplate}}\n<$context term={{$:/temp/advancedsearch}}/>\n</$list>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/plugins/danielo515/ContextPlugin/readme": {
"title": "$:/plugins/danielo515/ContextPlugin/readme",
"text": "!Usage\n\nAfter installing the plugin you will have a new tab in [[$:/AdvancedSearch]] called [[Context Search]]. If you want this functionality in other places you will have to edit the desired tiddler yourself adding the ''context widget''. For more details about using the widget see the section below.\n\n!!Using the widget\n\nThe very basic usage of the widget is the following:\n\n```\r\n<$context term=\"lorem\"/>\r\n```\r\nWhich will render as:\r\n<$context term=\"lorem\"/>\n\nThe widgets will search inside the current tiddler by default. Because that you see the same content twice here. This example is not very useful. Other more meaningful would be:\n\n```\r\n<$list filter=\"[search{$:/temp/advancedsearch}sort[title]limit[250]]\">\r\n{{!!title||$:/core/ui/ListItemTemplate}}\r\n<$context term={{$:/temp/advancedsearch}}/>\r\n</$list>\r\n```\n\nThat will search for tiddlers containing the text specified in [[$:/temp/advancedsearch]] and will display a link to the matching tiddlers plus a preview of the matching content. Something very similar is used in [[Context Search]]. Below you can find a complete list of parameters and their default values.\n\n|! parameter |! description | !default |\r\n| term | The term you want to search ||\r\n| searchTerm | An alias for the previous one ||\r\n| tiddler | The tiddler's name to look into | current tiddler |\r\n| length | Number of context characters to show | 50 |\r\n| before | Number of characters before the matched term to show | the value of the length parameter |\r\n| after | Number of characters after the matched term to show | the value of the length parameter |\r\n| maxMatches | maximun number of matched elements to show. Incrementing this can cause several performance issues | 10 |\r\n| element | Node element to create. This element will contain the results of the search. If you want to style it its class is `tw-context` | `<pre>` |\r\n| matchClass | The css class to assign to the matched terms in the results. This is used to highlight the results | matched |\n\n!Customizing the output\r\nThere are not many ways to customize the output of this widget. You can specify ''what type of node you want to create'' to wrap the results (div,span...). The default is `<pre>`. This container is created with the class `tw-context` so you can easily apply styles to it. Something similar happens to the ''highlighted'' words. You can specify the name of the class to assign to it and also you can apply styles to that class.\n\nA very basic example of customization could be:\n\n# Create a tiddler, for example [[$/plugins/danielo515/context/css]]\r\n# Paste the following text or any css rule you want: \"\"\"\n\n<pre>\r\n.matched{background-color:yellow}\r\n.tw-context {\r\n border:1px solid blue;\r\n word-break: break-all; word-wrap: break-word;}\r\n</pre>\r\n\"\"\"\r\n# Tag it with `$:/tags/stylesheet`\r\n# Save the tiddler"
}
}
}
/*\\
title: $:/core/modules/widgets/danielo/context-widget.js
type: application/javascript
module-type: widget
Edit-text widget
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tc: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var contextWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
contextWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
contextWidget.prototype.render = function(parent,nextSibling) {
// Save the parent dom node
this.parentDomNode = parent;
// Compute our attributes
this.computeAttributes();
// Execute our logic
this.execute();
if(this.term && this.term.length>3){
this.createRegexp();
var matches = this.executeRegexp();
if(matches.length > 0){
this.domNode = this.document.createElement(this.element);
this.domNode.className="tw-context";
this.composeResults( matches ); //this appends to domNode
// Insert element
parent.insertBefore(this.domNode,nextSibling);
this.renderChildren(this.domNode,null);
this.domNodes.push(this.domNode);
}
}
};
/*
Compute the internal state of the widget
*/
contextWidget.prototype.execute = function() {
// Get the parameters from the attributes
this.matchedClass = this.getAttribute("matchClass","matched");
this.tiddler = this.getAttribute( "tiddler",this.getVariable("currentTiddler") );
this.term = this.getAttribute("term",this.getAttribute("searchTerm"));
this.contextLength = this.getAttribute("length",50);
this.before = this.getAttribute("before",this.contextLength);
this.after = this.getAttribute("after",this.contextLength);
this.maxMatches = this.getAttribute("maxMatches",10);
this.element = this.getAttribute("element","pre");
this.makeChildWidgets();
};
/*Create the regular expression*/
contextWidget.prototype.createRegexp = function()
{
var regString = "(\\w+[\\s\\S]{0,#before#})?(#term#)([\\s\\S]{0,#after#}\\w+)?";
var regString = regString.replace("#before#",this.before).replace("#term#", $tw.utils.escapeRegExp(this.term) ) .replace("#after#",this.after);
this.regexp = new RegExp(regString,"ig");
//console.log(regString);
};
/*
execute the regular expresion
*/
contextWidget.prototype.executeRegexp = function()
{
var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();
while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )
{ results.push(match) }
//console.log("matches",results);
return results;
};
/*
compose the results
matches : array of match objects from regular expression execute
*/
contextWidget.prototype.composeResults = function(matches){
var result=[], self=this, node = this.domNode,
dots = textNode("...\n"),
span = matchedNode( this.term );
for(var i=0; i < matches.length; i++){
processMatch( matches[i] );
}
function processMatch(match){
if( match.index !== 0) node.appendChild( dots.cloneNode(true) );
for( var i=1;i<match.length;i++ ) {//match[0] full matched text (all groups together)
if( match[i] ) {
if ( match[i].toLowerCase() == self.term.toLowerCase() )
node.appendChild( match[i] == self.term ? span.cloneNode(true) : matchedNode( match[i] ) )
else
node.appendChild( textNode( match[i]) )
}
}
if( match.index + match[0].length < match.input.length) node.appendChild( dots.cloneNode(true) );
}
function textNode(text){ return self.document.createTextNode(text) }
function matchedNode(text) {
var node = self.document.createElement("span"); node.appendChild( textNode(text) ); node.className = self.matchedClass;
return node }
};
/*
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
contextWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {
this.refreshSelf();
return true;
}
return this.refreshChildren(changedTiddlers);
};
exports.context = contextWidget;
})();
{
"tiddlers": {
"$:/plugins/felixhayashi/hotzone/config.js": {
"title": "$:/plugins/felixhayashi/hotzone/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/hotzone/focusOffset\",focussedTiddlerStore:\"$:/temp/focussedTiddler\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/hotzone/hotzone.js": {
"title": "$:/plugins/felixhayashi/hotzone/hotzone.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/hotzone.js\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.name=\"hotzone\";exports.platforms=[\"browser\"];exports.after=[\"story\"];exports.synchronous=true;exports.startup=function(){var t=require(\"$:/plugins/felixhayashi/hotzone/config.js\").config;var e=null;var i=document.getElementsByClassName(t.classNames.storyRiver)[0];var r=$tw.wiki.getTiddlerData(t.references.userConfig,{});var s=isNaN(parseInt(r.focusOffset))?150:parseInt(r.focusOffset);var a=function(e,i,r){if(!(e instanceof Element))return;if(!$tw.utils.hasClass(e,t.classNames.tiddlerFrame))return;var s=e.getElementsByClassName(t.classNames.tiddlerTitle)[0];if(s){var a=s.innerText||s.textContent;return a.trim()}};var n=function(e,i){$tw.wiki.addTiddler(new $tw.Tiddler({title:t.references.focussedTiddlerStore,text:e},$tw.wiki.getModificationFields()));if(i){var r=document.getElementsByClassName(\"hzone-focus\")[0];if(r){$tw.utils.removeClass(r,\"hzone-focus\")}$tw.utils.addClass(i,\"hzone-focus\")}};var l=function(){var r=$tw.wiki.getTiddler(\"$:/StoryList\");if(r&&r.fields.list.length){var l=null;var o=Number.MAX_VALUE;var f=i.children;var u=t.classNames.tiddlerFrame;for(var d=f.length;d--;){if($tw.utils.hasClass(f[d],u)){var c=f[d].getBoundingClientRect();var v=Math.min(Math.abs(s-c.top),Math.abs(s-c.bottom));if(v<o){l=f[d];o=v}}}var w=a(l);if(w!==e&&$tw.wiki.getTiddler(w)){e=w;n(e,l);return}}else if(e){e=\"\";n(e)}};var o=function(t){var e;var i=false;return function(r,s){var a=this;if(i&&!s){}else{i=s;if(e!=null){clearTimeout(e)}e=setTimeout((function(){e=null;i=false;t.apply(a)}),r)}}};var f=o(l);var u=function(t){if(t[\"$:/HistoryList\"]){if(!$tw.wiki.tiddlerExists(\"$:/HistoryList\"))return;var e=$tw.wiki.getTiddler(\"$:/HistoryList\").fields[\"current-tiddler\"];var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");var r=i.indexOf(e)>=0;if(!r)return;f($tw.utils.getAnimationDuration()+10,true)}else if(t[\"$:/StoryList\"]){f($tw.utils.getAnimationDuration()+10,true)}};var d=function(t){f(300,false)};$tw.wiki.addEventListener(\"change\",u);window.addEventListener(\"scroll\",d,false);d()}})();",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/hotzone/Configuration": {
"title": "$:/plugins/felixhayashi/hotzone/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Focus offset:</th>\n <td><$edit-text tiddler=\"$:/config/hotzone/focusOffset\" tag=\"input\" default=\"71px\" /></td>\n </tr>\n</table>"
},
"$:/temp/focussedTiddler": {
"title": "$:/temp/focussedTiddler"
},
"$:/plugins/felixhayashi/hotzone/License": {
"title": "$:/plugins/felixhayashi/hotzone/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-HotZone/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/hotzone/Readme": {
"title": "$:/plugins/felixhayashi/hotzone/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information."
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/tiddlymap/layout": {
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline \n\nbody .tc-page-container-wrapper.tc-modal-displayed{-webkit-filter:inherit;-moz-filter:inherit;filter:inherit}body .tc-modal-wrapper{z-index:1010}body .tc-modal-wrapper .tc-modal-header svg{vertical-align:sub}body .tc-modal-wrapper .tc-modal-header h3{line-height:10px}body .tc-modal-wrapper .tc-modal-body{min-height:250px;max-height:70vh;padding-top:0px;padding-bottom:0px;overflow:auto}body .tc-modal-wrapper .tc-modal-footer{padding:8px}body .tc-modal-wrapper .tc-modal-footer .tmap-dialog-button{font-weight:bold}body .tc-modal-wrapper .tc-modal-footer .tmap-hidden-close-button{display:none}table.tmap-table tr:nth-child(odd),.tc-modal-body table.tmap-config-table tr:nth-child(odd){background-color:#F0F0F0}table.tmap-table tr:nth-child(even),.tc-modal-body table.tmap-config-table tr:nth-child(even){background-color:#FFFFFF}.tmap-save-canvas-preview{text-align:center;background:lightgray}.tmap-save-canvas-preview img{background-color:white;max-width:100%;max-height:100px;border:1px solid red}.tmap-list-separator{display:block;background-color:#efefef;margin:10px 0 5px 0;cursor:default;border-bottom:1px dotted gray;font-weight:bold;font-size:0.8em}.tmap-unicode-icon{width:1em;display:inline-block;text-align:center;color:black}html .tmap-link{color:#5778D8}html .tmap-link:hover{color:white;background:#5778D8}html .tmap-small-list,html .tmap-smaller-list,html .tmap-very-small-list{overflow:auto;min-height:2em;max-height:9em;display:block}html .tmap-smaller-list{max-height:7em}html .tmap-very-small-list{max-height:5empx}html .tc-tiddler-controls button.tmap-active-button svg{fill:#888888}html #tmap-node-filter-dialog #tmap-filter-tips{font-size:0.8em}html #tmap-node-filter-dialog textarea{height:100px;max-height:300px;overflow:auto;width:100%;font-size:11px;font-family:\"Courier New\", Courier, monospace}@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-desktop-editor .tmap-widget:not(.tmap-fullscreen){display:none}}@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-mobile-editor{display:none}.tc-modal-wrapper{z-index:1010}.tc-modal-wrapper .tc-modal{boder:1px solid #999999;left:calc(50% - 400px);width:802px}.tc-modal-wrapper .tc-modal-body{left:calc(50% - 400px);width:800px}}@-o-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@keyframes flash fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@keyframes flash fadeout-keyframes{0%{opacity:1}100%{opacity:0}}.tmap-config-widget{background:#F0F0F0;padding:5px;margin:5px 0;box-sizing:border-box;display:block}.tmap-config-widget .vis-network{display:none}.tmap-config-widget .vis-configuration-wrapper{width:100%}.tmap-config-widget .vis-configuration-wrapper .vis-config-rangeinput{height:inherit;margin-left:4px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item{width:100%;height:inherit;background:none;padding-left:0px;left:0}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item.tmap-vis-config-item-active .vis-config-label::after{content:\"(inherited)\";position:absolute;display:inline-block;margin-left:10px;-o-animation:fadein-keyframes 1s;-moz-animation:fadein-keyframes 1s;-webkit-animation:fadein-keyframes 1s;animation:fadein-keyframes 1s;content:\"✔\";color:green;font-weight:bold;font-size:15px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item button.tmap-config-item-reset{vertical-align:top;margin-left:5px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range{width:150px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range::-moz-range-track{width:150px !important}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-label{width:150px}.tmap-config-widget::after{clear:both;content:\"\";display:block}.tmap-flash-message{border:1px solid lightgray;padding:5px;margin:6px 0;display:block;color:#333333}.tmap-flash-message.tmap-info,.tmap-flash-message.tmap-plain,.tmap-flash-message.tmap-neutral{background:#F0F0F0}.tmap-flash-message.tmap-info::before,.tmap-flash-message.tmap-plain::before,.tmap-flash-message.tmap-neutral::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-valid,.tmap-flash-message.tmap-success{background:#D1EED4}.tmap-flash-message.tmap-valid::before,.tmap-flash-message.tmap-success::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-warning{background:#FFF6D1}.tmap-flash-message.tmap-warning::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-malformed,.tmap-flash-message.tmap-invalid,.tmap-flash-message.tmap-danger{background:#EED5D1}.tmap-flash-message.tmap-malformed::before,.tmap-flash-message.tmap-invalid::before,.tmap-flash-message.tmap-danger::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-widget{background:#FFFFFF;width:auto;position:relative;border:1px dotted lightgray;padding:2px;color:#666;display:block}.tmap-widget .tmap-download-canvas{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active){cursor:pointer}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active) .vis-navigation{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active):hover:before{color:gray;background:white;content:\"Click to use\";font-size:14px;font-weight:bold;right:calc(50% - 65px - 5px);position:absolute;text-align:center;top:calc(50% - 14px - 5px);width:130px;z-index:2000;padding:5px;pointer-events:none;background-color:rgba(255,255,255,0.3)}.tmap-widget .tmap-loading-bar{display:none;position:absolute;text-align:center;font-size:2em;padding:10px;top:50%;background:rgba(245,245,245,0.5);z-index:1;width:250px;margin:auto;left:0px;right:0px}.tmap-widget .tmap-vis-graph{height:calc(100% - 35px)}.tmap-widget.tmap-no-buttons .vis-navigation{display:none}.tmap-widget.tmap-advanced-editor .tmap-topbar{background:#d6d9d8}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button{color:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button svg{fill:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button{font-size:1.5em;vertical-align:bottom;height:28px;fill:#555555}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button svg{vertical-align:baseline}.tmap-widget .tmap-menu-bar{width:100%}.tmap-widget .tmap-topbar{background:#F5F5F5;border-bottom:1px solid lightgray;padding:3px 5px;height:35px;position:relative}.tmap-widget .tmap-topbar .tmap-view-label{width:100%;text-align:center;font-weight:bold;padding-top:3px}.tmap-widget .tmap-topbar .tmap-focus-button{position:absolute;right:10px;top:6px}.tmap-widget .tmap-topbar .tmap-focus-button input{width:140px}.tmap-widget .tmap-topbar .tmap-search-dropdown{position:relative}.tmap-widget .tmap-topbar .tmap-search-dropdown .tc-drop-down{position:absolute;z-index:999;right:0px}.tmap-widget .tmap-topbar [hidden]{display:none}.tmap-widget .tmap-topbar select{width:30%;max-width:200px;word-wrap:initial;padding:0px;height:28px}.tmap-widget .tmap-topbar button{line-height:inherit;color:#666}.tmap-widget .tmap-topbar>*{display:inline-block}.tmap-widget .tmap-topbar .tmap-separator:after{color:#bdbdbd;margin:3px;content:\" | \"}.tmap-widget .tmap-topbar .tc-edit-add-tag .tc-add-tag-name input{width:70%}.tmap-widget .tmap-topbar .tc-sidebar-header{text-shadow:none}.tmap-widget .tmap-topbar .tc-edit-tags{border:none;padding:inherit;box-shadow:none}.tmap-widget.tmap-static-mode .tmap-topbar{height:initial}.tmap-widget.tmap-static-mode .tmap-vis-graph{text-align:center;cursor:not-allowed}.tmap-widget.tmap-static-mode .tmap-vis-graph:not(.tmap-graph-placeholder):hover::before{box-shadow:10px 10px 5px lightgray;color:gray;background:white;content:\"Static\";font-size:18px;font-weight:bold;left:50%;margin-left:-100px;position:absolute;text-align:center;top:50px;width:200px;z-index:2000;padding:5px;pointer-events:none}.tmap-widget.tmap-static-mode .tmap-vis-graph.tmap-graph-placeholder::before{content:\"No Preview\";display:block;text-align:center;padding:20px}.tmap-widget .tc-drop-down{min-width:170px;padding:5px;margin:5px 0}.tmap-widget .tc-drop-down button,.tmap-widget .tc-drop-down a{padding:0 2px;text-decoration:none}.tmap-widget .tc-drop-down button:hover,.tmap-widget .tc-drop-down a:hover{color:#ffffff}.tmap-widget .tc-drop-down button svg,.tmap-widget .tc-drop-down a svg{vertical-align:middle}.tmap-widget .tc-block-dropdown{width:370px;min-width:370px;padding:5px;margin:15px 0 0 -370px}.tmap-widget .tc-block-dropdown a{display:inline;padding:0px}.tmap-widget.tmap-plain-design{border:none;padding:0px}.tmap-widget.tmap-plain-design .tmap-topbar{display:none}.tc-sidebar-scrollable .tmap-widget{position:absolute;min-height:350px}.tmap-widget div.vis-network .vis-edit-mode{height:26px}.tmap-widget div.vis-network .vis-manipulation{height:34px;border-top:1px solid #d6d9d8;background:rgba(245,245,245,0.7)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled{right:15px}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-fullscreen-button{bottom:90px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-halfscreen-button{bottom:130px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover{box-shadow:0 0 3px 3px rgba(75,75,75,0.3)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover:before{background:beige;display:block;color:black;padding:3px;position:relative;border:1px solid lightgray;width:80px;left:-100px;top:-50px;z-index:1000;text-align:center}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-up:before{left:30px;content:\"Scroll up\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-down:before{left:30px;content:\"Scroll down\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-right:before{left:30px;content:\"Scroll right\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-left:before{left:30px;content:\"Scroll left\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomOut:before{content:\"Zoom out\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomIn:before{content:\"Zoom in\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomExtends:before{content:\"Fit whole graph\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-fullscreen-button:before{content:\"Toggle Fullscreen\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-halfscreen-button:before{content:\"Toggle Halfscreen\"}.tc-dropzone>.tc-story-river .tmap-widget .vis-navigation .tmap-halfscreen-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:not(.tmap-fullscreen) .vis-navigation .vis-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.tmap-fullscreen-button{display:block}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.vis-zoomExtends{display:block}body.tmap-has-fullscreen-widget{overflow:hidden}body.tmap-has-fullscreen-widget .tmap-widget.tmap-fullscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*.tmap-has-fullscreen-widget{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*:not(.tmap-has-fullscreen-widget){display:none}body.tmap-has-halfscreen-widget .tmap-widget.tmap-halfscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important;position:absolute !important;border-left:1px solid lightgray !important}.tc-modal-footer .tmap-hidden-close-button{display:none}.tmap-modal-content{position:relative;padding:1em 0;padding-top:0}.tmap-modal-content table tr td{vertical-align:top}.tmap-modal-content :not(pre)>code{padding:1px;font-size:0.9em;position:relative;top:-1px}.tmap-modal-content :not(pre)>code{color:#666}.tmap-modal-content .tc-tab-set .tc-tab-content{margin-top:0.5em}.tmap-modal-content .tc-image-button{font-size:14px}.tmap-modal-content fieldset{margin:0px}.tmap-modal-content fieldset legend{font-weight:bold}.tc-modal-body .tmap-modal-editor>p{margin:0px}.tc-modal-body .tmap-modal-editor .tmap-template-select select{width:50%}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame{margin:auto;width:auto}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-controls{display:none}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-title{display:none}.tc-modal-body table{margin:6px 0;border:none;width:100%}.tc-modal-body table td,.tc-modal-body table th{border:1px solid lightgray}.tc-modal-body table.tmap-key-value-table th{width:30%;background-color:#F0F0F0}.tc-modal-body table.tmap-config-table.tmap-large-input tr td:last-child{width:20%}.tc-modal-body table.tmap-config-table.tmap-small-input tr td:last-child{width:60%}.tc-modal-body table.tmap-config-table tr td{border:none;vertical-align:top;padding:5px}.tc-modal-body table.tmap-config-table tr td:first-child{width:15%}.tc-modal-body table.tmap-config-table tr td:last-child{width:40%}.tc-modal-body table.tmap-config-table tr td input:not([type=radio]),.tc-modal-body table.tmap-config-table tr td textarea,.tc-modal-body table.tmap-config-table tr td select{width:100%;word-wrap:normal}.tc-modal-body table.tmap-config-table tr td textarea{height:100%}.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch input,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch textarea,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch select{width:auto}.tc-modal-body table.tmap-config-table tr td div.tmap-button-wrapper{text-align:center}.tc-modal-body table.tmap-config-table tr td .tmap-note{margin-top:0.5em}.tc-modal-body table.tmap-config-table tr td .tmap-description{font-style:italic}#tmap-element-type-manager>div:first-child{height:50vh;float:left;width:21%;background:linear-gradient(90deg, #f5f5f5 0%, #fff 50%)}#tmap-element-type-manager>div:first-child .tmap-searchbar{padding:1em 0 0 0}#tmap-element-type-manager>div:first-child .tmap-searchbar input{width:calc(100% - 36px)}#tmap-element-type-manager>div:first-child .tmap-searchbar button{width:30px;float:right}#tmap-element-type-manager>div:first-child ul{height:calc(100% - 65px);overflow:auto;margin-top:1em;padding:0}#tmap-element-type-manager>div:first-child ul.no-bullets li{list-style:none}#tmap-element-type-manager>div:first-child ul li{white-space:nowrap}#tmap-element-type-manager>div:first-child ul li .tmap-ranking{width:30px;display:inline-block}#tmap-element-type-manager>div:last-child{height:100%;width:calc(79% - 15px);float:right}#tmap-element-type-manager>div:last-child .tc-tab-set .tc-tab-content{overflow:auto;height:50vh}.tmap-manage-node-types .tmap-edge-type-specific{display:none !important}.tmap-manage-edge-types .tmap-node-type-specific{display:none !important}.tmap-modal-fullscreen-editor .tc-tab-content p{margin:1em 0}.tmap-has-pending-template{background-color:#C1EDC4}#tmap-search-table td{border:none;padding-left:0px}#tmap-search-table td:first-child{width:30px}#tmap-search-table b{display:inline-block;width:40px;text-align:right}#tmap-search-table ul{padding-left:20px;margin:1em 0 0 0}#tmap-search-table ul li{list-style:inherit}#tmap-search-table ul button{text-align:left}button.tmap-go-back{margin-bottom:1em;font-weight:bold}.tmap-badges>span,.tmap-badge{background:gray;font-size:11px;color:white;padding:3px 4px;display:inline-block;font-weight:bold;border-radius:2px;line-height:1em;cursor:help}.tmap-badges>span.tmap-red-flag,.tmap-badge.tmap-red-flag{background:red}.tmap-popup{display:none;position:absolute;opacity:0;transition:opacity 0.3s ease}.tmap-popup.tmap-popup-active{opacity:1}.tmap-tooltip{box-shadow:3px 3px 10px rgba(0,0,0,0.2);min-width:100px;min-height:50px;max-width:<<tmap option config.sys.popups.width>>;max-height:<<tmap option config.sys.popups.height>>;padding:5px;resize:both;overflow:auto;cursor:auto;font-family:verdana;font-size:14px;background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.tmap-tooltip[style*=\"height\"]{max-height:none !important}.tmap-tooltip[style*=\"width\"]{max-width:none !important}.tmap-quick-connect{font-size:0.7em}.tmap-quick-connect p{padding-left:0;padding-right:0}.tmap-quick-connect .tc-drop-down{padding:5px;width:250px;white-space:normal;line-height:1em;position:absolute;z-index:1000;right:50px;background:linear-gradient(45deg, #f5f5f5 0%, #fff 50%, #f5f5f5 100%)}.tmap-quick-connect .tc-drop-down:first-child{padding-top:0;margin-top:0}.tmap-quick-connect .tc-drop-down .title{margin:1.5em 0 0.5em 0;font-weight:bold;color:gray}.tmap-quick-connect .tc-drop-down select{width:80px;word-wrap:initial}.tmap-quick-connect .tc-drop-down table{width:100%;border:none;margin:0.5em 0}.tmap-quick-connect .tc-drop-down table td,.tmap-quick-connect .tc-drop-down table th{padding:3px 3px 3px 0;vertical-align:middle;font-weight:normal;border:none}.tmap-quick-connect .tc-drop-down table td table,.tmap-quick-connect .tc-drop-down table th table{margin:0}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-search-bar,.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{background:#F1F1F1;margin-top:0;border-bottom:1px solid #D5D5D5;border-top:1px solid #D5D5D5}.tmap-quick-connect .tc-drop-down table.tmap-quick-connect-search-bar td,.tmap-quick-connect .tc-drop-down th{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-connection-table th,.tmap-quick-connect .tc-drop-down .tmap-connection-table td{text-align:left;padding:1px 1px 1px 0}.tmap-quick-connect .tc-drop-down .tmap-connection-table button{width:20px;padding:0px}.tmap-quick-connect .tc-drop-down .tmap-scroll-table{height:120px;overflow:auto;display:block}.tmap-quick-connect .tc-drop-down hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.tmap-quick-connect .tc-drop-down a{display:inline;padding:0;color:#5778d8;background:transparent}.tmap-quick-connect .tc-drop-down a:hover{background:transparent;color:#5778d8;text-decoration:underline}.tmap-quick-connect .tc-drop-down button{display:inline-block;padding:0px 3px;text-align:center;color:#333333;line-height:1.0}.tmap-quick-connect .tc-drop-down button:hover{color:#ffffff}.tmap-quick-connect .tc-drop-down button svg{fill:inherit}.tmap-quick-connect .tc-drop-down button svg:hover{fill:#ffffff}\n",
"title": "$:/plugins/felixhayashi/tiddlymap/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();/* @preserve TW-Guard */ /* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}var AbstractEdgeTypeSubscriber=function(){function e(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i=t.priority,n=i===undefined?0:i,a=t.skipOthers,s=a===undefined?true:a,u=t.ignore,l=u===undefined?false:u;_classCallCheck(this,e);this.allEdgeTypes=r;this.priority=n;this.skipOthers=s;this.ignore=l}_createClass(e,[{key:\"setTracker\",value:function e(r){this.tracker=r}},{key:\"loadEdges\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"loadEdges\")}},{key:\"canHandle\",value:function e(r){throw new _exception.MissingOverrideError(this,\"canHandle\")}},{key:\"insertEdge\",value:function e(r,t,i){}},{key:\"deleteEdge\",value:function e(r,t,i){}}]);return e}();exports.default=AbstractEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractMagicEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e,t){_classCallCheck(this,r);var i=_possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));i.edgeTypesByFieldName=_utils2.default.makeHashMap();for(var a in e){var n=e[a];if(i.canHandle(n)){i.edgeTypesByFieldName[n.name]=n}}return i}_createClass(r,[{key:\"getReferencesFromField\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"getReferencesFromField\")}},{key:\"getReferences\",value:function e(r,t,i){var a=_utils2.default.makeHashMap();var n=r.fields;for(var s in n){var u=this.edgeTypesByFieldName[s];if(!u||i&&!i[u.id])continue;var o=this.getReferencesFromField(r,s,t);if(o&&o.length){a[u.id]=o}}return a}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.default=AbstractMagicEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractMagicEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractRefEdgeTypeSubscriber=function(e){_inherits(t,e);function t(){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=this.getReferences(t,r,i);if(!a||!_utils2.default.hasElements(a))return;var s=t.fields[\"tmap.id\"];var n=$tm.tracker.getIdsByTiddlers();var u=this.allEdgeTypes;var l=_utils2.default.getTiddlerRef(t);var o=_utils2.default.makeHashMap();for(var f in a){var c=a[f];if(!c){continue}var p=u[f];for(var d=c.length;d--;){var _=c[d];if(!_||!$tw.wiki.tiddlerExists(_)||_utils2.default.isSystemOrDraft(_)||r&&!r[_]){continue}var b=p.id+$tw.utils.hashString(l+_);o[b]=new _Edge2.default(s,n[_],p.id,b)}}return o}},{key:\"getReferences\",value:function e(t,r,i){throw new _exception.MissingOverrideError(this,\"getReferences\")}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.default=AbstractRefEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractRefEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var s=r[t];s.enumerable=s.enumerable||false;s.configurable=true;if(\"value\"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(r,t,s){if(t)e(r.prototype,t);if(s)e(r,s);return r}}();function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeTypeSubscriberRegistry=function(){function e(r,t,s){_classCallCheck(this,e);this.subscriberClasses=r;this.tracker=s;this.updateIndex(t)}_createClass(e,[{key:\"getAllForType\",value:function e(r){var t=this.allSubscribers;var s=[];for(var i=0,a=t.length;i<a;i++){if(t[i].canHandle(r)){s.push(t[i]);if(t[i].skipOthers){break}}}return s}},{key:\"getAll\",value:function e(){return this.allSubscribers}},{key:\"updateIndex\",value:function e(r){var t=[];var s=this.subscriberClasses;for(var i in s){var a=new s[i](r);a.setTracker(this.tracker);if(a.ignore===true){continue}t.push(a)}t.sort(function(e,r){return r.priority-e.priority});this.allSubscribers=t}}]);return e}();exports.default=EdgeTypeSubscriberRegistry;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/EdgeTypeSubscriberRegistry.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TmapEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TmapEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:0},r)))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\");if(!a){return}var n=this.tracker.getTiddlersByIds();var u=t.fields[\"tmap.id\"];var s=_utils2.default.makeHashMap();for(var l in a){var o=a[l];var d=n[o.to];if(d&&(!r||r[d])&&(!i||i[o.type])){s[l]=new _Edge2.default(u,o.to,o.type,l)}}return s}},{key:\"insertEdge\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});r.id=r.id||_utils2.default.genUUID();a[r.id]={to:r.to,type:i.id};_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"deleteEdge\",value:function e(t,r,i){if(!r.id)return;var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});delete a[r.id];_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"canHandle\",value:function e(t){return true}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.TmapEdgeTypeSubscriber=TmapEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/TmapEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FieldEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FieldEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-field\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return[t.fields[r]]}},{key:\"insertEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,n);return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,undefined);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FieldEdgeTypeSubscriber=FieldEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FieldEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FilterEdgeTypeSubstriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _widget2=_interopRequireDefault(_widget);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FilterEdgeTypeSubstriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-filter\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){var n=t.fields[r];var a=new _widget2.default.widget({});a.setVariable(\"currentTiddler\",t.fields.title);var u=new _widget2.default.widget({},{parentWidget:a});var s=_utils2.default.getMatches(n,i,u);return s}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var a=t.fields[n]||\"\";var u=this.tracker.getTiddlerById(r.to);var s=$tw.utils.stringifyList([u]);if(a.length>0){s=\" \"+s}_utils2.default.setField(t,n,a+s);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FilterEdgeTypeSubstriber=FilterEdgeTypeSubstriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FilterEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.ListEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var ListEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-list\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return $tw.utils.parseStringArray(t.fields[r])}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var s=$tw.utils.parseStringArray(t.fields[n]);s=(s||[]).slice();var a=this.tracker.getTiddlerById(r.to);s.push(a);_utils2.default.setField(t,n,$tw.utils.stringifyList(s));return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=$tw.utils.parseStringArray(t.fields[i.name]);n=(n||[]).slice();var s=this.tracker.getTiddlerById(r.to);var a=n.indexOf(s);if(a>-1){n.splice(a,1)}var u=void 0;if(n.length>0){u=$tw.utils.stringifyList(n)}_utils2.default.setField(t,i.name,u);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.ListEdgeTypeSubscriber=ListEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/ListEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.LinkEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var LinkEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:20},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.id===\"tw-body:link\"}},{key:\"getReferences\",value:function e(t,r,n){if(n&&!n[\"tw-body:link\"]){return}var i=$tw.wiki.getTiddlerLinks(t.fields.title);if(!i||!i.length){return}return{\"tw-body:link\":i}}}]);return t}(_AbstractRefEdgeTypeSubscriber2.default);exports.LinkEdgeTypeSubscriber=LinkEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/LinkEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TranscludeEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t){if(Object.prototype.hasOwnProperty.call(t,n)){e[n]=t[n]}}}return e};var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(r,t,n){if(t)e(r.prototype,t);if(n)e(r,n);return r}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TranscludeEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,r);return _possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,_extends({priority:20,ignore:typeof $tw.wiki.getTiddlerTranscludes!==\"function\"},t)))}_createClass(r,[{key:\"canHandle\",value:function e(r){return r.id===\"tw-body:transclude\"}},{key:\"getReferences\",value:function e(r,t,n){if(n&&!n[\"tw-body:transclude\"]){return}var i=$tw.wiki.getTiddlerTranscludes(r.fields.title);if(!i||!i.length){return}return{\"tw-body:transclude\":i}}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.TranscludeEdgeTypeSubscriber=TranscludeEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/TranscludeEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/Edge": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Edge",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Edge\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var Edge=function e(t,i,s,l){_classCallCheck(this,e);this.from=t;this.to=i;this.type=s;this.id=l||_utils2.default.genUUID()};exports.default=Edge;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/Edge.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var n=t.getIdParts(e),o=n.marker,a=n.namespace,i=n.name;e=t.getId(o,a,i);var l=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,env.path.edgeTypes,t.fieldMeta,r));l.id=e;l.marker=o;l.name=i;l.namespace=a;var u=(l.style||{}).arrows;if(u){l.invertedArrow=isArrowEnabled(u,\"from\");l.toArrow=isArrowEnabled(u,\"to\")||isArrowEnabled(u,\"middle\");l.biArrow=l.invertedArrow===l.toArrow;if(l.biArrow){l.toArrow=true;l.invertedArrow=true}}else{l.toArrow=true}Object.freeze(l);return l}_createClass(t,[{key:\"getLabel\",value:function e(){return this.label||this.name}}],[{key:\"getIdParts\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";t=_utils2.default.getWithoutPrefix(t,env.path.edgeTypes+\"/\");var r=t.match(edgeTypeRegex)||[];return{marker:r[1]||\"\",namespace:r[3]&&r[2]||\"\",name:r[3]||r[2]||\"\"}}},{key:\"getId\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];return n?t+(r&&r+\":\")+n:\"tmap:unknown\"}}]);return t}(_MapElementType3.default);EdgeType.getInstance=function(e){return e instanceof EdgeType?e:new EdgeType(e)};EdgeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{label:{},\"show-label\":{}});var isArrowEnabled=function e(t,r){var n=t[r];if(n==null&&r===\"to\"){return true}return(typeof n===\"undefined\"?\"undefined\":_typeof(n))===\"object\"?n.enabled!==false:n===true};var edgeTypeRegex=new RegExp(\"^(_?)([^:_][^:]*):?([^:]*)\");exports.default=EdgeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/EdgeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/MapElementType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/MapElementType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol===\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var l=e[i];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(t,l.key,l)}}return function(e,i,l){if(i)t(e.prototype,i);if(l)t(e,l);return e}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/MapElementType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}var MapElementType=function(){function t(e,i,l,s){_classCallCheck(this,t);this.id=e;this.root=i;this._fieldMeta=l;this.fullPath=this.root+\"/\"+this.id;this.isShipped=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath);this._load(s||this.fullPath)}_createClass(t,[{key:\"_load\",value:function t(e){if(!e){return}if(typeof e===\"string\"){var i=_utils2.default.startsWith(e,this.root);var l=i?e:this.root+\"/\"+e;this._loadFromTiddler(l)}else if(e instanceof $tw.Tiddler){this._loadFromTiddler(e)}else if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){for(var s in this._fieldMeta){this[s]=e[s]}}}},{key:\"_loadFromTiddler\",value:function t(e){var i=_utils2.default.getTiddler(e);if(!i){return}var l=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath)||{};var s=$tw.utils.extend({},l.fields,i.fields);for(var r in this._fieldMeta){var a=this._fieldMeta[r].parse;var f=s[r];this[r]=a?a.call(this,f):f}}},{key:\"exists\",value:function t(){return _utils2.default.tiddlerExists(this.fullPath)}},{key:\"setStyle\",value:function t(e,i){if(typeof e===\"string\"){e=_utils2.default.parseJSON(e)}if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){if(i){_utils2.default.merge(this.style,e)}else{this.style=e}}}},{key:\"save\",value:function t(e,i){if(!e){e=this.fullPath}else if(typeof e!==\"string\"){return}var l={title:e,text:\"\"};if(!_utils2.default.startsWith(e,this.root)){l.id=this.id}for(var s in this._fieldMeta){var r=this._fieldMeta[s].stringify;l[s]=r?r.call(this,this[s]):this[s]}if(!this.exists()){Object.assign(l,$tw.wiki.getCreationFields())}if(i!==true){Object.assign(l,$tw.wiki.getModificationFields())}$tw.wiki.addTiddler(new $tw.Tiddler(l))}}]);return t}();MapElementType.fieldMeta={description:{},style:{parse:_utils2.default.parseJSON,stringify:JSON.stringify},modified:{},created:{}};exports.default=MapElementType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/MapElementType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/NodeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/NodeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/NodeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var NodeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);e=typeof e===\"string\"?_utils2.default.getWithoutPrefix(e,$tm.path.nodeTypes+\"/\"):\"tmap:unknown\";var n=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,$tm.path.nodeTypes,t.fieldMeta,r));Object.freeze(n);return n}_createClass(t,[{key:\"getInheritors\",value:function e(t){return this.scope?_utils2.default.getMatches(this.scope,t||$tw.wiki.allTitles()):[]}}]);return t}(_MapElementType3.default);NodeType.getInstance=function(e){return e instanceof NodeType?e:new NodeType(e)};NodeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{view:{},priority:{parse:function e(t){return isNaN(t)?1:parseInt(t)},stringify:function e(t){return _utils2.default.isInteger(t)?t.toString():\"1\"}},scope:{stringify:_utils2.default.getWithoutNewLines},\"fa-icon\":{},\"tw-icon\":{}});exports.default=NodeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/NodeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i){if(Object.prototype.hasOwnProperty.call(i,r)){e[r]=i[r]}}}return e};var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var ViewAbstraction=function(){function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,e);if(t instanceof e){return t}this._registerPaths(t);if(i.isCreate){if(!this.configTRef){var r=_utils2.default.getRandomLabel({plural:true});this.configTRef=$tw.wiki.generateNewTitle($tm.path.views+\"/\"+r)}this._createView(i)}else if(!e.exists(this.getRoot())){throw new ResourceNotFoundException(\"ViewAbstraction\",t)}}_createClass(e,[{key:\"isLocked\",value:function e(){return $tw.wiki.isShadowTiddler(this.configTRef)}},{key:\"update\",value:function e(t){var i=t.changedTiddlers;if(t[env.path.edgeTypes]||_utils2.default.hasKeyWithPrefix(i,this.getRoot())){this._clearCaches();return true}return false}},{key:\"addPlaceholder\",value:function e(t){_utils2.default.cp(_utils2.default.getTiddlerRef(t),this.snapshotTRef,true)}},{key:\"exists\",value:function t(){return e.exists(this)}},{key:\"getRoot\",value:function e(){return this.configTRef}},{key:\"getCreationDate\",value:function e(t){var i=$tw.wiki.getTiddler(this.configTRef).fields[\"created\"];if(t){return i instanceof Date?$tw.utils.formatDateString(i,\"DDth MMM YYYY\"):\"\"}return i}},{key:\"getLabel\",value:function e(){return _utils2.default.getBasename(this.configTRef)}},{key:\"destroy\",value:function e(){_utils2.default.deleteTiddlers(_utils2.default.getMatches(\"[prefix[\"+this.configTRef+\"]]\"))}},{key:\"getOccurrences\",value:function e(){var t=\"[regexp:text[<\\\\$(tiddlymap|tmap).*?view=.\"+this.getLabel()+\"..*?>]]\";return _utils2.default.getMatches(t)}},{key:\"rename\",value:function t(i){if(typeof i!==\"string\"){return false}if(_utils2.default.inArray(\"/\",i)){$tm.notify('A view name must not contain any \"/\"');return false}var r=this.getLabel();var a=env.path.views+\"/\"+i;var n=this.getRoot();_utils2.default.mv(n,a,true);if($tm.config.sys.defaultView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"defaultView\",i)}if($tm.config.sys.liveTab.fallbackView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"liveTab.fallbackView\",i)}$tw.wiki.each(function(t,a){if(t.fields[\"tmap.open-view\"]===r){_utils2.default.setField(a,\"tmap.open-view\",i);return}if(e.exists(a)){var n=new e(a);var l=n.getNodeData();for(var s in l){if(l[s][\"open-view\"]===r){l[s][\"open-view\"]=i}}n.saveNodeData(l)}});this._clearCaches();this._registerPaths(i)}},{key:\"isEnabled\",value:function e(t){return _utils2.default.isTrue(this.getConfig(t),false)}},{key:\"getConfig\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.configTRef,\"tmap-config\",function(){var e=_utils2.default.getTiddler(i.configTRef).fields;return _utils2.default.getPropertiesByPrefix(e,\"config.\")});var a=t&&_utils2.default.startsWith(t,\"config.\")?t:\"config.\"+t;return t?r[a]:r}},{key:\"setConfig\",value:function e(){for(var t=arguments.length,i=Array(t),r=0;r<t;r++){i[r]=arguments[r]}if(i[0]==null){return}if(i.length===1&&_typeof(i[0])===\"object\"){for(var a in i[0]){this.setConfig(a,i[0][a])}}else if(i.length===2&&typeof i[0]===\"string\"){var n=_utils2.default.getWithoutPrefix(i[0],\"config.\");var l=i[1];if(l===undefined){return}var s=this.getConfig();if(l===null){$tm.logger(\"debug\",\"Removing config\",n);delete s[\"config.\"+n]}else{if(n===\"edge_type_namespace\"){var o=l.match(/[^:]+/);l=o?o[0]:\"\"}}$tm.logger(\"log\",\"Setting config\",n,l);s[\"config.\"+n]=l;$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),s))}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(i)))}}},{key:\"isNodeIncludedById\",value:function t(i){var r=$tw.utils.escapeRegExp(e._getNodeIdFilterPart(i));return this.getNodeFilter(\"raw\").match(r)}},{key:\"setNodeFilter\",value:function e(t,i){t=t.replace(/[\\n\\r]/g,\" \");if(this.getNodeFilter(\"raw\")===t){return}_utils2.default.setField(this.nodeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Node filter set to\",t)}},{key:\"setEdgeTypeFilter\",value:function e(t){t=t.replace(/[\\n\\r]/g,\" \");if(this.getEdgeTypeFilter(\"raw\")===t){return}_utils2.default.setField(this.edgeTypeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Edge filter set to\",t)}},{key:\"addNode\",value:function t(i){if(!this.isNodeIncludedById(i)){if(_utils2.default.isTrue($tm.config.sys.alwaysAddNodeIdToViewFilter)||!_utils2.default.isMatch(i.tRef,this.getNodeFilter(\"compiled\"))){var r=e._getNodeIdFilterPart(i);var a=\" \";this.setNodeFilter(this.getNodeFilter(\"raw\")+a+r)}this.saveNodePosition(i)}}},{key:\"removeNode\",value:function t(i){if(!this.isNodeIncludedById(i)){return false}var r=e._getNodeIdFilterPart(i);var a=this.getNodeFilter(\"raw\").replace(r,\"\");this.setNodeFilter(a);return true}},{key:\"getEdgeTypeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.edgeTypeFilterTRef,\"tmap-edgeTypeFilter\",function(){var e=$tm.indeces.allETy;var t=Object.keys(e);var r=$tw.wiki.getTiddler(i.edgeTypeFilterTRef);var a={};a.raw=r&&r.fields.filter||\"\";a.pretty=_utils2.default.getPrettyFilter(a.raw);a.matches=_utils2.default.getEdgeTypeMatches(a.raw,e);a.whitelist=_utils2.default.getLookupTable(a.matches);return a});return t?r[t]:r}},{key:\"isEdgeTypeVisible\",value:function e(t){return _utils2.default.isEdgeTypeMatch(_EdgeType2.default.getInstance(t).id,this.getEdgeTypeFilter(\"raw\"))}},{key:\"getNodeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.nodeFilterTRef,\"tmap-nodeFilter\",function(){var e=_utils2.default.makeHashMap();var t=$tw.wiki.getTiddler(i.nodeFilterTRef);e.raw=t&&t.fields.filter||\"\";e.pretty=_utils2.default.getPrettyFilter(e.raw);e.compiled=$tw.wiki.compileFilter(e.raw);return e});return t?r[t]:r}},{key:\"getNodeData\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.mapTRef,\"tmap-map\",function(){return _utils2.default.parseFieldData(i.mapTRef,\"text\",{})});return t?r[t]:r}},{key:\"equals\",value:function t(i){return i===this||e.exists(i)&&new e(i).getRoot()===this.getRoot()}},{key:\"saveNodeData\",value:function e(){var t=this.getNodeData();for(var i=arguments.length,r=Array(i),a=0;a<i;a++){r[a]=arguments[a]}if(r.length===2){if(_typeof(r[1])===\"object\"){if(r[1]===null){delete t[r[0]]}else{t[r[0]]=Object.assign(t[r[0]]||{},r[1])}}}else if(r.length===1&&_typeof(r[0])===\"object\"){$tm.logger(\"log\",\"Storing data in\",this.mapTRef);Object.assign(t,r[0])}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(r)))}_utils2.default.writeFieldData(this.mapTRef,\"text\",t,$tm.config.sys.jsonIndentation)}},{key:\"saveNodePosition\",value:function e(t){if(t.id&&t.x!=null&&t.y!=null){this.saveNodeData(t.id,{x:t.x,y:t.y})}}},{key:\"saveNodePositions\",value:function e(t){var i=this.getNodeData();for(var r in t){i[r]=i[r]||{};i[r].x=t[r].x;i[r].y=t[r].y}this.saveNodeData(i)}},{key:\"setCentralTopic\",value:function e(t){this.setConfig(\"central-topic\",t)}},{key:\"saveNodeStyle\",value:function e(t,i){var r=this.getNodeData(t)||{};var a={x:r.x,y:r.y};for(var n in r){delete r[n]}this.saveNodeData(t,_extends({},i,a))}},{key:\"_registerPaths\",value:function t(i,r){this.configTRef=e._getRootPath(i);this.mapTRef=this.configTRef+\"/map\";this.nodeFilterTRef=this.configTRef+\"/filter/nodes\";this.edgeTypeFilterTRef=this.configTRef+\"/filter/edges\";this.snapshotTRef=this.getRoot()+\"/snapshot\"}},{key:\"_clearCaches\",value:function e(){_utils2.default.getMatches(\"[prefix[\"+this.getRoot()+\"]]\").forEach(function(e){$tw.wiki.clearCache(e)})}},{key:\"_createView\",value:function t(){var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},r=i.isForce,a=i.protoView,n=i.isHidden;if(e.exists(this)){if(!r){return}this.destroy()}if(e.exists(a)){_utils2.default.cp(new e(a).getRoot(),this.configTRef,true)}var l={title:this.configTRef,id:_utils2.default.genUUID()};if(!n){l[$tm.field.viewMarker]=true}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),l));this.setEdgeTypeFilter(env.filter.defaultEdgeTypeFilter)}}],[{key:\"_getNodeIdFilterPart\",value:function e(t){var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;return\"[field:tmap.id[\"+i+\"]]\"}},{key:\"_getRootPath\",value:function t(i){if(i instanceof e){return i.configTRef}if(i instanceof $tw.Tiddler){i=i.fields.title}if(typeof i===\"string\"){var r=_utils2.default.getWithoutPrefix(i,$tm.path.views+\"/\");if(r&&!_utils2.default.hasSubString(r,\"/\")){return $tm.path.views+\"/\"+r}}}},{key:\"exists\",value:function t(i){if(!i){return false}if(i instanceof e){i=i.configTRef}else{i=e._getRootPath(i)}return _utils2.default.tiddlerExists(i)}}]);return e}();exports.default=ViewAbstraction;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/ViewAbstraction.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Popup": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Popup",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function Popup(e,t){t=t||{};this._parentDomNode=e;this._domNode=document.createElement(\"div\");this._domNode.style.display=\"none\";this._domNode.className=\"tmap-popup\";this._parentDomNode.appendChild(this._domNode);$tw.utils.addClass(this._domNode,t.className);this._isEnabled=true;this._isPreventShowOrHide=false;this._isHideOnClick=!!t.hideOnClick;this._timeoutShow=null;this._timeoutHide=null;this._isDisplayNoneAfterAnimation=true;var i=parseInt(t.leavingDelay);this._hideDelayLeavingPopup=_utils2.default.isInteger(i)?i:200;i=parseInt(t.hideDelay);this._hideDelay=_utils2.default.isInteger(i)?i:200;i=parseInt(t.showDelay);this._showDelay=_utils2.default.isInteger(i)?i:200;_utils2.default.bindTo(this,[\"_show\",\"_hide\",\"_handleEnter\",\"_handleLeave\",\"_handleAnimationEnd\",\"_handleClick\"]);this._listeners={mouseenter:this._handleEnter,mouseleave:this._handleLeave,click:[this._handleClick,true]};var s=this._handleAnimationEnd;this._listeners[$tw.utils.convertEventName(\"animationEnd\")]=s;this._listeners[$tw.utils.convertEventName(\"transitionEnd\")]=s;_utils2.default.setDomListeners(\"add\",this._domNode,this._listeners,false)}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Popup\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */Popup.prototype._handleEnter=function(e){this._isPreventShowOrHide=true};Popup.prototype._handleLeave=function(e){this._isPreventShowOrHide=false;this.hide(this._hideDelayLeavingPopup)};Popup.prototype._handleClick=function(e){if(this._isHideOnClick){this._hide(true)}};Popup.prototype._handleAnimationEnd=function(){if(this._isDisplayNoneAfterAnimation){this._domNode.style.display=\"none\"}};Popup.prototype._hide=function(e){if(!e&&this._isPreventShowOrHide)return;this._isDisplayNoneAfterAnimation=true;this._isPreventShowOrHide=false;$tw.utils.removeClass(this._domNode,\"tmap-popup-active\")};Popup.prototype._show=function(e,t){if(this._isPreventShowOrHide||$tm.mouse.ctrlKey||!this._isEnabled){return}this._domNode.style.display=\"none\";$tw.utils.removeClass(this._domNode,\"tmap-popup-active\");this._domNode.removeAttribute(\"style\");_utils2.default.removeDOMChildNodes(this._domNode);var i=this._domNode.appendChild(document.createElement(\"div\"));if(typeof t===\"function\"){t(e,i)}else{i.innerHTML=t}if(!i.childNodes.length)return;var s=this._parentDomNode.getBoundingClientRect();var o=$tm.mouse.clientX;var n=$tm.mouse.clientY;this._domNode.style.display=\"block\";var d=this._domNode.getBoundingClientRect();var l=s.right-(o+d.width);var h=o-d.width-s.left;var a=l>h;var u=s.bottom-(n+d.height);var r=n-d.height-s.top;var p=u>r;var _=a?-15:d.width+15;var m=p?-15:d.height+15;this._domNode.style.left=o-s.left-_+\"px\";this._domNode.style.top=n-s.top-m+\"px\";this._isDisplayNoneAfterAnimation=false;$tw.utils.addClass(this._domNode,\"tmap-popup-active\")};Popup.prototype.show=function(e,t,i){this._clearTimeouts();i=_utils2.default.isInteger(i)?i:this._showDelay;this._timeoutShow=setTimeout(this._show,i,e,t)};Popup.prototype.hide=function(e,t){this._clearTimeouts();e=_utils2.default.isInteger(e)?e:this._hideDelay;if(t||e===0){this._hide(t)}else{this._timeoutHide=setTimeout(this._hide,e,t)}};Popup.prototype.setEnabled=function(e){this._isEnabled=e};Popup.prototype.isShown=function(){return this._domNode.style.display===\"block\"};Popup.prototype._clearTimeouts=function(){clearTimeout(this._timeoutShow);clearTimeout(this._timeoutHide);this._timeoutShow=undefined;this._timeoutHide=undefined};exports.default=Popup;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/Popup.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(t,n.key,n)}}return function(e,i,n){if(i)t(e.prototype,i);if(n)t(e,n);return e}}();function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\ntype: application/SelectionRectangle\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var SelectionRectangle=function(){function t(e,i){_classCallCheck(this,t);this.x1=e;this.x2=e;this.y1=i;this.y2=i}_createClass(t,[{key:\"span\",value:function t(e,i){this.x2=e;this.y2=i}},{key:\"getWidth\",value:function t(){return this.x2-this.x1}},{key:\"getHeight\",value:function t(){return this.y2-this.y1}},{key:\"getRect\",value:function t(){return[this.x1,this.y1,this.getWidth(),this.getHeight()]}},{key:\"isPointWithin\",value:function t(e){var i=e.x,n=e.y;var a=this.x1,r=this.x2,s=this.y1,u=this.y2;var h=Math.min(a,r);var c=Math.max(a,r);var l=Math.min(s,u);var o=Math.max(s,u);return h<i&&i<c&&l<n&&n<o}}]);return t}();exports.default=SelectionRectangle;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/SelectionRectangle.js.map\n",
"type": "application/SelectionRectangle",
"module-type": "library"
},
"/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js": {
"title": "/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js",
"text": "\"use strict\";\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/TypeDefs.js.map\n"
},
"$:/plugins/felixhayashi/tiddlymap/js/config/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/config/vis",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/config/vis\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var visConfig={locale:\"en_EN\",clickToUse:false,autoResize:false,height:\"100%\",width:\"100%\",configure:{enabled:false},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:true,navigationButtons:true,multiselect:true,selectable:true,selectConnectedEdges:true,tooltipDelay:600,zoomView:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:false}},manipulation:{initiallyActive:true},nodes:{shape:\"box\",widthConstraint:{maximum:160},heightConstraint:{valign:\"center\"},shadow:{enabled:false},color:{border:\"#2B7CE9\",background:\"#97C2FC\"}},edges:{smooth:{enabled:true},color:{color:\"#848484\",inherit:false},arrows:{to:{enabled:true}}},layout:{hierarchical:{enabled:false,levelSeparation:200,nodeSpacing:170,treeSpacing:230,sortMethod:\"directed\",parentCentralization:true,edgeMinimization:true,blockShifting:true,direction:\"UD\"}},physics:{forceAtlas2Based:{gravitationalConstant:-300,springLength:0,springConstant:.2,centralGravity:.015,damping:.4},hierarchicalRepulsion:{nodeDistance:120,centralGravity:0,springLength:100,springConstant:.01,damping:.09},solver:\"forceAtlas2Based\",stabilization:{enabled:true,iterations:1e3,updateInterval:10,onlyDynamicEdges:false,fit:false}}};exports.default=visConfig;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/VisConfig.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/environment": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/environment",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var i=1;i<arguments.length;i++){var a=arguments[i];for(var l in a){if(Object.prototype.hasOwnProperty.call(a,l)){e[l]=a[l]}}}return e};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/environment\ntype: application/javascript\n module-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var path=exports.path={pluginRoot:\"$:/plugins/felixhayashi/tiddlymap\",edgeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes\",nodeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes\",views:\"$:/plugins/felixhayashi/tiddlymap/graph/views\",options:\"$:/plugins/felixhayashi/tiddlymap/config\",dialogs:\"$:/plugins/felixhayashi/tiddlymap/dialog\",footers:\"$:/plugins/felixhayashi/tiddlymap/dialogFooter\",tempRoot:\"$:/temp/tmap\",tempStates:\"$:/temp/tmap/state\",tempPopups:\"$:/temp/tmap/state/popup\",localHolders:\"$:/temp/tmap/holders\"};var ref=exports.ref={defaultViewHolder:\"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder\",graphBar:\"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar\",sysUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\",visUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/vis/user\",welcomeFlag:\"$:/plugins/felixhayashi/tiddlymap/flag/welcome\",focusButton:\"$:/plugins/felixhayashi/tiddlymap/misc/focusButton\",sysMeta:\"$:/plugins/felixhayashi/tiddlymap/misc/meta\",liveTab:\"$:/plugins/felixhayashi/tiddlymap/hook/liveTab\",mainEditor:\"$:/plugins/felixhayashi/tiddlymap/hook/editor\",sidebarBreakpoint:\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"};var misc=exports.misc={unknownEdgeLabel:\"tmap:undefined\",liveViewLabel:\"Live View\",defaultViewLabel:\"Default\",mainEditorId:\"main_editor\",arrows:{in:\"⇦\",out:\"➡\",bi:\"⇄\"}};var config=exports.config={sys:{field:{nodeLabel:\"caption\",nodeIcon:\"icon\",nodeInfo:\"description\",viewMarker:\"isview\"},liveTab:{fallbackView:misc.liveViewLabel},suppressedDialogs:{},edgeClickBehaviour:\"manager\",debug:\"false\",notifications:\"true\",popups:{enabled:\"true\",delay:\"600\",width:\"240px\",height:\"140px\"},jsonIndentation:\"1\",alwaysAddNodeIdToViewFilter:\"true\",editNodeOnCreate:\"false\",singleClickMode:\"false\",nodeFilterNeighbours:\"false\",editorMenuBar:{showNeighScopeButton:\"true\",showRasterMenuButton:\"true\",showScreenshotButton:\"true\"}}};var filter=exports.filter={nodeTypes:\"[prefix[\"+path.nodeTypes+\"]]\",edgeTypes:\"[prefix[\"+path.edgeTypes+\"]]\",views:\"[\"+config.sys.field.viewMarker+\"[true]]\",defaultEdgeTypeFilter:\"-[prefix[_]] -[[tw-body:link]] -[[tw-list:tags]] -[[tw-list:list]]\"};var allSelector=\"[all[tiddlers+shadows]!has[draft.of]]\";var s={allEdgeTypes:allSelector+\" +\"+filter.edgeTypes,allNodeTypes:allSelector+\" +\"+filter.nodeTypes,allViews:allSelector+\" +\"+filter.views,allPotentialNodes:\"[all[tiddlers]!is[system]!has[draft.of]]\"};var selector=exports.selector=_extends({},s,{allEdgeTypesById:s.allEdgeTypes+\" +[removeprefix[\"+path.edgeTypes+\"/]]\",allNodeTypesById:s.allNodeTypes+\" +[removeprefix[\"+path.nodeTypes+\"/]]\",allViewsByLabel:s.allViews+\" +[removeprefix[\"+path.views+\"/]]\"});\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/environment.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/exception": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/exception",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function r(r,t){for(var e=0;e<t.length;e++){var o=t[e];o.enumerable=o.enumerable||false;o.configurable=true;if(\"value\"in o)o.writable=true;Object.defineProperty(r,o.key,o)}}return function(t,e,o){if(e)r(t.prototype,e);if(o)r(t,o);return t}}();function _classCallCheck(r,t){if(!(r instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(r,t){if(!r){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:r}function _inherits(r,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}r.prototype=Object.create(t&&t.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(r,t):r.__proto__=t}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/exception\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TiddlyMapError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);var o=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r));o.payload=e;return o}_createClass(t,[{key:\"getPayload\",value:function r(){return this.payload}}]);return t}(Error);var EnvironmentError=exports.EnvironmentError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Critical parts of the underlying system changed: \"+r))}return t}(TiddlyMapError);var DependencyError=exports.DependencyError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"TiddlyMap cannot run without: : \"+r))}return t}(TiddlyMapError);var MissingOverrideError=exports.MissingOverrideError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r.constructor.name+' does not override method \"'+e+'\"'))}return t}(TiddlyMapError);var ResourceNotFoundException=exports.ResourceNotFoundException=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);for(var e=arguments.length,o=Array(e>1?e-1:0),n=1;n<e;n++){o[n-1]=arguments[n]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Cannot resolve \"+r,o))}return t}(TiddlyMapError);var InvalidArgumentException=exports.InvalidArgumentException=function(r){_inherits(t,r);function t(){_classCallCheck(this,t);for(var r=arguments.length,e=Array(r),o=0;o<r;o++){e[o]=arguments[o]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Invalid or missing argument provided\",e))}return t}(TiddlyMapError);\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/exceptions.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/URL": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/URL",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/URL\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/**\n * <<<\n * Lightweight URL manipulation with JavaScript. This library is\n * independent of any other libraries and has pretty simple interface\n * and lightweight code-base. Some ideas of query string parsing\n * had been taken from Jan Wolter.\"\n *\n * @see http://unixpapa.com/js/querystring.html\n * @license MIT\n * @author Mykhailo Stadnyk <mikhus@gmail.com>\n * <<< https://github.com/Mikhus/jsurl\n *\n * @class\n * @param {string} url\n */function Url(t){this.paths=function(t){var e=\"\",r=0,o;if(t&&t.length&&t+\"\"!==t){if(this.isAbsolute()){e=\"/\"}for(o=t.length;r<o;r++){t[r]=encode(t[r])}this.path=e+t.join(\"/\")}t=(this.path.charAt(0)===\"/\"?this.path.slice(1):this.path).split(\"/\");for(r=0,o=t.length;r<o;r++){t[r]=decode(t[r])}return t};this.encode=encode;this.decode=decode;this.isAbsolute=function(){return this.protocol||this.path.charAt(0)===\"/\"};this.toString=function(){return(this.protocol&&this.protocol+\"://\")+(this.user&&encode(this.user)+(this.pass&&\":\"+encode(this.pass))+\"@\")+(this.host&&this.host)+(this.port&&\":\"+this.port)+(this.path&&this.path)+(this.query.toString()&&\"?\"+this.query)+(this.hash&&\"#\"+encode(this.hash))};parse(this,t)}var map={protocol:\"protocol\",host:\"hostname\",port:\"port\",path:\"pathname\",query:\"search\",hash:\"hash\"},defaultPorts={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},parse=function t(e,r){var o=document,s=o.createElement(\"a\"),r=r||o.location.href,i=r.match(/\\/\\/(.*?)(?::(.*?))?@/)||[],n;s.href=r;for(n in map){e[n]=s[map[n]]||\"\"}e.protocol=e.protocol.replace(/:$/,\"\");e.query=e.query.replace(/^\\?/,\"\");e.hash=decode(e.hash.replace(/^#/,\"\"));e.user=decode(i[1]||\"\");e.pass=decode(i[2]||\"\");e.port=defaultPorts[e.protocol]==e.port||e.port==0?\"\":e.port;if(!e.protocol&&!/^([a-z]+:)?\\/\\//.test(r)){var h=new Url(o.location.href.match(/(.*\\/)/)[0]),a=h.path.split(\"/\"),p=e.path.split(\"/\"),c=[\"protocol\",\"user\",\"pass\",\"host\",\"port\"],f=c.length;a.pop();for(n=0;n<f;n++){e[c[n]]=h[c[n]]}while(p[0]==\"..\"){a.pop();p.shift()}e.path=(r.charAt(0)!=\"/\"?a.join(\"/\"):\"\")+\"/\"+p.join(\"/\")}else{e.path=e.path.replace(/^\\/?/,\"/\")}e.paths((e.path.charAt(0)==\"/\"?e.path.slice(1):e.path).split(\"/\"));parseQs(e)},encode=function t(e){return encodeURIComponent(e).replace(/'/g,\"%27\")},decode=function t(e){e=e.replace(/\\+/g,\" \");e=e.replace(/%([ef][0-9a-f])%([89ab][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r,o){var s=parseInt(e,16)-224,i=parseInt(r,16)-128;if(s==0&&i<32){return t}var n=parseInt(o,16)-128,h=(s<<12)+(i<<6)+n;if(h>65535){return t}return String.fromCharCode(h)});e=e.replace(/%([cd][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r){var o=parseInt(e,16)-192;if(o<2){return t}var s=parseInt(r,16)-128;return String.fromCharCode((o<<6)+s)});e=e.replace(/%([0-7][0-9a-f])/gi,function(t,e){return String.fromCharCode(parseInt(e,16))});return e},parseQs=function t(e){var r=e.query;e.query=new function(t){var e=/([^=&]+)(=([^&]*))?/g,r;while(r=e.exec(t)){var o=decodeURIComponent(r[1].replace(/\\+/g,\" \")),s=r[3]?decode(r[3]):\"\";if(this[o]!=null){if(!(this[o]instanceof Array)){this[o]=[this[o]]}this[o].push(s)}else{this[o]=s}}this.clear=function(){for(var t in this){if(!(this[t]instanceof Function)){delete this[t]}}};this.count=function(){var t=0,e;for(e in this){if(!(this[e]instanceof Function)){t++}}return t};this.isEmpty=function(){return this.count()===0};this.toString=function(){var t=\"\",e=encode,r,o;for(r in this){if(this[r]instanceof Function){continue}if(this[r]instanceof Array){var s=this[r].length;if(s){for(o=0;o<s;o++){t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r][o])}}else{t+=(t?\"&\":\"\")+e(r)+\"=\"}}else{t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r])}}return t}}(r)};exports.default=Url;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/url.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.bindTo=exports.getNearestRasterPosition=exports.mod=exports.removeDOMChildNodes=exports.setDomListeners=exports.merge=exports.getRandomLabel=exports.getFirstElementByClassName=exports.pickRandom=exports.hasKeyWithPrefix=exports.getWithoutPrefix=exports.getPropertiesByPrefix=exports.removeArrayElement=exports.isTrue=exports.replaceAll=exports.isInteger=exports.findAndRemoveClassNames=exports.getAncestorWithClass=exports.makeHashMap=exports.getWithoutNewLines=exports.joinAndWrap=exports.parseJSON=exports.hasSubString=exports.inArray=exports.getRandomInt=exports.isEqual=exports.identity=exports.base64=exports.startsWith=exports.getBasename=exports.escapeRegex=exports.hasElements=exports.ucFirst=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var ucFirst=exports.ucFirst=function e(t){return t&&t[0].toUpperCase()+t.slice(1)};var hasElements=exports.hasElements=function e(t){return Object.keys(t).length>0};var escapeRegex=exports.escapeRegex=function e(t){return t.replace(/[-$^?.+*[\\]\\\\(){}|]/g,\"\\\\$&\")};var getBasename=exports.getBasename=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"/\";return t.substring(t.lastIndexOf(r)+1)};var startsWith=exports.startsWith=function e(t,r){return t.substring(0,r.length)===r};var base64=exports.base64=typeof window===\"undefined\"?function(e){return new Buffer(e).toString(\"base64\")}:window.btoa.bind(window);var identity=exports.identity=function e(t){return(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"&&t!==null?JSON.stringify(Object.keys(t).sort().map(function(e){return[e,t[e]]})):null};var isEqual=exports.isEqual=function e(t,r){return identity(t)===identity(r)};var getRandomInt=exports.getRandomInt=function e(t,r){return Math.floor(Math.random()*(r-t)+t)};var inArray=exports.inArray=function e(t,r){return r.indexOf(t)!==-1};var hasSubString=exports.hasSubString=function e(t,r){return t.indexOf(r)!==-1};var parseJSON=exports.parseJSON=function e(t,r){try{return JSON.parse(t)}catch(e){return r}};var joinAndWrap=exports.joinAndWrap=function e(t,r,n){var o=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\" \";return r+t.join(n+o+r)+n};var getWithoutNewLines=exports.getWithoutNewLines=function e(t){return typeof t===\"string\"?t.replace(/[\\n\\r]/g,\" \"):t};var makeHashMap=exports.makeHashMap=function e(t){var r=Object.create(null);Object.defineProperty(r,\"hasOwnProperty\",{enumerable:false,configurable:false,writable:false,value:Object.prototype.hasOwnProperty.bind(r)});if(t){for(var n in t){if(t.hasOwnProperty(n)){r[n]=t[n]}}}return r};var getAncestorWithClass=exports.getAncestorWithClass=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"||typeof r!==\"string\"){return}while(t.parentNode&&t.parentNode!==document){t=t.parentNode;if(t.classList.contains(r)){return t}}};var findAndRemoveClassNames=exports.findAndRemoveClassNames=function e(t){for(var r=t.length;r--;){var n=document.getElementsByClassName(t[r]);for(var o=n.length;o--;){n[o].classList.remove(t[r])}}};var isInteger=exports.isInteger=Number.isInteger||function(e){return typeof e===\"number\"&&isFinite(e)&&Math.floor(e)===e};var replaceAll=exports.replaceAll=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];for(var o=n.length;o--;){var s=n[o];var i=r;if(Array.isArray(s)){i=s[1];s=s[0]}t=t.replace(s,i)}return t};var isTrue=exports.isTrue=function e(t,r){if(t==null){return!!r}else if(typeof t===\"string\"){var n=parseInt(t);return isNaN(n)?t===\"true\":n!==0}else if(typeof t===\"boolean\"){return t}else if(typeof t===\"number\"){return n!==0}return false};var removeArrayElement=exports.removeArrayElement=function e(t,r){var n=t.indexOf(r);if(n>-1){return t.splice(n,1)[0]}};var getPropertiesByPrefix=exports.getPropertiesByPrefix=function e(t,r,n){var o=makeHashMap();for(var s in t){if(startsWith(s,r)){o[n?s.substr(r.length):s]=t[s]}}return o};var getWithoutPrefix=exports.getWithoutPrefix=function e(t,r){return startsWith(t,r)?t.substr(r.length):t};var hasKeyWithPrefix=exports.hasKeyWithPrefix=function e(t,r){for(var n in t){if(startsWith(n,r)){return true}}return false};var pickRandom=exports.pickRandom=function e(t){return t[getRandomInt(0,t.length-1)]};var getFirstElementByClassName=exports.getFirstElementByClassName=function e(t,r,n){var o=(r||document).getElementsByClassName(t)[0];if(!o&&(typeof n===\"boolean\"?n:true)){var s='Missing element with class \"'+t+'\" inside '+r;throw new _exception.EnvironmentError(s)}return o};var getRandomLabel=exports.getRandomLabel=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=pickRandom([\"exciting\",\"notable\",\"epic\",\"new\",\"fancy\",\"great\",\"cool\",\"fresh\",\"funky\",\"clever\"]);var n=(t.object||pickRandom([\"concept\",\"idea\",\"thought\",\"topic\",\"subject\"]))+(t.plural?\"s\":\"\");return\"My \"+r+\" \"+n};var _merge=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){t={}}for(var n in r){if(r.hasOwnProperty(n)){if(r[n]!=null){t[n]=_typeof(r[n])===\"object\"?e(t[n],r[n]):r[n]}}}return t};var merge=exports.merge=function e(t){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++){n[o-1]=arguments[o]}for(var s=0,i=n.length;s<i;s++){var a=n[s];if(a!=null&&(typeof a===\"undefined\"?\"undefined\":_typeof(a))===\"object\"){t=_merge(t,a)}}return t};var setDomListeners=exports.setDomListeners=function e(t,r,n,o){o=typeof o===\"boolean\"?o:false;t=t+\"EventListener\";for(var s in n){var i=n[s];if(typeof i===\"function\"){r[t](s,i,o)}else{r[t](s,i[0],typeof i[1]===\"boolean\"?i[1]:o)}}};var removeDOMChildNodes=exports.removeDOMChildNodes=function e(t){for(var r=t.childNodes.length;r--;){t.removeChild(t.childNodes[r])}};var mod=exports.mod=function e(t,r){var n=t%r;return Math.floor(n>=0?n:n+r)};var getNearestRasterPosition=exports.getNearestRasterPosition=function e(t,r){var n=t.x,o=t.y;var s=r/2;var i=mod(n,r);var a=mod(o,r);return{x:i<s?n-i:n-i+r,y:a<s?o-a:o-a+r}};var bindTo=exports.bindTo=function e(t,r){for(var n=r.length;n--;){var o=t[r[n]];t[r[n]]=o.bind(t)}};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/basic.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var generateDraftTitle=exports.generateDraftTitle=function e(n){var r=0,t=void 0;do{t=\"Draft \"+(r?r+1+\" \":\"\")+\"of '\"+n+\"'\";r++}while($tw.wiki.tiddlerExists(t));return t};var makeDraftTiddler=exports.makeDraftTiddler=function e(n){var r=$tw.wiki.findDraft(n);if(r){return $tw.wiki.getTiddler(r)}var t=$tw.wiki.getTiddler(n);r=generateDraftTitle(n);var l=new $tw.Tiddler(t,{title:r,\"draft.title\":n,\"draft.of\":n},$tw.wiki.getModificationFields());$tw.wiki.addTiddler(l);return l};var getFullScreenApis=exports.getFullScreenApis=function e(){var n=document,r=n.body,t={_requestFullscreen:r.webkitRequestFullscreen!==undefined?\"webkitRequestFullscreen\":r.mozRequestFullScreen!==undefined?\"mozRequestFullScreen\":r.msRequestFullscreen!==undefined?\"msRequestFullscreen\":r.requestFullscreen!==undefined?\"requestFullscreen\":\"\",_exitFullscreen:n.webkitExitFullscreen!==undefined?\"webkitExitFullscreen\":n.mozCancelFullScreen!==undefined?\"mozCancelFullScreen\":n.msExitFullscreen!==undefined?\"msExitFullscreen\":n.exitFullscreen!==undefined?\"exitFullscreen\":\"\",_fullscreenElement:n.webkitFullscreenElement!==undefined?\"webkitFullscreenElement\":n.mozFullScreenElement!==undefined?\"mozFullScreenElement\":n.msFullscreenElement!==undefined?\"msFullscreenElement\":n.fullscreenElement!==undefined?\"fullscreenElement\":\"\",_fullscreenChange:n.webkitFullscreenElement!==undefined?\"webkitfullscreenchange\":n.mozFullScreenElement!==undefined?\"mozfullscreenchange\":n.msFullscreenElement!==undefined?\"MSFullscreenChange\":n.fullscreenElement!==undefined?\"fullscreenchange\":\"\"};if(!t._requestFullscreen||!t._exitFullscreen||!t._fullscreenElement){return null}else{return t}};var flatten=exports.flatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l=r.prefix||\"\";var i={};function u(e,n){Object.keys(e).forEach(function(f){var s=e[f];var c=r.safe&&Array.isArray(s);var a=Object.prototype.toString.call(s);var d=a===\"[object Object]\"||a===\"[object Array]\";var o=n?n+t+f:l+f;if(!c&&d){return u(s,o)}i[o]=s})}u(n);return i};var unflatten=exports.unflatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l={};if(Object.prototype.toString.call(n)!==\"[object Object]\"){return n}function i(e){var n=Number(e);return isNaN(n)||e.indexOf(\".\")!==-1?e:n}Object.keys(n).forEach(function(u){var f=u.split(t);var s=i(f.shift());var c=i(f[0]);var a=l;while(c!==undefined){if(a[s]===undefined){a[s]=typeof c===\"number\"&&!r.object?[]:{}}a=a[s];if(f.length>0){s=i(f.shift());c=i(f[0])}}a[s]=e(n[u],r)});return l};var genUUID=exports.genUUID=function(){var e=\"0123456789abcdefghijklmnopqrstuvwxyz\".split(\"\");return function(){var n=e,r=new Array(36);var t=0,l;for(var i=0;i<36;i++){if(i==8||i==13||i==18||i==23){r[i]=\"-\"}else if(i==14){r[i]=\"4\"}else{if(t<=2)t=33554432+Math.random()*16777216|0;l=t&15;t=t>>4;r[i]=n[i==19?l&3|8:l]}}return r.join(\"\")}}();\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/thirdParty.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.getArrayValuesAsHashmapKeys=exports.getLookupTable=exports.keyOfItemWithProperty=exports.keysOfItemsWithProperty=exports.getDublicates=exports.getId=exports.refreshDataSet=exports.drawRaster=exports.getPrettyFilter=exports.groupByProperty=exports.isEdgeTypeMatch=exports.getEdgeTypeMatches=exports.getDataUri=exports.convert=exports.getValues=exports.getIterableCollection=exports.getLabel=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getLabel=exports.getLabel=function e(t,r){var i=wikiUtils.getTiddler(t);return(i&&i.fields[r]?i.fields[r]:i.fields.title).replace(\"\\\\n\",\"\\n\")};var getIterableCollection=exports.getIterableCollection=function e(t){return t instanceof _vis2.default.DataSet?t.get():t};var getValues=exports.getValues=function e(t){if(Array.isArray(t)){return t}else if(t instanceof _vis2.default.DataSet){return t.get({returnType:\"Array\"})}var r=[];var i=Object.keys(t);for(var a=i.length;a--;){r.push(t[i[a]])}return r};var convert=exports.convert=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){throw new _exception.InvalidArgumentException(t,r)}if(r===\"object\"){r=\"hashmap\"}var i={array:function e(t){return getValues(t)},hashmap:function e(t){return t instanceof _vis2.default.DataSet?t.get({returnType:\"Object\"}):t},dataset:function e(t){return t instanceof _vis2.default.DataSet?t:!Array.isArray(t)?getValues(t):new _vis2.default.DataSet(t)}};return i[r](t)};var getDataUri=exports.getDataUri=function e(t,r,i){var a=wikiUtils.getTiddler(t);r=r||a.fields.type||\"image/svg+xml\";var s=a.fields.text;var o=$tw.config.contentTypeInfo[r].encoding;if(r===\"image/svg+xml\"){s=s.replace(/\\r?\\n|\\r/g,\" \");if(!basicUtils.hasSubString(\"xmlns\",s)){s=s.replace(/<svg/,'<svg xmlns=\"http://www.w3.org/2000/svg\"')}}if(i&&o!==\"base64\"){o=\"base64\";s=basicUtils.base64(s)}return\"data:\"+r+\";\"+o+\",\"+s};var eTyFiltAutoPrefix=\"[all[]] \";var getEdgeTypeMatches=exports.getEdgeTypeMatches=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments[1];if(!r){r=wikiUtils.getTiddlersByPrefix($tm.path.edgeTypes+\"/\",{iterator:\"eachTiddlerPlusShadows\",removePrefix:true})}if(r!=null&&!Array.isArray(r)){r=Object.keys(r)}return wikiUtils.getMatches(eTyFiltAutoPrefix+t,r)};var isEdgeTypeMatch=exports.isEdgeTypeMatch=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";return wikiUtils.isMatch(t,eTyFiltAutoPrefix+r)};var groupByProperty=exports.groupByProperty=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s in a){var o=t[a[s]];var n=o[r];if(n==null){throw\"Cannot group by property \"+r}else{if(!Array.isArray(i[n])){i[n]=[]}i[n].push(o)}}return i};var getPrettyFilter=exports.getPrettyFilter=function e(t){t=t.trim().replace(\"][\",\"] [\");var r=/[+-]?\\[.+?[\\]\\}\\>]\\]/g;var i=t.match(r);t=t.replace(r,\" [] \").trim();var a=t.split(/\\s+/);var s=0;var o=[];for(var n=0,l=a.length;n<l;n++){o[n]=a[n]===\"[]\"?i[s++]:a[n]}return o.join(\"\\n\")};var drawRaster=exports.drawRaster=function e(t,r,i,a){var s=arguments.length>4&&arguments[4]!==undefined?arguments[4]:\"#D9D9D9\";var o=basicUtils.getNearestRasterPosition(i,a),n=o.x,l=o.y;var u=t.canvas.width/r;var p=t.canvas.height/r;var f=a*2;var v=Math.ceil(u/a/2)*a+f;var c=Math.ceil(p/a/2)*a+f;var y=n-v;var d=n+v;var g=l-c;var h=l+c;t.beginPath();for(var b=y;b<d;b+=a){t.moveTo(b,g);t.lineTo(b,h)}for(var x=g;x<=h;x+=a){t.moveTo(y,x);t.lineTo(d,x)}t.strokeStyle=s;t.fillStyle=s;t.stroke()};var refreshDataSet=exports.refreshDataSet=function e(t,r){var i=t.get({returnType:\"Object\"});var a=[];var s=[];var o=[];var n=[];for(var l in r){if(i[l]){if(basicUtils.isEqual(i[l],r[l])){continue}s.push(l);t.remove(l)}else{a.push(l)}if(r[l].x===undefined){o.push(l)}t.add(r[l])}for(var u in i){if(!r[u]){n.push(u);t.remove(u)}}return{withoutPosition:o,inserted:a,updated:s,removed:n}};var getId=exports.getId=function e(t){return wikiUtils.getTiddler(t).fields[\"tmap.id\"]};var getDublicates=exports.getDublicates=function e(t){var r=getId(t);if(!r){return[]}var i=wikiUtils.getTiddlersWithField(\"tmap.id\",r,{limit:2});delete i[wikiUtils.getTiddlerRef(t)];return Object.keys(i)};var keysOfItemsWithProperty=exports.keysOfItemsWithProperty=function e(t,r,i,a){t=getIterableCollection(t);var s=Object.keys(t);var o=[];a=typeof a===\"number\"?a:s.length;for(var n=0,l=s.length;n<l;n++){var u=s[n];if(_typeof(t[u])===\"object\"&&t[u][r]){if(!i||t[u][r]===i){o.push(u);if(o.length===a){break}}}}return o};var keyOfItemWithProperty=exports.keyOfItemWithProperty=function e(t,r,i){return keysOfItemsWithProperty(t,r,i,1)[0]};var getLookupTable=exports.getLookupTable=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s=0,o=a.length;s<o;s++){var n=a[s];var l=r?t[n][r]:t[n];var u=typeof l===\"undefined\"?\"undefined\":_typeof(l);if(u===\"string\"&&l!==\"\"||u===\"number\"){if(!i[l]){i[l]=r?t[n]:true;continue}}if(r){throw new Error('Cannot use \"'+l+'\" as lookup table index')}}return i};var getArrayValuesAsHashmapKeys=exports.getArrayValuesAsHashmapKeys=getLookupTable;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/tmap.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/utils": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/utils",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.utils=undefined;var _extends=Object.assign||function(i){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var e in t){if(Object.prototype.hasOwnProperty.call(t,e)){i[e]=t[e]}}}return i};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/utils\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _thirdParty=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\");var thirdPartyUtils=_interopRequireWildcard(_thirdParty);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);var _tmap=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\");var tMapUtils=_interopRequireWildcard(_tmap);function _interopRequireWildcard(i){if(i&&i.__esModule){return i}else{var r={};if(i!=null){for(var t in i){if(Object.prototype.hasOwnProperty.call(i,t))r[t]=i[t]}}r.default=i;return r}}var utils=exports.utils=_extends({},basicUtils,thirdPartyUtils,wikiUtils,tMapUtils);exports.default=utils;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/utils.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.touch=exports.addTiddler=exports.getTiddlersByPrefix=exports.getTiddlerWithField=exports.getTiddlersWithField=exports.deleteByPrefix=exports.cp=exports.mv=exports.addTWlisteners=exports.getChildWidgetByProperty=exports.getMergedTiddlers=exports.isSystemOrDraft=exports.isDraft=exports.setText=exports.getText=exports.isLeftVersionGreater=exports.getEntry=exports.setEntry=exports.clone=exports.writeFieldData=exports.parseFieldData=exports.isPreviewed=exports.notify=exports.registerTransclude=exports.getElementNode=exports.getTiddlerNode=exports.getTranscludeNode=exports.isMatch=exports.getMatches=exports.moveFieldValues=exports.deleteTiddlers=exports.setField=exports.setSidebarTab=exports.tiddlerExists=exports.getField=exports.getTiddler=exports.getTiddlerRef=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var getTiddlerRef=exports.getTiddlerRef=function e(t){if(t instanceof $tw.Tiddler){return t.fields.title}else if(typeof t===\"string\"){return t}else{throw new _exception.InvalidArgumentException(t)}};var getTiddler=exports.getTiddler=function e(t){return $tw.wiki.getTiddler(t instanceof $tw.Tiddler?t.fields.title:t)};var getField=exports.getField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"\";var d=getTiddler(t);return!d?i:d.fields[r]||i};var tiddlerExists=exports.tiddlerExists=function e(t){if(!t){return false}var r=getTiddlerRef(t);return Boolean(r&&($tw.wiki.tiddlerExists(r)||$tw.wiki.isShadowTiddler(r)))};var setSidebarTab=exports.setSidebarTab=function e(t){setText(getTiddlersByPrefix(\"$:/state/tab/sidebar-\")[0],t)};var setField=exports.setField=function e(t,r,i){if(!t||!r){return}var d=getTiddlerRef(t);var s=_defineProperty({title:d},r,i);var n=$tw.wiki.getTiddler(d,true);if(r!==\"text\"&&n&&!n.fields.text){s.text=\"\"}n=new $tw.Tiddler(n,s);$tw.wiki.addTiddler(n);return n};var deleteTiddlers=exports.deleteTiddlers=function e(t){var r=Object.keys(t);var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");for(var d=r.length;d--;){var s=getTiddlerRef(t[r[d]]);if(!$tw.wiki.tiddlerExists(t[r[d]])){continue}var n=i.indexOf(s);if(n!==-1){i.splice(n,1);setField(\"$:/StoryList\",\"list\",i)}$tw.wiki.deleteTiddler(s)}};var moveFieldValues=exports.moveFieldValues=function e(t,r,i,d,s){if(t===r)return;var n=s||$tw.wiki.allTitles();for(var l=n.length;l--;){var a=getTiddler(n[l]);if(a.isDraft()||!a.fields[t]){continue}if(!d&&$tw.wiki.isSystemTiddler(n[l])){continue}var o=_defineProperty({},r,a.fields[t]);if(i){o[t]=undefined}$tw.wiki.addTiddler(new $tw.Tiddler(a,o))}};var getMatches=exports.getMatches=function e(t,r,i){var d=undefined;var s=$tw.wiki;if(typeof t===\"string\"){t=s.compileFilter(t)}if(r!=null&&(typeof r===\"undefined\"?\"undefined\":_typeof(r))===\"object\"){if(!Array.isArray(r)){r=Object.keys(r)}d=function e(t){for(var i=r.length;i--;){var d=s.getTiddler(r[i]);t(d,r[i])}}}return t.call(s,d,i)};var isMatch=exports.isMatch=function e(t,r){return getTiddlerRef(t)===getMatches(r,[getTiddlerRef(t)])[0]};var getTranscludeNode=exports.getTranscludeNode=function e(t,r){return{type:\"transclude\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[],isBlock:!!r}};var getTiddlerNode=exports.getTiddlerNode=function e(t){return{type:\"tiddler\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[]}};var getElementNode=exports.getElementNode=function e(t,r,i){return{type:\"element\",tag:t,attributes:{class:{type:\"string\",value:r}},children:i?[{type:\"text\",text:i}]:[]}};var registerTransclude=exports.registerTransclude=function e(t,r,i){basicUtils.removeArrayElement(t.children,t[r]);t[r]=t.makeChildWidget(getTranscludeNode(i,true));t.children.push(t[r]);return t[r]};var notify=exports.notify=function e(t){var r=\"$:/temp/tiddlymap/notify\";$tw.wiki.addTiddler(new $tw.Tiddler({title:r,text:t}));$tw.notifier.display(r)};var isPreviewed=exports.isPreviewed=function e(t){if(!t){return false}if(t.domNode.isTiddlyWikiFakeDom){return true}if(t.getVariable(\"tv-tiddler-preview\")){return true}else{var r=\"tc-tiddler-preview-preview\";return!!basicUtils.getAncestorWithClass(t.parentDomNode,r)}};var parseFieldData=exports.parseFieldData=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"text\";var i=arguments[2];var d=getTiddler(t);if(!d){return i}return basicUtils.parseJSON(d.fields[r],i)};var writeFieldData=exports.writeFieldData=function e(t,r,i,d){if((typeof i===\"undefined\"?\"undefined\":_typeof(i))!==\"object\"){return}d=parseInt(d);d=d>0&&r===\"text\"?d:0;setField(t,r,JSON.stringify(i,null,d))};var clone=exports.clone=function e(t,r){setField(t,\"title\",r)};var setEntry=exports.setEntry=function e(t,r,i){$tw.wiki.setText(getTiddlerRef(t),null,r,i)};var getEntry=exports.getEntry=function e(t,r,i){var d=$tw.wiki.getTiddlerData(getTiddlerRef(t),{});return d[r]==null?i:d[r]};var isLeftVersionGreater=exports.isLeftVersionGreater=function e(t,r){return t!==r&&$tw.utils.checkVersions(t,r)};var getText=exports.getText=function e(t,r){return getField(t,\"text\",r)};var setText=exports.setText=function e(t,r){setField(t,\"text\",r)};var isDraft=exports.isDraft=function e(t){var r=getTiddler(t);return r&&r.isDraft()};var isSystemOrDraft=exports.isSystemOrDraft=function e(t){return $tw.wiki.isSystemTiddler(getTiddlerRef(t))||isDraft(t)};var getMergedTiddlers=exports.getMergedTiddlers=function e(t,r){if(!Array.isArray(t)){return}for(var i=t.length;i--;){t[i]=getTiddler(t[i])}if(!t.length){return}t.push({title:r||t[0].fields.title},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());t.unshift(null);return new(Function.prototype.bind.apply($tw.Tiddler,t))};var getChildWidgetByProperty=exports.getChildWidgetByProperty=function e(t,r,i){var d=t.children;for(var s=d.length;s--;){var n=d[s];if(n[r]===i){return n}else{n=e(n,r,i);if(n){return n}}}};var addTWlisteners=exports.addTWlisteners=function e(t,r,i){for(var d in t){r.addEventListener(d,t[d].bind(i))}};var mv=exports.mv=function e(t,r,i,d){if(t===r||!t||!r){return}i=typeof i===\"boolean\"?i:false;d=typeof d===\"boolean\"?d:true;var s=getTiddlersByPrefix(t);var n=basicUtils.makeHashMap();for(var l=s.length;l--;){var a=s[l];var o=a.replace(t,r);if($tw.wiki.tiddlerExists(o)&&!i){return}n[a]=o}for(var f in n){setField(f,\"title\",n[f]);if(d){$tw.wiki.deleteTiddler(f)}}return n};var cp=exports.cp=function e(t,r,i){return mv(t,r,i,false)};var deleteByPrefix=exports.deleteByPrefix=function e(t,r){if(!t){return}r=r||$tw.wiki.allTitles();var i=[];for(var d=r.length;d--;){if(basicUtils.startsWith(r[d],t)){$tw.wiki.deleteTiddler(r[d]);i.push(i[d])}}return i};var getTiddlersWithField=exports.getTiddlersWithField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var d=i.tiddlers||$tw.wiki.allTitles();var s=i.isIncludeDrafts===true;var n=basicUtils.makeHashMap();var l=Object.keys(d);var a=$tw.utils.hop;var o=i.limit||0;for(var f=l.length;f--;){var u=getTiddler(d[l[f]]);var p=u.fields;if(a(p,t)&&(!a(p,\"draft.of\")||s)){if(!r||p[t]===r){n[p.title]=u;if(--o===0){break}}}}return n};var getTiddlerWithField=exports.getTiddlerWithField=function e(t,r){return Object.keys(getTiddlersWithField(t,r,{limit:1}))[0]};var getTiddlersByPrefix=exports.getTiddlersByPrefix=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=r.removePrefix===true;var d=[];var s=$tw.wiki[r.iterator||\"each\"];s(function(e,r){if(basicUtils.startsWith(r,t)){d.push(i?basicUtils.getWithoutPrefix(r,t):r)}});return d};var addTiddler=exports.addTiddler=function e(t,r){var i=getTiddler(t);if(!r&&i){return i}i=new $tw.Tiddler({title:t,text:\"\"},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());$tw.wiki.addTiddler(i);return i};var touch=exports.touch=function e(t){if(!t){return}var r=new $tw.Tiddler(getTiddler(t),$tw.wiki.getModificationFields());$tw.wiki.addTiddler(r)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/wiki.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/macro/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/macro/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.params=exports.name=exports.run=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\ntitle: $:/plugins/felixhayashi/tiddlymap/js/macro/tmap\ntype: application/javascript\nmodule-type: macro\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var name=\"tmap\";var params=getParamSlots(5);function run(){this.substVarRefs=this.substituteVariableReferences;var e=command[arguments[0]];var t=null;if(typeof e===\"function\"){var r=Array.prototype.slice.call(arguments,1);t=e.apply(this,r)}return typeof t===\"string\"?t:\"\"}function getParamSlots(e){var t=[];for(var r=0;r<e;r++){t.push({name:\"arg\"+r})}return t}var command=_utils2.default.makeHashMap();command.basename=function(e){var t=this.getVariable(\"currentTiddler\");return _utils2.default.getBasename(t,e)};command.datauri=function(e,t){return _utils2.default.getDataUri(e,t,true)};command.testJSON=function(e){var t=$tw.wiki.getTiddler(this.getVariable(\"currentTiddler\"));try{JSON.parse(t.fields[e]);return\"valid\"}catch(e){return\"malformed\"}};command.splitAndSelect=function(e,t){var r=this.getVariable(\"currentTiddler\");var a=r.split(e)[t];return a!=null?a:r};command.concat=function(){var e=\"\";for(var t=1,r=arguments.length;t<r;t++){e+=arguments[t]}return e};command.uuid=function(){return _utils2.default.genUUID()};command.regRepl=function(){var e=this.substVarRefs(arguments[0]);var t=arguments[1];var r=this.substVarRefs(arguments[2]);var a=this.substVarRefs(arguments[4]);return e.replace(new RegExp(t,a),r)};command.halfOfString=function(){var e=this.substVarRefs(arguments[0]);if(!e){return\"\"}return e.substr(0,Math.ceil(e.length/2))};command.isETyVisible=function(e,t){e=new _ViewAbstraction2.default(e);var r=command.getETyId.call(this,e,t);return\"\"+e.isEdgeTypeVisible(r)};command.getETyId=function(e,t){e=new _ViewAbstraction2.default(e);var r=_EdgeType2.default.getInstance(t||this.getVariable(\"currentTiddler\"));if(!r.namespace){var a=_EdgeType2.default.getIdParts(r.id),n=a.marker,i=a.name;var u=e.getConfig(\"edge_type_namespace\");r=_EdgeType2.default.getInstance(_EdgeType2.default.getId(n,u,i))}return r.id};command.scale=function(){var e=\"\";for(var t=1,r=parseInt(arguments[0]);t<r;t++){e+=\"[[\"+t+\"]]\"}return e};command.mergeFields=function(){var e=_utils2.default.getTiddler(arguments[0]);var t=arguments[1];var r=arguments[2]||\" \";if(!e)return;var a=_utils2.default.getPropertiesByPrefix(e.fields,t);var n=\"\";for(var i in a){if(typeof a[i]===\"string\"){n+=a[i]+r}}return n};command.option=function(e,t){if(typeof $tm==\"undefined\"){return\"\"}var r=$tm;var a=e.split(\".\");for(var n=0;n<a.length;n++){if((typeof r===\"undefined\"?\"undefined\":_typeof(r))==\"object\"&&r[a[n]]){r=r[a[n]]}}if(t&&typeof r===\"string\"&&_utils2.default.hasSubString(t)&&r.lastIndexOf(t)+t.length===r.length){r=r+t}return r};exports.run=run;exports.name=name;exports.params=params;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/macro/MapMacro.js.map\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/plugins/felixhayashi/tiddlymap/js/Adapter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Adapter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Adapter\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _contrastcolour=require(\"$:/core/modules/macros/contrastcolour.js\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Adapter=function(){function e(t,i){_classCallCheck(this,e);this.getTiddlerById=t.getTiddlerById.bind(t);this.getId=t.getIdByTiddler.bind(t);this.assignId=t.assignId.bind(t);this.edgeTypeSubscriberRegistry=i;this.indeces=$tm.indeces;this.wiki=$tw.wiki;this.visShapesWithTextInside=_utils2.default.getLookupTable([\"ellipse\",\"circle\",\"database\",\"box\",\"text\"])}_createClass(e,[{key:\"deleteEdge\",value:function e(t){return this._processEdge(t,\"delete\")}},{key:\"insertEdge\",value:function e(t){return this._processEdge(t,\"insert\")}},{key:\"deleteEdges\",value:function e(t){t=_utils2.default.convert(t,\"array\");for(var i=t.length;i--;){this.deleteEdge(t[i])}}},{key:\"_processEdge\",value:function e(t,i){$tm.logger(\"debug\",\"Edge\",i,t);var r=this.getTiddlerById(t.from);if(!r||!_utils2.default.tiddlerExists(r)){return}var a=_utils2.default.getTiddler(r);var s=this.indeces.allETy[t.type]||_EdgeType2.default.getInstance(t.type);var l=this.edgeTypeSubscriberRegistry.getAllForType(s);var n=i+\"Edge\";for(var d=l.length;d--;){l[d][n](a,t,s)}if(i===\"insert\"&&!s.exists()){s.save()}return t}},{key:\"getAdjacencyList\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Creating adjacency list\");if(!i.edges){var r=_utils2.default.getMatches(env.selector.allPotentialNodes);i.edges=this.getEdgesForSet(r,i.toWL,i.typeWL)}var a=_utils2.default.groupByProperty(i.edges,t||\"to\");$tm.stop(\"Creating adjacency list\");return a}},{key:\"getNeighbours\",value:function e(t){var i=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Get neighbours\");var a=r.addProperties,s=r.toWL,l=r.typeWL,n=r.steps;var d=this.indeces.allETy;var o=_utils2.default.getArrayValuesAsHashmapKeys(t);var u=_ViewAbstraction2.default.exists(r.view)?new _ViewAbstraction2.default(r.view):null;var f=_utils2.default.makeHashMap();var g=_utils2.default.makeHashMap();var c=parseInt(n)>0?n:1;var v=r.direction||u&&u.getConfig(\"neighbourhood_directions\");var y=!v||v===\"both\";var h=y||v===\"in\";var p=y||v===\"out\";var _=u&&\"[all[]] \"+u.getNodeFilter(\"raw\");var b=this.getAdjacencyList(\"to\",r);var m=function e(t,r,s){f[t.id]=t;var l=i.getTiddlerById(t[r]);if(u&&_utils2.default.isTrue($tm.config.sys.nodeFilterNeighbours)&&!_utils2.default.isMatch(l,_)){return}if(!o[l]){o[l]=true;var n=i.makeNode(l,a);if(n){g[n.id]=n;s.push(l)}}};var w=void 0;for(w=0;w<c&&t.length;w++){var T=[];for(var k=t.length;k--;){if(_utils2.default.isSystemOrDraft(t[k])){continue}var E=this.getEdges(t[k],s,l);for(var N in E){var A=d[E[N].type];if(y||p&&A.toArrow||h&&A.invertedArrow){m(E[N],\"to\",T)}}var I=b[this.getId(t[k])];if(!I){continue}for(var j=I.length;j--;){var x=d[I[j].type];if(y||h&&x.toArrow||p&&x.invertedArrow){m(I[j],\"from\",T)}}}t=T}var S={nodes:g,edges:f};$tm.logger(\"debug\",\"Retrieved neighbourhood\",S,\"steps\",w);$tm.stop(\"Get neighbours\");return S}},{key:\"getGraph\",value:function e(t){var i=t.view,r=t.matches,a=t.includeNeighboursOf;$tm.start(\"Assembling Graph\");i=new _ViewAbstraction2.default(i);r=r||_utils2.default.getMatches(i.getNodeFilter(\"compiled\"));var s=parseInt(i.getConfig(\"neighbourhood_scope\"));var l=i.getEdgeTypeFilter(\"whitelist\");var n=_utils2.default.getArrayValuesAsHashmapKeys(r);var d=this.getEdgesForSet(r,n,l);var o=void 0;if(i.isEnabled(\"filter_nodes_by_edge_types\")){o=new Set;Object.values(d).forEach(function(e){o.add(e.from);o.add(e.to)})}var u={edges:d,nodes:this.selectNodesByReferences(r,{view:i,outputType:\"hashmap\"})};if(s){var f=a?r.filter(a):r;var g=this.getNeighbours(f,{steps:s,view:i,typeWL:l,addProperties:{type:\"tmap:neighbour\"}});Object.assign(u.nodes,g.nodes);Object.assign(u.edges,g.edges);if(i&&i.isEnabled(\"show_inter_neighbour_edges\")){var c=this.getTiddlersByIds(g.nodes);var v=_utils2.default.getArrayValuesAsHashmapKeys(c);Object.assign(u.edges,this.getEdgesForSet(c,v))}}if(o){var y=_utils2.default.makeHashMap();Object.values(u.nodes).forEach(function(e){if(o.has(e.id)){y[e.id]=e}});u.nodes=y}this.attachStylesToNodes(u.nodes,i);$tm.stop(\"Assembling Graph\");$tm.logger(\"debug\",\"Assembled graph:\",u);return u}},{key:\"getEdges\",value:function e(t,i,r){var a=_utils2.default.getTiddler(t);if(!a||_utils2.default.isSystemOrDraft(a)){return}var s=this.indeces.allETy;var l=_utils2.default.makeHashMap();var n=this.edgeTypeSubscriberRegistry.getAll();for(var d=0,o=n.length;d<o;d++){Object.assign(l,n[d].loadEdges(a,i,r))}for(var u in l){var f=l[u];if(!f.from||!f.to){continue}var g=s[f.type]||_EdgeType2.default.getInstance(f.type);addStyleToEdge(l[u],g);l[u]=f}return l}},{key:\"getEdgesForSet\",value:function e(t,i,r){var a=_utils2.default.makeHashMap();for(var s=t.length;s--;){Object.assign(a,this.getEdges(t[s],i,r))}return a}},{key:\"selectEdgesByType\",value:function e(t){var i=_utils2.default.makeHashMap(_defineProperty({},_EdgeType2.default.getInstance(t).id,true));return this.getEdgesForSet(this.getAllPotentialNodes(),null,i)}},{key:\"getAllPotentialNodes\",value:function e(){return _utils2.default.getMatches($tm.selector.allPotentialNodes)}},{key:\"_processEdgesWithType\",value:function e(t,i){var r=i.action,a=i.newName;t=_EdgeType2.default.getInstance(t);$tm.logger(\"debug\",\"Processing edges\",t,r);var s=this.selectEdgesByType(t);if(r===\"rename\"){new _EdgeType2.default(a,t).save()}for(var l in s){this._processEdge(s[l],\"delete\");if(r===\"rename\"){s[l].type=a;this._processEdge(s[l],\"insert\")}}this.wiki.deleteTiddler(t.fullPath)}},{key:\"selectNodesByReferences\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=i.addProperties,a=i.outputType;var s=_utils2.default.makeHashMap();var l=Object.keys(t);for(var n=l.length;n--;){var d=this.makeNode(t[l[n]],r);if(d){s[d.id]=d}}return _utils2.default.convert(s,a)}},{key:\"selectNodesByIds\",value:function e(t,i){var r=this.getTiddlersByIds(t);return this.selectNodesByReferences(r,i)}},{key:\"selectNodeById\",value:function e(t,i){i=Object.assign({},i,{outputType:\"hashmap\"});var r=this.selectNodesByIds([t],i);return r[t]}},{key:\"removeNodeType\",value:function e(t){t=_NodeType2.default.getInstance(t);this.wiki.deleteTiddler(t.fullPath)}},{key:\"makeNode\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r||_utils2.default.isSystemOrDraft(r))return;var a=_utils2.default.merge({},i);a.id=this.assignId(r);a.tRef=r.fields.title;var s=r.fields[$tm.field.nodeLabel];a.label=(s&&$tm.field.nodeLabel!==\"title\"?this.wiki.renderText(\"text/plain\",\"text/vnd-tiddlywiki\",s):r.fields.title).replace(\"\\\\n\",\"\\n\");return a}},{key:\"getInheritedNodeStyles\",value:function e(t){var i=this.getTiddlersByIds(t);var r={};var a=this.indeces.glNTy;for(var s=a.length;s--;){var l=a[s];var n=[];if(l.id===\"tmap:neighbour\"){for(var d in t){if(t[d].type===\"tmap:neighbour\"){n.push(this.getTiddlerById(d))}}}else{n=l.getInheritors(i)}for(var o=n.length;o--;){var u=n[o];var f=r[u]=r[u]||{};f.style=_utils2.default.merge(f.style||{},l.style);if(l[\"fa-icon\"]){f[\"fa-icon\"]=l[\"fa-icon\"]}else if(l[\"tw-icon\"]){f[\"tw-icon\"]=l[\"tw-icon\"]}}}return r}},{key:\"attachStylesToNodes\",value:function e(t,i){i=_ViewAbstraction2.default.exists(i)?new _ViewAbstraction2.default(i):null;var r=this.getInheritedNodeStyles(t);var a=i?i.getNodeData():_utils2.default.makeHashMap();var s=i&&!i.isEnabled(\"physics_mode\");for(var l in t){var n=this.getTiddlerById(l);var d=this.wiki.getTiddler(n);var o=d.fields;var u=t[l];var f=void 0;var g=r[n];if(g){_utils2.default.merge(u,g.style);f=getIcon(g[\"fa-icon\"],g[\"tw-icon\"])}if(o.color){u.color=o.color}if(o[\"tmap.style\"]){_utils2.default.merge(u,_utils2.default.parseJSON(o[\"tmap.style\"]))}f=getIcon(o[\"tmap.fa-icon\"],o[\"icon\"])||f;var c=a[l];if(c){_utils2.default.merge(u,c);if(s){u.fixed={x:u.x!=null,y:u.y!=null}}f=getIcon(c[\"fa-icon\"],c[\"tw-icon\"])||f}var v=u.color!==null&&_typeof(u.color)===\"object\";var y=v?u.color.background:u.color;u.color={background:y,border:v?u.color.border:undefined};addNodeIcon(u,f);u.font=u.font||{};if(u.shape&&!this.visShapesWithTextInside[u.shape]){u.font.color=\"black\"}else if(!u.font.color&&y){u.font.color=(0,_contrastcolour.run)(y,y,\"black\",\"white\")}if(u.shape===\"icon\"){u.label=\"\\n\"+u.label;if(_typeof(u.icon)===\"object\"){u.icon.color=y}}}if(i){var h=t[i.getConfig(\"central-topic\")];if(h){_utils2.default.merge(h,this.indeces.glNTyById[\"tmap:central-topic\"].style)}}}},{key:\"deleteNode\",value:function e(t){if(!t){return}var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;var r=this.getTiddlerById(i);if(r){_utils2.default.deleteTiddlers([r])}var a=_utils2.default.getMatches(env.selector.allViews);for(var s=a.length;s--;){var l=new _ViewAbstraction2.default(a[s]);l.removeNode(i)}var n=this.getNeighbours([r]);this.deleteEdges(n.edges)}},{key:\"deleteNodes\",value:function e(t){for(var i=t.length;i--;){this.deleteNode(t[i])}}},{key:\"insertNode\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=arguments[1];var r=arguments[2];t.label=this.wiki.generateNewTitle(t.label||_utils2.default.getRandomLabel());var a=new $tw.Tiddler({text:\"\"},r,{title:t.label,\"tmap.id\":null},this.wiki.getModificationFields(),this.wiki.getCreationFields());this.wiki.addTiddler(a);t=this.makeNode(a,t);if(_ViewAbstraction2.default.exists(i)){new _ViewAbstraction2.default(i).addNode(t)}return t}},{key:\"getTiddlersByIds\",value:function e(t){if(Array.isArray(t)){t=_utils2.default.getArrayValuesAsHashmapKeys(t)}else if(t instanceof _vis2.default.DataSet){t=_utils2.default.getLookupTable(t,\"id\")}var i=[];for(var r in t){var a=this.getTiddlerById(r);if(a){i.push(a)}}return i}}]);return e}();var getFAdigits=function e(t){return t.length===4?t:t.substr(3,4)};var addNodeIcon=function e(t,i){if(!i){return}if(i.fa){t.shape=\"icon\";t.icon={shape:\"icon\",face:\"FontAwesome\",color:t.color,code:String.fromCharCode(\"0x\"+getFAdigits(i.fa))};if(t.size){t.icon.size=t.size}return}if(i.tw){var r=_utils2.default.getTiddler(i.tw);if(!r){return}if(r.fields[\"_canonical_uri\"]){t.image=r.fields[\"_canonical_uri\"];t.shape=\"image\"}else if(r.fields.text){t.image=_utils2.default.getDataUri(r);t.shape=\"image\"}}};var removeObsoleteViewData=function e(t,i){if(!_ViewAbstraction2.default.exists(i)||!t){return}i=new _ViewAbstraction2.default(i);var r=i.getNodeData();var a=0;for(var s in r){if(t[s]===undefined&&r[s]!=null){r[s]=undefined;a++}}if(a){$tm.logger(\"debug\",\"[Cleanup]\",\"Removed obsolete node data:\",i.getLabel(),a);i.saveNodeData(r)}};var addStyleToEdge=function e(t,i){t=Object.assign(t,i.style);if(_utils2.default.isTrue(i[\"show-label\"],true)){t.label=i.getLabel()}};var getIcon=function e(t,i){return t&&{fa:t}||i&&{tw:i}};exports.default=Adapter;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Adapter.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/CallbackManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/CallbackManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var CallbackManager=function(){function e(){_classCallCheck(this,e);this.callbacks=_utils2.default.makeHashMap();this.logger=$tm.logger;this.wiki=$tw.wiki}_createClass(e,[{key:\"add\",value:function e(t,a){var l=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;this.logger(\"debug\",'A callback was registered for changes of \"'+t+'\"');this.callbacks[t]={execute:a,isDeleteOnCall:l}}},{key:\"remove\",value:function e(t){if(!t){return}if(typeof t===\"string\"){t=[t]}for(var a=t.length;a--;){var l=t[a];if(this.callbacks[l]){this.logger(\"debug\",'Deleting callback for \"'+l+'\"');delete this.callbacks[l]}}}},{key:\"refresh\",value:function e(t){if(this.callbacks.length==0){return}for(var a in t){if(!this.callbacks[a]){continue}if(this.wiki.getTiddler(a)){this.logger(\"debug\",\"Executing a callback for: \"+a);this.callbacks[a].execute(a);if(!this.callbacks.isDeleteOnCall){continue}}this.remove(a)}}}]);return e}();exports.default=CallbackManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/CallbackManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _rebuilders;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/caretaker\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Fixer=require(\"$:/plugins/felixhayashi/tiddlymap/js/Fixer\");var _Fixer2=_interopRequireDefault(_Fixer);var _Adapter=require(\"$:/plugins/felixhayashi/tiddlymap/js/Adapter\");var _Adapter2=_interopRequireDefault(_Adapter);var _tracker=require(\"$:/plugins/felixhayashi/tiddlymap/js/services/tracker\");var _tracker2=_interopRequireDefault(_tracker);var _EdgeTypeSubscriberRegistry=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\");var _EdgeTypeSubscriberRegistry2=_interopRequireDefault(_EdgeTypeSubscriberRegistry);var _DialogManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/DialogManager\");var _DialogManager2=_interopRequireDefault(_DialogManager);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _vis3=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis4=_interopRequireDefault(_vis3);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _URL=require(\"$:/plugins/felixhayashi/tiddlymap/js/URL\");var _URL2=_interopRequireDefault(_URL);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var init=function e(){window.$tm=_extends({},env,{utils:_utils2.default,url:new _URL2.default(window.location.href)});cleanup();registerPublicClasses($tm);updateGlobals($tm);createMetaFile($tm.logger);var t=attachIndeces($tm);var r=getInitializedServices(t);Object.assign($tm,r);loadDefaultView($tm.config.sys.defaultView);r.fixer.fix();$tm.registry=[];setInterval(routineCheck,5e3);registerChangeListener($tm.callbackManager);registerMousemoveListener();registerClickListener();if($tm.url.query[\"tmap-enlarged\"]){prepareFullscreenStart($tm.url)}$tm.logger(\"warn\",\"TiddlyMap's caretaker successfully started\")};var getInitializedServices=function e(t){var r=new _tracker2.default(d);var i=$tw.modules.applyMethods(\"tmap.edgetypehandler\");var a=new _EdgeTypeSubscriberRegistry2.default(i,t.allETy,r);var s=new _Adapter2.default(r,a);var l=new _CallbackManager2.default;var n=new _DialogManager2.default(l);var d=new _Fixer2.default(s,$tm.logger,t.glNTy);return{edgeTypeSubscriberRegistry:a,tracker:r,adapter:s,callbackManager:l,dialogManager:n,fixer:d}};var registerPublicClasses=function e(t){t.keycharm=_vis4.default.keycharm;t.NodeType=_NodeType2.default;t.EdgeType=_EdgeType2.default;t.ViewAbstraction=_ViewAbstraction2.default};var attachOptions=function e(t){var r=t;if(!r.config)r.config=_utils2.default.makeHashMap();r.config.sys=_utils2.default.merge(r.config.sys,_utils2.default.unflatten($tw.wiki.getTiddlerData(env.ref.sysUserConf)));r.config.vis=_utils2.default.merge({},_vis2.default,_utils2.default.parseFieldData(env.ref.visUserConf));if(!r.field)r.field=_utils2.default.makeHashMap();$tw.utils.extend(r.field,r.config.sys.field)};var attachIndeces=function e(t){$tm.start(\"Attaching Indeces\");t.indeces=t.indeces||{};updateNodeTypesIndeces(t.indeces);updateEdgeTypesIndeces(t.indeces);$tm.stop(\"Attaching Indeces\");return t.indeces};var updateNodeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.nodeTypes;var i=t.glNTy=[];var a=t.glNTyById=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var s=_NodeType2.default.getInstance(t);a[s.id]=s;i.push(s)}});i.sort(function(e,t){return e.priority-t.priority})};var updateEdgeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.edgeTypes;var i=t.allETy=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var a=_EdgeType2.default.getInstance(t);i[a.id]=a}});if($tm.edgeTypeSubscriberRegistry){$tm.edgeTypeSubscriberRegistry.updateIndex(i)}};var attachFunctions=function e(t){var r=t;var i=function e(){};if(_utils2.default.isTrue($tm.config.sys.debug,false)&&console){r.logger=function(){if(arguments.length<2)return;var e=Array.prototype.slice.call(arguments);var t=e.shift(e);var r=console.hasOwnProperty(t)?t:\"debug\";console[r].apply(console,e)};r.start=function(e){console.time(\"[timer] \"+e)};r.stop=function(e){console.timeEnd(\"[timer] \"+e)}}else{r.logger=r.start=r.stop=i}r.notify=_utils2.default.isTrue($tm.config.sys.notifications)?_utils2.default.notify:i};var routineCheck=function e(){for(var t=$tm.registry.length;t--;){var r=$tm.registry[t];if(!r.destruct||!r.isZombieWidget)return;if(r.isZombieWidget()){$tm.logger(\"warn\",\"a widget will be removed\");$tm.registry.splice(t,1);r.destruct()}}};var dispatchUpdates=function e(t){var r=$tm.registry;for(var i=r.length;i--;){var a=r[i];if(a.update&&a.isZombieWidget&&!a.isZombieWidget()){a.update(t)}}};var checkForClone=function e(t){var r=_utils2.default.getDublicates(t);if(!r.length){return}_utils2.default.setField(t,\"tmap.edges\",undefined);$tm.tracker.assignId(t,true);$tm.dialogManager.open(\"dublicateIdInfo\",{param:{changedTiddler:t.fields.title,filter:_utils2.default.joinAndWrap(r,\"[[\",\"]]\"),id:_utils2.default.getId(t)}})};var updateGlobals=function e(t){attachOptions($tm);attachFunctions($tm);$tm.logger(\"warn\",\"Rebuilt globals\")};var lastCurrentTiddler=null;var updateLiveViewTrigger=function e(t){if(t[\"$:/HistoryList\"]){var r=_utils2.default.getField(\"$:/HistoryList\",\"current-tiddler\")}else if(t[\"$:/temp/focussedTiddler\"]){var r=_utils2.default.getField(\"$:/temp/focussedTiddler\",\"text\")}if(r!=null&&lastCurrentTiddler!==r){lastCurrentTiddler=r;_utils2.default.setField(\"$:/temp/tmap/currentTiddler\",\"text\",r)}};var printChanges=function e(t,r){if(!_utils2.default.isTrue($tm.config.sys.debug,false))return;$tm.logger(\"warn\",\"=== Refresh \"+r+\" ===\");for(var i in t){var a=t[i].deleted?\"[Deleted]\":\"[Modified]\";$tm.logger(\"warn\",a,i,$tw.wiki.getTiddler(i))}};var registerMousemoveListener=function e(){$tm.mouse={};var t=function e(t){$tm.mouse=t};window.addEventListener(\"mousemove\",t,false)};var registerClickListener=function e(){var t=$tm.path.tempPopups;window.addEventListener(\"click\",function(e){var r=_utils2.default.getTiddlersByPrefix(t);for(var i=r.length;i--;){if(_utils2.default.getText(r[i]))break}if(i===-1)return;if(!$tw.utils.hasClass(e.target,\"tc-drop-down\")&&!_utils2.default.getAncestorWithClass(e.target,\"tc-drop-down\")){for(var i=r.length;i--;){_utils2.default.setText(r[i],\"\")}}},false)};var registerChangeListener=function e(t){var r=0;$tw.wiki.addEventListener(\"change\",function(e){$tm.start(\"Caretaker handling changes\");printChanges(e,r++);t.refresh(e);var i={changedTiddlers:{}};for(var a in e){var s=_utils2.default.getTiddler(a);if(s&&s.isDraft()){continue}var l=handleTiddlerChange(a,s,i);if(l){i.changedTiddlers[a]=e[a]}}dispatchUpdates(i);updateLiveViewTrigger(e);$tm.stop(\"Caretaker handling changes\")})};var rebuilders=(_rebuilders={},_defineProperty(_rebuilders,env.path.options,updateGlobals),_defineProperty(_rebuilders,env.path.nodeTypes,updateNodeTypesIndeces),_defineProperty(_rebuilders,env.path.edgeTypes,updateEdgeTypesIndeces),_rebuilders);var handleTiddlerChange=function e(t,r,i){if($tw.wiki.isSystemTiddler(t)){for(var a in rebuilders){if(_utils2.default.startsWith(t,a)&&!i[a]){$tm.logger(\"warn\",\"[System change]\",a);rebuilders[a]();i[a]=true}}}else if(r){if(r.fields.text===undefined){$tw.wiki.dispatchEvent(\"lazyLoad\",t);return false}checkForClone(r);$tm.tracker.assignId(r)}else{var s=$tm.tracker.getIdByTiddler(t);if(!s){return false}var l=_utils2.default.getTiddlerWithField(\"tmap.id\",s);if(l){$tm.logger(\"warn\",\"[Renamed]\",t,\"into\",l)}else{$tm.adapter.deleteNode(s)}}return true};var cleanup=function e(){_utils2.default.deleteByPrefix(\"$:/temp/felixhayashi\");_utils2.default.deleteByPrefix(\"$:/temp/tiddlymap\");_utils2.default.deleteByPrefix(\"$:/temp/tmap\")};var loadDefaultView=function e(t){if(!t){return}var r=_utils2.default.getTiddler(env.ref.defaultViewHolder);if(r.fields.text===$tm.config.sys.defaultView){return}_utils2.default.setText(env.ref.defaultViewHolder,$tm.config.sys.defaultView)};var prepareFullscreenStart=function e(t){var r=env.ref,i=r.mainEditor,a=r.defaultViewHolder;_utils2.default.setSidebarTab(i);if(_ViewAbstraction2.default.exists(t)){t=new _ViewAbstraction2.default(t);_utils2.default.setField(a,\"text\",t.getLabel())}};var createMetaFile=function e(t){if(_utils2.default.tiddlerExists(env.ref.sysMeta)){return}t(\"warn\",\"Creating meta file\");var r=$tw.wiki.getTiddler(env.path.pluginRoot);$tw.wiki.setTiddlerData(env.ref.sysMeta,{originalVersion:r.fields.version,dataStructureState:\"0.6.9\",showWelcomeMessage:true})};var name=exports.name=\"tmap.caretaker\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"startup\"];var before=exports.before=[\"rootwidget\"];var synchronous=exports.synchronous=true;var startup=exports.startup=init;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Caretaker.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/DialogManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/DialogManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/DialogManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var DialogManager=function(){function e(t,a){_classCallCheck(this,e);this.callbackManager=t;this.context=a}_createClass(e,[{key:\"open\",value:function t(a){var l=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=arguments[2];if(_utils2.default.isTrue($tm.config.sys.suppressedDialogs[a],false)){$tm.logger(\"warning\",\"Suppressed dialog\",a);return}$tm.logger(\"debug\",\"Dialog param object\",l);if(typeof i===\"function\"&&this.context){i=i.bind(this.context)}var r=$tm.path.tempRoot+\"/dialog-\"+_utils2.default.genUUID();var n=_utils2.default.getTiddler($tm.path.dialogs+\"/\"+a);var u={title:r,buttons:n.fields[\"buttons\"]||\"ok_cancel\",classes:\"tmap-modal-content \"+n.fields[\"classes\"],output:r+\"/output\",result:r+\"/result\",temp:r+\"/temp\",template:n.fields.title,templateId:a,currentTiddler:r+\"/output\",text:_utils2.default.getText($tm.path.dialogs)};_utils2.default.touch(u.output);if(l.dialog){if(l.dialog.preselects){$tw.wiki.addTiddler(new $tw.Tiddler({title:u.output},_utils2.default.flatten(l.dialog.preselects)));delete l.dialog.preselects}_utils2.default.merge(u,l.dialog)}u.footer=_utils2.default.getText($tm.path.footers);u=_utils2.default.flatten(u);l=_utils2.default.flatten(l);var s=function t(a){e.getElement(\"hidden-close-button\").click();var l=$tw.wiki.getTiddler(a);var n=l.fields.text;var s=null;if(n){s=$tw.wiki.getTiddler(u.output)}else{$tm.notify(\"operation cancelled\")}if(typeof i===\"function\"){i(n,s)}_utils2.default.deleteByPrefix(r)};this.callbackManager.add(u.result,s,true);var o=new $tw.Tiddler(n,l,u);$tw.wiki.addTiddler(o);$tm.logger(\"debug\",\"Opening dialog\",o);$tw.rootWidget.dispatchEvent({type:\"tm-modal\",param:o.fields.title,paramObject:o.fields});e.addKeyBindings();return o}}],[{key:\"getElement\",value:function e(t){return _utils2.default.getFirstElementByClassName(\"tmap-\"+t)}},{key:\"addKeyBindings\",value:function t(){var a=$tm.keycharm({container:_utils2.default.getFirstElementByClassName(\"tc-modal\")});var l=/tmap-triggers-(.+?)-on-(.+?)(?:\\s|$)/;var i=document.getElementsByClassName(\"tmap-trigger-field\");var r=function t(r){var n=i[r].className.split(\" \");var u=function t(i){var r=n[i].match(l);if(!r){return\"continue\"}var u=r[1];var s=r[2];var o=e.getElement(u);if(!o){return\"continue\"}a.bind(s,function(){if(document.getElementsByClassName(n[i]).length){o.click()}})};for(var s=n.length;s--;){var o=u(s);if(o===\"continue\")continue}};for(var n=i.length;n--;){r(n)}}}]);return e}();exports.default=DialogManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/DialogManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Fixer": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Fixer",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Fixer\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Fixer=function(){function e(t,i,r){_classCallCheck(this,e);this.adapter=t;this.logger=i;this.wiki=$tw.wiki;this.glNTy=r}_createClass(e,[{key:\"moveEdges\",value:function e(t,i){var r=_utils2.default.getTiddlersByPrefix(t);for(var a=0;a<r.length;a++){var u=_utils2.default.getBasename(r[a]);if(u===\"__noname__\"){u=\"tmap:unknown\"}u=_EdgeType2.default.getInstance(u);if(!u.exists()){u.save()}var n=this.wiki.getTiddlerData(r[a]);for(var s=0;s<n.length;s++){n[s].type=(i?i+\":\":\"\")+u.id;this.adapter.insertEdge(n[s])}this.wiki.deleteTiddler(r[a])}}},{key:\"executeUpgrade\",value:function e(t,i,r){if(!_utils2.default.isLeftVersionGreater(t,i)){return}this.logger(\"debug\",\"Upgrading data structure to \"+t);var a=r();_utils2.default.setEntry(env.ref.sysMeta,\"dataStructureState\",t);return a}},{key:\"fixId\",value:function e(){var t=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.executeUpgrade(\"0.9.2\",t.dataStructureState,function(){if(_utils2.default.isLeftVersionGreater(\"0.9.2\",t.originalVersion)){var e=\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\";var i=_utils2.default.getEntry(e,\"field.nodeId\",\"tmap.id\");_utils2.default.moveFieldValues(i,\"tmap.id\",true,false)}})}},{key:\"fix\",value:function e(){var t=this;var i=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.logger(\"debug\",\"Fixer is started\");this.logger(\"debug\",\"Data-structure currently in use: \",i.dataStructureState);this.executeUpgrade(\"0.7.0\",i.dataStructureState,function(){t.moveEdges(\"$:/plugins/felixhayashi/tiddlymap/graph/edges\",null);var e=env.selector.allViews;var i=_utils2.default.getMatches(e);for(var r=0;r<i.length;r++){var a=new _ViewAbstraction2.default(i[r]);t.moveEdges(a.getRoot()+\"/graph/edges\",a)}});this.executeUpgrade(\"0.7.32\",i.dataStructureState,function(){if(!_ViewAbstraction2.default.exists(\"Live View\")){return}var e=new _ViewAbstraction2.default(\"Live View\");e.setNodeFilter(\"[field:title{$:/temp/tmap/currentTiddler}]\",true);e.setConfig({\"refresh-trigger\":null,\"refresh-triggers\":$tw.utils.stringifyList([\"$:/temp/tmap/currentTiddler\"])})});this.executeUpgrade(\"0.9.0\",i.dataStructureState,function(){var e=env.ref.visUserConf;var i=_utils2.default.unflatten(t.wiki.getTiddlerData(e,{}));if(_typeof(i.groups)===\"object\"){var r=_NodeType2.default.getInstance(\"tmap:neighbour\");r.setStyle(i.groups[\"neighbours\"]);r.save();delete i.groups;t.wiki.setTiddlerData(e,i)}});this.fixId();this.executeUpgrade(\"0.9.16\",i.dataStructureState,function(){for(var e=t.glNTy.length;e--;){t.glNTy[e].save(null,true)}});this.executeUpgrade(\"0.10.3\",i.dataStructureState,function(){var e=env.ref.liveTab;if(_utils2.default.getTiddler(e).hasTag(\"$:/tags/SideBar\")){this.wiki.deleteTiddler(e);_utils2.default.setField(e,\"tags\",\"$:/tags/SideBar\")}});this.executeUpgrade(\"0.11.0\",i.dataStructureState,function(){var e=_utils2.default.getMatches(env.selector.allViews);for(var t=e.length;t--;){var i=new _ViewAbstraction2.default(e[t]);var r=i.getEdgeTypeFilter(\"raw\");var a=\"edge_type_namespace\";i.setConfig(a,i.getConfig(a));var u=env.filter.defaultEdgeTypeFilter;if(r){var n=env.path.edgeTypes;r=_utils2.default.replaceAll(r,\"\",[n,n+\"/\",\"[prefix[\"+n+\"]]\",\"[prefix[\"+n+\"/]]\",[\"[suffix[tw-body:link]]\",\"[[tw-body:link]]\"],[\"[suffix[tw-list:tags]]\",\"[[tw-list:tags]]\"],[\"[suffix[tw-list:list]]\",\"[[tw-body:list]]\"],[\"[suffix[tmap:unknown]]\",\"[[tmap:unknown]]\"],[\"[suffix[unknown]]\",\"[[tmap:unknown]]\"]]);u=\"-[prefix[_]] \"+r}i.setEdgeTypeFilter(u)}})}}]);return e}();exports.default=Fixer;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Fixer.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/listener": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/listener",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var handleCancelDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"\")};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/listener\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var handleClearTiddler=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},a=t.paramObject;var r=a.title,d=a.keep;if(!r)return;var i=_utils2.default.getTiddler(r);var l=i?i.fields:{};var s=d?d.split():[];var n={title:r,text:\"\"};for(var p=s.length;p--;){var o=s[p];n[o]=l[o]}$tw.wiki.deleteTiddler(r);$tw.wiki.addTiddler(new $tw.Tiddler(n))};var handleMixTiddlers=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d=r.tiddlers,i=r.output;if(!d||!i)return;var l=$tw.utils.parseStringArray(d);var s=_utils2.default.getMergedTiddlers(l,i);$tw.wiki.addTiddler(s)};var handleConfirmDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"1\")};var handleSuppressDialog=function e(t){var a=t.paramObject;var r=a.dialog,d=a.suppress;if(_utils2.default.isTrue(d,false)){_utils2.default.setEntry($tm.ref.sysUserConf,\"suppressedDialogs.\"+r,true)}};var handleDownloadGraph=function e(t){var a=t.paramObject;var r=a.view;var d=$tm.adapter.getGraph({view:r});d.nodes=_utils2.default.convert(d.nodes,\"array\");d.edges=_utils2.default.convert(d.edges,\"array\");var i=\"$:/temp/tmap/export\";_utils2.default.setField(i,\"text\",JSON.stringify(d,null,2));$tw.rootWidget.dispatchEvent({type:\"tm-download-file\",param:i,paramObject:{filename:r+\".json\"}})};var handleConfigureSystem=function e(){var t=_utils2.default.getMatches($tm.selector.allPotentialNodes);var a=$tm.adapter.getEdgesForSet(t);var r=$tw.wiki.getTiddler($tm.path.pluginRoot).fields;var d=$tw.wiki.getTiddlerData($tm.ref.sysMeta);var i=_utils2.default.getTiddler($tm.ref.liveTab).hasTag(\"$:/tags/SideBar\");var l={numberOfNodes:\"\"+t.length,numberOfEdges:\"\"+Object.keys(a).length,pluginVersion:\"v\"+r.version,dataStructureVersion:\"v\"+d.dataStructureState,dialog:{preselects:{liveTab:\"\"+i,\"inherited-style\":JSON.stringify(_vis2.default),\"config.vis\":_utils2.default.getText($tm.ref.visUserConf),\"config.sys\":$tm.config.sys}}};$tm.dialogManager.open(\"globalConfig\",l,function(e,t){if(!e)return;var a=_utils2.default.getPropertiesByPrefix(t.fields,\"config.sys.\",true);$tw.wiki.setTiddlerData($tm.ref.sysUserConf,a);if(_utils2.default.isTrue(t.fields.liveTab,false)){_utils2.default.setField($tm.ref.liveTab,\"tags\",\"$:/tags/SideBar\")}else{$tw.wiki.deleteTiddler($tm.ref.liveTab)}_utils2.default.setField($tm.ref.visUserConf,\"text\",t.fields[\"config.vis\"])})};var handleGenerateWidget=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d={dialog:{preselects:{\"var.view\":r.view||$tm.misc.defaultViewLabel}}};$tm.dialogManager.open(\"widgetCodeGenerator\",d)};var handleRemoveEdge=function e(t){var a=t.paramObject;$tm.adapter.deleteEdge(a)};var handleCreateEdge=function e(t){var a=t.paramObject;var r=a.from,d=a.to,i=a.force;if(!r||!d)return;if(_utils2.default.tiddlerExists(r)&&_utils2.default.tiddlerExists(d)||i){_utils2.default.addTiddler(d);_utils2.default.addTiddler(r);var l=new _Edge2.default($tm.adapter.makeNode(r).id,$tm.adapter.makeNode(d).id,a.label,a.id);$tm.adapter.insertEdge(l);$tm.notify(\"Edge inserted\")}};var handleOpenTypeManager=function e(t){var a=t.type,r=t.paramObject,d=r===undefined?{}:r;var i=a.match(/tmap:tm-(.*)/)[1];if(i===\"manage-edge-types\"){var l=\"Edge-Type Manager\";var s=$tm.selector.allEdgeTypes;var n=$tm.path.edgeTypes}else{var l=\"Node-Type Manager\";var s=$tm.selector.allNodeTypes;var n=$tm.path.nodeTypes}var p={mode:i,topic:l,searchSelector:s,typeRootPath:n};var o=$tm.dialogManager.open(\"MapElementTypeManager\",p);if(d.type){handleLoadTypeForm({paramObject:{mode:i,id:d.type,output:o.fields[\"output\"]}})}};var handleLoadTypeForm=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=a.output;var l=i;var s=r===\"manage-edge-types\"?_EdgeType2.default.getInstance(d):_NodeType2.default.getInstance(d);s.save(l,true);if(r===\"manage-edge-types\"){var n=$tm.adapter.selectEdgesByType(s);var p=Object.keys(n).length;_utils2.default.setField(l,\"temp.usageCount\",p)}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(l),{typeTRef:s.fullPath,\"temp.idImmutable\":s.isShipped?\"true\":\"\",\"temp.newId\":s.id,\"inherited-style\":JSON.stringify((r===\"manage-edge-types\"?$tm.config.vis.edges:$tm.config.vis.nodes)||{})}));_utils2.default.deleteByPrefix(\"$:/state/tabs/MapElementTypeManager\")};var handleSaveTypeForm=function e(t){var a=t.paramObject;var r=_utils2.default.getTiddler(a.output);if(!r)return;var d=r.fields.id;var i=a.mode;if(_utils2.default.isTrue(r.fields[\"temp.deleteType\"],false)){deleteType(i,d,r)}else{saveType(i,d,r)}};var deleteType=function e(t,a,r){var d=t===\"manage-edge-types\"?_EdgeType2.default.getInstance(a):_NodeType2.default.getInstance(a);$tm.logger(\"debug\",\"Deleting type\",d);if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(d,{action:\"delete\"})}else{$tm.adapter.removeNodeType(d)}$tw.wiki.addTiddler(new $tw.Tiddler({title:_utils2.default.getTiddlerRef(r)}));$tm.notify(\"Deleted type\")};var saveType=function e(t,a,r){var d=_utils2.default.getTiddler(r);var i=t===\"manage-edge-types\"?_EdgeType2.default:_NodeType2.default;var l=new i(a,d);l.save();var s=d.fields[\"temp.newId\"];if(s&&s!==d.fields[\"id\"]){if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(l,{action:\"rename\",newName:s})}else{new _NodeType2.default(s,l).save();$tw.wiki.deleteTiddler(l.fullPath)}_utils2.default.setField(d,\"id\",s)}$tm.notify(\"Saved type data\")};var handleCreateType=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=d===undefined?\"New type\":d,l=a.output;var s=r===\"manage-edge-types\"?new _EdgeType2.default(i):new _NodeType2.default(i);s.save();handleLoadTypeForm({paramObject:{id:s.id,mode:r,output:l}})};var name=exports.name=\"tmap.listener\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"rootwidget\",\"tmap.caretaker\"];var before=exports.before=[\"story\"];var synchronous=exports.synchronous=true;var startup=exports.startup=function e(){_utils2.default.addTWlisteners({\"tmap:tm-remove-edge\":handleRemoveEdge,\"tmap:tm-load-type-form\":handleLoadTypeForm,\"tmap:tm-save-type-form\":handleSaveTypeForm,\"tmap:tm-create-type\":handleCreateType,\"tmap:tm-create-edge\":handleCreateEdge,\"tmap:tm-suppress-dialog\":handleSuppressDialog,\"tmap:tm-generate-widget\":handleGenerateWidget,\"tmap:tm-download-graph\":handleDownloadGraph,\"tmap:tm-configure-system\":handleConfigureSystem,\"tmap:tm-manage-edge-types\":handleOpenTypeManager,\"tmap:tm-manage-node-types\":handleOpenTypeManager,\"tmap:tm-cancel-dialog\":handleCancelDialog,\"tmap:tm-clear-tiddler\":handleClearTiddler,\"tmap:tm-merge-tiddlers\":handleMixTiddlers,\"tmap:tm-confirm-dialog\":handleConfirmDialog},$tw.rootWidget,undefined)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Listener.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/services/tracker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/services/tracker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/services/tracker\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Tracker=function(){function e(t){_classCallCheck(this,e);this.wiki=$tw.wiki;this.logger=$tm.logger;this._createIndex()}_createClass(e,[{key:\"_createIndex\",value:function e(){var t=this.tById={};var i=this.idByT={};this.wiki.each(function(e,r){if(_utils2.default.isSystemOrDraft(e)){return}var l=e.fields[\"tmap.id\"];if(!l){l=_utils2.default.genUUID();_utils2.default.setField(e,\"tmap.id\",l)}t[l]=r;i[r]=l})}},{key:\"assignId\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r){throw new ResourceNotFoundException(t)}var l=r.fields[\"tmap.id\"];if(!l||i){l=_utils2.default.genUUID();_utils2.default.setField(r,\"tmap.id\",l);this.logger(\"info\",\"Assigning new id to\",r.fields.title)}this.tById[l]=r.fields.title;this.idByT[r.fields.title]=l;return l}},{key:\"getIdByTiddler\",value:function e(t){return this.idByT[_utils2.default.getTiddlerRef(t)]}},{key:\"getIdsByTiddlers\",value:function e(){return this.idByT}},{key:\"getTiddlersByIds\",value:function e(){return this.tById}},{key:\"getTiddlerById\",value:function e(t){return this.tById[t]}}]);return e}();exports.default=Tracker;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Tracker.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget",
"text": "\"use strict\";var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function MapConfigWidget(e,t){_widget.widget.call(this);this.initialise(e,t);this.computeAttributes()}MapConfigWidget.prototype=Object.create(_widget.widget.prototype);MapConfigWidget.prototype.render=function(e,t){this.parentDomNode=e;if(!this.domNode){this.domNode=this.document.createElement(\"div\");$tw.utils.addClass(this.domNode,\"tmap-config-widget\");e.insertBefore(this.domNode,t)}if(this.network){this.network.destroy()}this.networkContainer=document.createElement(\"div\");this.domNode.appendChild(this.networkContainer);this.refreshTrigger=this.getAttribute(\"refresh-trigger\");this.pipeTRef=this.getVariable(\"currentTiddler\");this.inheritedFields=$tw.utils.parseStringArray(this.getAttribute(\"inherited\"));this.extensionTField=this.getAttribute(\"extension\");this.mode=this.getAttribute(\"mode\");for(var i=0;i<this.inheritedFields.length;i++){var s=this.inheritedFields[i];var n=_utils2.default.parseFieldData(this.pipeTRef,s,{});if(this.mode===\"manage-edge-types\"){n={edges:n}}else if(this.mode===\"manage-node-types\"){n={nodes:n}}this.inherited=_utils2.default.merge(this.inherited,n)}this.extension=_utils2.default.parseFieldData(this.pipeTRef,this.extensionTField,{});if(this.mode===\"manage-edge-types\"){if(!this.extension.edges){this.extension={edges:this.extension}}}else if(this.mode===\"manage-node-types\"){if(!this.extension.nodes){this.extension={nodes:this.extension}}}var r=_utils2.default.isTrue(this.getAttribute(\"save-only-changes\"));this.changes=r?{}:this.extension;var o={nodes:[],edges:[]};var a=_utils2.default.merge({},this.inherited,this.extension);$tw.utils.extend(a,{configure:{enabled:true,showButton:false,filter:this.getOptionFilter(this.mode)}});this.network=new _vis2.default.Network(this.networkContainer,o,a);this.network.on(\"configChange\",this.handleConfigChange.bind(this));var l=this.parentDomNode.getBoundingClientRect().height;this.parentDomNode.style[\"height\"]=l+\"px\";var h=this.handleResetEvent.bind(this);this.networkContainer.addEventListener(\"reset\",h,false);$tm.registry.push(this);this.enhanceConfigurator()};MapConfigWidget.prototype.handleResetEvent=function(e){var t={};t[e.detail.trigger.path]=null;this.handleConfigChange(t)};MapConfigWidget.prototype.handleConfigChange=function(e){var t=_utils2.default.flatten(this.changes);var i=_utils2.default.flatten(e);var s=Object.keys(_utils2.default.flatten(e))[0];var n=i[s]===null;if(n){t[s]=undefined;this.changes=_utils2.default.unflatten(t)}else{this.changes=_utils2.default.merge(this.changes,e)}var r=_utils2.default.merge({},this.changes);if(this.mode===\"manage-node-types\"){r=r[\"nodes\"]}if(this.mode===\"manage-edge-types\"){r=r[\"edges\"]}_utils2.default.writeFieldData(this.pipeTRef,this.extensionTField,r,$tm.config.sys.jsonIndentation);var o=\"vis-configuration-wrapper\";var a=this.networkContainer.getElementsByClassName(o)[0];a.style.height=a.getBoundingClientRect().height+\"px\";if(n){window.setTimeout(this.refresh.bind(this),0)}else{window.setTimeout(this.enhanceConfigurator.bind(this),50)}};MapConfigWidget.prototype.enhanceConfigurator=function(){var e=\"vis-configuration-wrapper\";var t=this.networkContainer.getElementsByClassName(e)[0].children;var i=[];var s=_utils2.default.flatten(this.changes);for(var n=0;n<t.length;n++){if(!t[n].classList.contains(\"vis-config-item\"))continue;var r=new VisConfElement(t[n],i,n);i.push(r);if(r.level===0)continue;r.setActive(!!s[r.path])}};function VisConfElement(e,t,i){var s=\"getElementsByClassName\";this.el=e;this.labelEl=e[s](\"vis-config-label\")[0]||e[s](\"vis-config-header\")[0]||e;var n=this.labelEl.innerText||this.labelEl.textContent;this.label=n&&n.match(/([a-zA-Z0-9]+)/)[1];this.level=parseInt(e.className.match(/.*vis-config-s(.).*/)[1])||0;this.path=this.label;if(this.level>0){for(var r=i;r--;){var o=t[r];if(o.level<this.level){this.path=o.path+\".\"+this.path;break}}}}VisConfElement.prototype.setActive=function(e){if(!e)return;var t=\"tmap-vis-config-item-\"+(e?\"active\":\"inactive\");$tw.utils.addClass(this.el,t);if(e){var i=document.createElement(\"button\");i.innerHTML=\"reset\";i.className=\"tmap-config-item-reset\";var s=this;i.addEventListener(\"click\",function(e){e.currentTarget.dispatchEvent(new CustomEvent(\"reset\",{detail:{trigger:s},bubbles:true,cancelable:true}))},false);this.el.appendChild(i)}};MapConfigWidget.prototype.getOptionFilter=function(e){var t={nodes:{borderWidth:true,borderWidthSelected:true,widthConstraint:true,heightConstraint:true,color:{background:true,border:true},font:{color:true,size:true},icon:true,labelHighlightBold:false,shadow:true,shape:true,shapeProperties:{borderDashes:true},size:true},edges:{arrows:true,color:true,dashes:true,font:true,labelHighlightBold:false,length:true,selfReferenceSize:false,shadow:true,smooth:true,width:true},interaction:{hideEdgesOnDrag:true,hideNodesOnDrag:true,tooltipDelay:true},layout:{hierarchical:true},manipulation:{initiallyActive:true},physics:{forceAtlas2Based:{gravitationalConstant:true,springLength:true,springConstant:true,damping:true,centralGravity:true}}};if(e===\"manage-edge-types\"){t={edges:t.edges}}else if(e===\"manage-node-types\"){t={nodes:t.nodes}}else{t.edges.arrows=false}return function(e,i){i=i.concat([e]);var s=t;for(var n=0,r=i.length;n<r;n++){if(s[i[n]]===true){return true}else if(s[i[n]]==null){return false}s=s[i[n]]}return false}};MapConfigWidget.prototype.isZombieWidget=function(){return!document.body.contains(this.parentDomNode)};MapConfigWidget.prototype.destruct=function(){if(this.network){this.network.destroy()}};MapConfigWidget.prototype.refresh=function(e){if(this.isZombieWidget()||!this.network)return;if(!e||e[this.refreshTrigger]){this.refreshSelf();return true}};MapConfigWidget.prototype.setNull=function(e){for(var t in e){if(_typeof(e[t])==\"object\"){this.setNull(e[t])}else{e[t]=undefined}}};exports[\"tmap-config\"]=MapConfigWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/ConfigurationWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListItemWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r));i.arrows=$tm.misc.arrows;return i}_createClass(t,[{key:\"execute\",value:function e(){var t=this.parseTreeNode;var r=$tm.tracker.getTiddlerById(t.neighbour.id);var i=_utils2.default.flatten(t.edge);for(var o in i){if(typeof i[o]===\"string\"){this.setVariable(\"edge.\"+o,i[o])}}this.setVariable(\"currentTiddler\",r);this.setVariable(\"neighbour\",r);var n=$tm.indeces.allETy[i.type];var s=i.to===t.neighbour.id?\"to\":\"from\";var a=s;if(n.biArrow){a=\"bi\"}else{if(s===\"to\"&&n.invertedArrow){a=\"from\"}else if(s===\"from\"&&n.invertedArrow){a=\"to\"}}this.setVariable(\"direction\",a);this.setVariable(\"directionSymbol\",a===\"bi\"?this.arrows.bi:a===\"from\"?this.arrows.in:this.arrows.out);this.makeChildWidgets()}},{key:\"refresh\",value:function e(t){return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-edgelistitem\"]=EdgeListItemWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListItemWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r))}_createClass(t,[{key:\"render\",value:function e(t,r){this.parentDomNode=t;this.computeAttributes();this.execute();this.renderChildren(t,r)}},{key:\"execute\",value:function e(){var t=[this.getVariable(\"currentTiddler\")];var r=this.getAttribute(\"filter\",\"\");var i=this.getAttribute(\"direction\",\"both\");var s=$tm.indeces.allETy;var n=_utils2.default.getEdgeTypeMatches(r,s);var u={typeWL:_utils2.default.getLookupTable(n),direction:i};var o=$tm.adapter.getNeighbours(t,u),a=o.nodes,l=o.edges;var f=[];for(var c in l){var h=l[c];var p=a[h.to]||a[h.from];if(!p){continue}f.push({type:\"tmap-edgelistitem\",edge:h,typeWL:u.typeWL,neighbour:p,children:this.parseTreeNode.children})}if(!f.length){this.wasEmpty=true;f=this.getEmptyMessage()}else if(this.wasEmpty){this.removeChildDomNodes()}this.makeChildWidgets(f)}},{key:\"getEmptyMessage\",value:function e(){var t=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.getAttribute(\"emptyMessage\",\"\"),{parseAsInline:true});return t?t.tree:[]}},{key:\"refresh\",value:function e(t){var r=this.computeAttributes();if(_utils2.default.hasElements(r)){this.refreshSelf();return true}for(var i in t){if(!_utils2.default.isSystemOrDraft(i)){this.refreshSelf();return true}}return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-connections\"]=EdgeListWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.tiddlymap=exports.tmap=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var a in i){if(Object.prototype.hasOwnProperty.call(i,a)){e[a]=i[a]}}}return e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||false;a.configurable=true;if(\"value\"in a)a.writable=true;Object.defineProperty(e,a.key,a)}}return function(t,i,a){if(i)e(t.prototype,i);if(a)e(t,a);return t}}();var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Popup=require(\"$:/plugins/felixhayashi/tiddlymap/js/Popup\");var _Popup2=_interopRequireDefault(_Popup);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _SelectionRectangle=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\");var _SelectionRectangle2=_interopRequireDefault(_SelectionRectangle);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++){i[t]=e[t]}return i}else{return Array.from(e)}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var MapWidget=function(e){_inherits(t,e);function t(e,i){_classCallCheck(this,t);var a=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));a.getAttr=a.getAttribute;a.isDebug=_utils2.default.isTrue($tm.config.sys.debug,false);_utils2.default.bindTo(a,[\"constructTooltip\",\"handleResizeEvent\",\"handleClickEvent\",\"handleCanvasKeyup\",\"handleCanvasKeydown\",\"handleCanvasScroll\",\"handleCanvasMouseMove\",\"handleWidgetKeyup\",\"handleWidgetKeydown\",\"handleTriggeredRefresh\",\"handleContextMenu\"]);a.callbackManager=new _CallbackManager2.default;a.computeAttributes();a.editorMode=a.getAttr(\"editor\");a.clickToUse=_utils2.default.isTrue(a.getAttr(\"click-to-use\"),false);a.id=a.getAttr(\"object-id\")||a.getStateQualifier();a.widgetPopupsPath=$tm.path.tempPopups+\"/\"+a.id;if(a.editorMode){_utils2.default.addTWlisteners({\"tmap:tm-create-view\":a.handleCreateView,\"tmap:tm-rename-view\":a.handleRenameView,\"tmap:tm-delete-view\":a.handleDeleteView,\"tmap:tm-delete-element\":a.handleDeleteElement,\"tmap:tm-edit-view\":a.handleEditView,\"tmap:tm-generate-widget\":a.handleGenerateWidget,\"tmap:tm-toggle-central-topic\":a.handleSetCentralTopic,\"tmap:tm-save-canvas\":a.handleSaveCanvas},a,a)}_utils2.default.addTWlisteners({\"tmap:tm-focus-node\":a.handleFocusNode,\"tmap:tm-reset-focus\":a.repaintGraph,\"tmap:tm-neighbourhood-reset-trace\":function e(){a.initAndRenderGraph(a.graphDomNode)}},a,a);a.visListeners={click:a.handleVisSingleClickEvent,doubleClick:a.handleVisDoubleClickEvent,stabilized:a.handleVisStabilizedEvent,selectNode:a.handleVisSelectNode,deselectNode:a.handleVisDeselectNode,dragStart:a.handleVisDragStart,dragEnd:a.handleVisDragEnd,hoverNode:a.handleVisHoverElement,hoverEdge:a.handleVisHoverElement,blurNode:a.handleVisBlurElement,blurEdge:a.handleVisBlurElement,beforeDrawing:a.handleVisBeforeDrawing,afterDrawing:a.handleVisAfterDrawing,stabilizationProgress:a.handleVisLoading,stabilizationIterationsDone:a.handleVisLoadingDone};a.windowDomListeners={resize:[a.handleResizeEvent,false],click:[a.handleClickEvent,false],mousemove:[a.handleCanvasMouseMove,true]};a.canvasDomListeners={keyup:[a.handleCanvasKeyup,true],keydown:[a.handleCanvasKeydown,true],mousewheel:[a.handleCanvasScroll,true],DOMMouseScroll:[a.handleCanvasScroll,true],contextmenu:[a.handleContextMenu,true],MozMousePixelScroll:[a.handleExtraCanvasScroll,true]};a.widgetDomListeners={keyup:[a.handleWidgetKeyup,true],keydown:[a.handleWidgetKeydown,true]};a.conVector={from:null,to:null};return a}_createClass(t,[{key:\"handleConnectionEvent\",value:function e(t,i){var a=this;var s=this.view.getEdgeTypeFilter();var r={fromLabel:$tm.adapter.selectNodeById(t.from).label,toLabel:$tm.adapter.selectNodeById(t.to).label,view:this.view.getLabel(),eTyFilter:s.raw};$tm.dialogManager.open(\"getEdgeType\",r,function(e,r){if(e){var n=_utils2.default.getText(r);var o=_EdgeType2.default.getInstance(n);if(!o.namespace){var l=_EdgeType2.default.getIdParts(o.id),d=l.marker,h=l.name;var u=a.view.getConfig(\"edge_type_namespace\");o=_EdgeType2.default.getInstance(_EdgeType2.default.getId(d,u,h))}if(!o.exists()){o.save()}t.type=o.id;$tm.adapter.insertEdge(t);a.isPreventZoomOnNextUpdate=true;if(!a.view.isEdgeTypeVisible(o)){$tm.dialogManager.open(\"edgeNotVisible\",{type:o.id,view:a.view.getLabel(),eTyFilter:s.pretty})}}if(typeof i===\"function\"){i(e)}})}},{key:\"checkForFreshInstall\",value:function e(){if(!_utils2.default.getEntry($tm.ref.sysMeta,\"showWelcomeMessage\",true)){return}_utils2.default.setEntry($tm.ref.sysMeta,\"showWelcomeMessage\",false);var t={dialog:{preselects:{\"config.storyview\":\"true\",\"config.navigation\":\"true\",\"config.sidebar\":\"true\",\"config.demo\":\"true\"}}};$tm.dialogManager.open(\"welcome\",t,function(e,t){var i=_utils2.default.getPropertiesByPrefix(t.fields,\"config.\",true);if(i[\"storyview\"]&&_utils2.default.tiddlerExists(\"$:/plugins/felixhayashi/topstoryview\")){_utils2.default.setText(\"$:/view\",\"top\")}if(i[\"navigation\"]){_utils2.default.setText(\"$:/config/Navigation/openLinkFromInsideRiver\",\"above\");_utils2.default.setText(\"$:/config/Navigation/openLinkFromOutsideRiver\",\"top\")}if(i[\"sidebar\"]){_utils2.default.setText(\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\",\"fixed-fluid\")}if(i[\"demo\"]){var a=$tm.misc.defaultViewLabel;var s=$tm.adapter.insertNode({label:\"Have fun with\",x:0,y:0},a);var r=$tm.adapter.insertNode({label:\"TiddlyMap!!\",x:100,y:100},a);$tm.adapter.insertEdge({from:s.id,to:r.id})}if(Object.keys(i).length){_utils2.default.touch(\"$:/plugins/felixhayashi/tiddlymap\")}})}},{key:\"openStandardConfirmDialog\",value:function e(t,i){var a={message:i};$tm.dialogManager.open(\"getConfirmation\",a,t)}},{key:\"logger\",value:function e(t,i){if(this.isDebug){var a=Array.prototype.slice.call(arguments,1);a.unshift(\"@\"+this.id);a.unshift(t);$tm.logger.apply(this,a)}}},{key:\"render\",value:function e(t,i){this.parentDomNode=t;this.domNode=this.document.createElement(\"div\");t.insertBefore(this.domNode,i);this.registerClassNames(this.domNode);this.viewHolderRef=this.getViewHolderRef();this.view=this.getView();this.graphBarDomNode=this.document.createElement(\"div\");$tw.utils.addClass(this.graphBarDomNode,\"tmap-topbar\");this.domNode.appendChild(this.graphBarDomNode);this.graphDomNode=this.document.createElement(\"div\");this.domNode.appendChild(this.graphDomNode);$tw.utils.addClass(this.graphDomNode,\"tmap-vis-graph\");if(_utils2.default.isPreviewed(this)){$tw.utils.addClass(this.domNode,\"tmap-static-mode\");this.renderPreview(this.graphBarDomNode,this.graphDomNode)}else{this.renderFullWidget(this.domNode,this.graphBarDomNode,this.graphDomNode);var a=this.document.createElement(\"canvas\");$tw.utils.addClass(a,\"tmap-download-canvas\");this.domNode.appendChild(a)}}},{key:\"renderPreview\",value:function e(t,i){var a=this.view.snapshotTRef;var s=_utils2.default.getTiddler(a);var r=this.document.createElement(\"span\");r.innerHTML=this.view.getLabel();r.className=\"tmap-view-label\";t.appendChild(r);if(s){var n=_utils2.default.getTiddlerNode(this.view.getRoot());n.children.push(_utils2.default.getTranscludeNode(a));this.makeChildWidgets([n]);this.renderChildren(i,i.firstChild)}else{$tw.utils.addClass(i,\"tmap-graph-placeholder\")}}},{key:\"renderFullWidget\",value:function e(t,i,a){_utils2.default.setDomListeners(\"add\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"add\",t,this.widgetDomListeners);this.addLoadingBar(this.domNode);this.tooltip=new _Popup2.default(this.domNode,{className:\"tmap-tooltip\",showDelay:$tm.config.sys.popups.delay});this.contextMenu=new _Popup2.default(this.domNode,{className:\"tmap-context-menu\",showDelay:0,hideOnClick:true,leavingDelay:999999});this.sidebar=_utils2.default.getFirstElementByClassName(\"tc-sidebar-scrollable\");this.isInSidebar=this.sidebar&&!this.domNode.isTiddlyWikiFakeDom&&this.sidebar.contains(this.domNode);this.rebuildEditorBar(i);this.reloadRefreshTriggers();this.initAndRenderGraph(a);$tm.registry.push(this);this.checkForFreshInstall();if(this.id===$tm.misc.mainEditorId){var s=$tm.url;if(s&&s.query[\"tmap-enlarged\"]){this.toggleEnlargedMode(s.query[\"tmap-enlarged\"]);this.setView(s.query[\"tmap-view\"])}}}},{key:\"registerClassNames\",value:function e(t){var i=$tw.utils.addClass;i(t,\"tmap-widget\");if(this.clickToUse){i(t,\"tmap-click-to-use\")}if(this.getAttr(\"editor\")===\"advanced\"){i(t,\"tmap-advanced-editor\")}if(this.getAttr(\"design\")===\"plain\"){i(t,\"tmap-plain-design\")}if(!_utils2.default.isTrue(this.getAttr(\"show-buttons\"),true)){i(t,\"tmap-no-buttons\")}if(this.getAttr(\"class\")){i(t,this.getAttr(\"class\"))}}},{key:\"addLoadingBar\",value:function e(t){this.graphLoadingBarDomNode=this.document.createElement(\"progress\");$tw.utils.addClass(this.graphLoadingBarDomNode,\"tmap-loading-bar\");t.appendChild(this.graphLoadingBarDomNode)}},{key:\"rebuildEditorBar\",value:function e(){this.removeChildDomNodes();var t=this.view;var i=\"tmap-unicode-button\";var a=i+\" tmap-active-button\";var s={widgetQualifier:this.getStateQualifier(),widgetTempPath:this.widgetTempPath,widgetPopupsPath:this.widgetPopupsPath,isViewBound:String(this.isViewBound()),viewRoot:t.getRoot(),viewLabel:t.getLabel(),viewHolder:this.getViewHolderRef(),edgeTypeFilter:t.edgeTypeFilterTRef,allEdgesFilter:$tm.selector.allEdgeTypes,isShowNeighbourhood:String(t.isEnabled(\"neighbourhood_scope\")),tracingBtnClass:t.isEnabled(\"neighbourhood_trace_clicks\")?a:i,neighScopeBtnClass:t.isEnabled(\"neighbourhood_scope\")?a:i,rasterMenuBtnClass:t.isEnabled(\"raster\")?a:i};for(var r in s){this.setVariable(r,s[r])}var n=_utils2.default.getTiddlerNode(t.getRoot());if(this.editorMode===\"advanced\"){n.children.push(_utils2.default.getTranscludeNode($tm.ref.graphBar))}else{var o=_utils2.default.getElementNode(\"span\",\"tmap-view-label\",t.getLabel());n.children.push(o)}n.children.push(_utils2.default.getTranscludeNode($tm.ref.focusButton));this.makeChildWidgets([n]);this.renderChildren(this.graphBarDomNode,this.graphBarDomNode.firstChild)}},{key:\"refresh\",value:function e(t){return false}},{key:\"update\",value:function e(t){if(!this.network||this.isZombieWidget()||_utils2.default.isPreviewed(this)){return}var i=t.changedTiddlers;this.callbackManager.refresh(i);if(this.isViewSwitched(i)||this.hasChangedAttributes()||t[env.path.options]||i[this.view.getRoot()]){this.logger(\"warn\",\"View switched or config changed\");this.isPreventZoomOnNextUpdate=false;this.view=this.getView(true);this.reloadRefreshTriggers();this.trace=_utils2.default.makeHashMap();this.rebuildEditorBar();this.reloadBackgroundImage();this.initAndRenderGraph(this.graphDomNode)}else{var a=this.view.update(t);if(a){this.logger(\"warn\",\"View components modified\");this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}else{if(t[env.path.nodeTypes]||this.hasChangedElements(i)){this.rebuildGraph()}this.refreshChildren(i)}}}},{key:\"hidePopups\",value:function e(t,i){this.tooltip.hide(t,i);this.contextMenu.hide(0,true)}},{key:\"reloadRefreshTriggers\",value:function e(){this.callbackManager.remove(this.refreshTriggers);var t=this.getAttr(\"refresh-triggers\")||this.view.getConfig(\"refresh-triggers\");this.refreshTriggers=$tw.utils.parseStringArray(t)||[];this.logger(\"debug\",\"Registering refresh trigger\",this.refreshTriggers);for(var i=this.refreshTriggers.length;i--;){this.callbackManager.add(this.refreshTriggers[i],this.handleTriggeredRefresh,false)}}},{key:\"rebuildGraph\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.resetFocus;if(_utils2.default.isPreviewed(this)){return}this.logger(\"debug\",\"Rebuilding graph\");this.hidePopups(0,true);this.hasNetworkStabilized=false;var a=this.rebuildGraphData();if(a.changedNodes.withoutPosition.length){i=i||{delay:1e3,duration:1e3};if(!this.view.isEnabled(\"physics_mode\")){var s=this.visOptions.physics;s[s.solver].centralGravity=.25;this.network.setOptions(this.visOptions)}}if(!_utils2.default.hasElements(this.graphData.nodesById)){return}if(i){var r=this.isPreventZoomOnNextUpdate==null?false:typeof this.isPreventZoomOnNextUpdate===\"number\"?this.isPreventZoomOnNextUpdate>Date.now():this.isPreventZoomOnNextUpdate;if(!r){this.network.stabilize();this.resetFocus=i}if(typeof this.isPreventZoomOnNextUpdate!==\"number\"){this.isPreventZoomOnNextUpdate=false}}}},{key:\"getContainer\",value:function e(){return this.domNode}},{key:\"rebuildGraphData\",value:function e(){var t=this;$tm.start(\"Reloading Network\");var i={view:this.view,matches:_utils2.default.getMatches(this.view.getNodeFilter(\"compiled\"))};if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){var a=i.matches;var s=Object.keys(this.trace);var r=[].concat(_toConsumableArray(a.filter(function(e){return!t.trace[e]})),_toConsumableArray(s));i.matches=r;i.includeNeighboursOf=this.view.isEnabled(\"neighbourhood_include_traced_node_neighbours\")?function(e){return r.includes(e)}:function(e){return a.includes(e)}}var n=$tm.adapter.getGraph(i);var o=_utils2.default.refreshDataSet(this.graphData.nodes,n.nodes);var l=_utils2.default.refreshDataSet(this.graphData.edges,n.edges);this.graphData.nodesById=n.nodes;this.graphData.edgesById=n.edges;_utils2.default.setField(\"$:/temp/tmap/nodes/\"+this.view.getLabel(),\"list\",$tm.adapter.getTiddlersByIds(n.nodes));$tm.stop(\"Reloading Network\");return{changedEdges:l,changedNodes:o}}},{key:\"isViewBound\",value:function e(){return _utils2.default.startsWith(this.getViewHolderRef(),$tm.path.localHolders)}},{key:\"isViewSwitched\",value:function e(t){return!_ViewAbstraction2.default.exists(this.view)||t[this.getViewHolderRef()]}},{key:\"hasChangedAttributes\",value:function e(){return Object.keys(this.computeAttributes()).length}},{key:\"hasChangedElements\",value:function e(t){var i=[];var a=this.graphData.nodesById;var s=this.view.isEnabled(\"neighbourhood_scope\");for(var r in t){if(_utils2.default.isSystemOrDraft(r)){continue}if(a[$tm.adapter.getId(r)]||s){return true}if(t[r].modified){i.push(r)}}if(i.length){var n=this.view.getNodeFilter(\"compiled\");var o=_utils2.default.getMatches(n,i);return!!o.length}}},{key:\"initAndRenderGraph\",value:function e(t){var i=this;if(this.network){this._destructVis()}this.logger(\"info\",\"Initializing and rendering the graph\");if(!this.isInSidebar){this.callbackManager.add(\"$:/state/sidebar\",this.handleResizeEvent)}this.visOptions=this.getVisOptions();this.graphData={nodes:new _vis2.default.DataSet,edges:new _vis2.default.DataSet,nodesById:_utils2.default.makeHashMap(),edgesById:_utils2.default.makeHashMap()};this.tooltip.setEnabled(_utils2.default.isTrue($tm.config.sys.popups.enabled,true));this.trace=_utils2.default.makeHashMap();this.network=new _vis2.default.Network(t,this.graphData,this.visOptions);this.canvas=t.getElementsByTagName(\"canvas\")[0];this.networkDomNode=_utils2.default.getFirstElementByClassName(\"vis-network\",t,true);this.canvas.tabIndex=0;for(var a in this.visListeners){this.network.on(a,this.visListeners[a].bind(this))}this.addGraphButtons({\"fullscreen-button\":function e(){i.toggleEnlargedMode(\"fullscreen\")},\"halfscreen-button\":function e(){i.toggleEnlargedMode(\"halfscreen\")}});_utils2.default.setDomListeners(\"add\",this.canvas,this.canvasDomListeners);this.reloadBackgroundImage();this.rebuildGraph({resetFocus:{delay:0,duration:0}});this.handleResizeEvent();this.canvas.focus();if(this.isLiveView()&&this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[_utils2.default.getText(this.refreshTriggers[0])]=true}}},{key:\"handleCanvasKeyup\",value:function e(t){var i=this;var a=this.network.getSelectedNodes();if(t.ctrlKey){t.preventDefault();if(t.keyCode===88){if(this.editorMode){this.handleAddNodesToClipboard(\"move\")}else{$tm.notify(\"Map is read only!\")}}else if(t.keyCode===67){this.handleAddNodesToClipboard(\"copy\")}else if(t.keyCode===86){this.handlePasteNodesFromClipboard()}else if(t.keyCode===65){var s=Object.keys(this.graphData.nodesById);this.network.selectNodes(s)}else if(t.keyCode===49||t.keyCode===50){if(a.length!==1)return;var r=t.keyCode===49?\"from\":\"to\";$tm.notify(_utils2.default.ucFirst(r)+\"-part selected\");this.conVector[r]=a[0];if(this.conVector.from&&this.conVector.to){this.handleConnectionEvent(this.conVector,function(){i.conVector={from:null,to:null}})}}}else{if(t.keyCode===13){if(a.length!==1)return;this.openTiddlerWithId(a[0])}}}},{key:\"handleCanvasKeydown\",value:function e(t){if(t.altKey||t.metaKey){t.preventDefault();if(t.keyCode>=48&&t.keyCode<=57){var i=String.fromCharCode(t.keyCode);this.view.setConfig(\"neighbourhood_scope\",i)}}else{if(t.keyCode===46){t.preventDefault();this.handleRemoveElements(this.network.getSelection())}}}},{key:\"handleDeleteElement\",value:function e(t){var i=t.paramObject.id;var a=i?[i]:this.network.getSelectedNodes();this.handleRemoveElements({nodes:a})}},{key:\"handleCanvasMouseMove\",value:function e(t){var i=this.network;if(!(t.ctrlKey&&t.buttons)){if(this.selectRect){this.selectRect=null;var a=i.getSelectedNodes();$tm.notify(a.length+\" nodes selected\");i.redraw()}return}t.preventDefault();t.stopPropagation();if(!this.domNode.contains(t.target)){return}var s=i.DOMtoCanvas({x:t.offsetX,y:t.offsetY});if(!this.selectRect){this.selectRect=new _SelectionRectangle2.default(s.x,s.y)}this.selectRect.span(s.x,s.y);var r=i.getPositions();var n=i.getSelectedNodes();for(var o in r){if(this.selectRect.isPointWithin(r[o])&&!_utils2.default.inArray(o,n)){n.push(o)}}i.selectNodes(n);this.assignActiveStyle(n);i.redraw()}},{key:\"handleCanvasScroll\",value:function e(t){var i=!!(this.isInSidebar||t.ctrlKey||this.enlargedMode||this.clickToUse&&this.networkDomNode.classList.contains(\"vis-active\"));var a=this.visOptions.interaction;var s=i===a.zoomView;if(i||!s){t.preventDefault()}if(!s){t.stopPropagation();a.zoomView=i;this.network.setOptions({interaction:{zoomView:i}});return false}}},{key:\"handleExtraCanvasScroll\",value:function e(t){t.preventDefault()}},{key:\"handleContextMenu\",value:function e(t){var i=this;t.preventDefault();var a=this.network;this.hidePopups(0,true);var s=a.getNodeAt({x:t.offsetX,y:t.offsetY});if(!s)return;var r=a.getSelectedNodes();if(!_utils2.default.inArray(s,r)){r=[s];a.selectNodes(r)}this.contextMenu.show(r,function(e,t){var a=e.length>1?\"multi\":\"single\";var s=\"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node\";_utils2.default.registerTransclude(i,\"contextMenuWidget\",s);i.contextMenuWidget.setVariable(\"mode\",a);i.contextMenuWidget.render(t)})}},{key:\"handleWidgetKeyup\",value:function e(t){}},{key:\"handleWidgetKeydown\",value:function e(t){if(t.ctrlKey){t.preventDefault();if(t.keyCode===70){t.preventDefault();var i=this.widgetPopupsPath+\"/focus\";_utils2.default.setText(i,_utils2.default.getText(i)?\"\":\"1\")}else{return}}else if(t.keyCode===120){t.preventDefault();this.toggleEnlargedMode(\"halfscreen\")}else if(t.keyCode===121){t.preventDefault();this.toggleEnlargedMode(\"fullscreen\")}else if(t.keyCode===27){t.preventDefault();_utils2.default.deleteByPrefix(this.widgetPopupsPath)}else{return}this.canvas.focus()}},{key:\"handlePasteNodesFromClipboard\",value:function e(){if(!this.editorMode){$tm.notify(\"Map is read only!\");return}if(!$tm.clipBoard||$tm.clipBoard.type!==\"nodes\"){$tm.notify(\"TiddlyMap clipboad is empty!\")}var t=$tm.clipBoard.nodes;var i=Object.keys(t);for(var a=i.length;a--;){var s=i[a];if(this.graphData.nodesById[s]){continue}this.view.addNode(t[s]);this.graphData.nodes.update({id:s})}this.network.selectNodes(i);this.rebuildGraph({resetFocus:{delay:0,duration:0}});$tm.notify(\"pasted \"+i.length+\" nodes into map.\")}},{key:\"handleAddNodesToClipboard\",value:function e(t){var i=this.network.getSelectedNodes();if(!i.length){return}$tm.clipBoard={type:\"nodes\",nodes:this.graphData.nodes.get(i,{returnType:\"Object\"})};$tm.notify(\"Copied \"+i.length+\" nodes to clipboard\");if(t===\"move\"){for(var a=i.length;a--;){this.view.removeNode(i[a])}}this.isPreventZoomOnNextUpdate=true}},{key:\"getVisOptions\",value:function e(){var t=this;var i=$tm.config.vis;var a=_utils2.default.parseJSON(this.view.getConfig(\"vis\"))||{};var s=a.layout||{},r=s.hierarchical;var n={layout:{hierarchical:{enabled:r===undefined||r===null?false:typeof r===\"boolean\"?r:r.enabled!==false}}};var o=_utils2.default.merge({},i,_utils2.default.merge(a,n));o.clickToUse=this.clickToUse;o.manipulation.enabled=!!this.editorMode;o.manipulation.deleteNode=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.deleteEdge=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.addEdge=function(e,i){t.handleConnectionEvent(e);t.resetVisManipulationBar(i)};o.manipulation.addNode=function(e,i){t.handleInsertNode(e);t.resetVisManipulationBar(i)};o.manipulation.editNode=function(e,i){t.handleEditNode(e);t.resetVisManipulationBar(i)};o.interaction.zoomView=!!(this.isInSidebar||this.enlargedMode);o.manipulation.editEdge=false;var l=o.physics;l[l.solver]=l[l.solver]||{};l.stabilization.iterations=1e3;this.logger(\"debug\",\"Loaded graph options\",o);return o}},{key:\"resetVisManipulationBar\",value:function e(t){if(t){t(null)}this.network.disableEditMode();this.network.enableEditMode()}},{key:\"isVisInEditMode\",value:function e(){return this.graphDomNode.getElementsByClassName(\"vis-button vis-back\").length>0}},{key:\"isLiveView\",value:function e(){return this.id===\"live_tab\"}},{key:\"handleCreateView\",value:function e(){var t=this;var i={view:this.view.getLabel()};$tm.dialogManager.open(\"createView\",i,function(e,i){if(!e)return;var a=_utils2.default.getField(i,\"name\");var s=_utils2.default.getField(i,\"clone\",false);if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\");return}if(s&&t.isLiveView()){$tm.notify(\"Forbidden to clone the live view!\");return}var r=new _ViewAbstraction2.default(a,{isCreate:true,protoView:s?t.view:null});t.setView(r)})}},{key:\"handleRenameView\",value:function e(){var t=this;if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var i=this.view.getOccurrences();var a={count:i.length.toString(),refFilter:_utils2.default.joinAndWrap(i,\"[[\",\"]]\")};$tm.dialogManager.open(\"renameView\",a,function(e,i){if(!e){return}var a=_utils2.default.getText(i);if(!a){$tm.notify(\"Invalid name!\")}else if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\")}else{t.view.rename(a);t.setView(t.view)}})}},{key:\"handleEditView\",value:function e(){var t=this;var i=JSON.stringify($tm.config.vis);var a=this.graphData;var s=this.view.getConfig();var r={\"filter.prettyNodeFltr\":this.view.getNodeFilter(\"pretty\"),\"filter.prettyEdgeFltr\":this.view.getEdgeTypeFilter(\"pretty\"),\"inherited-style\":i};var n={view:this.view.getLabel(),createdOn:this.view.getCreationDate(true),numberOfNodes:Object.keys(a.nodesById).length.toString(),numberOfEdges:Object.keys(a.edgesById).length.toString(),dialog:{preselects:$tw.utils.extend({},s,r)}};$tm.dialogManager.open(\"configureView\",n,function(e,i){if(!e){return}var a=_utils2.default.getPropertiesByPrefix(i.fields,\"config.\",true);var s=t.view.getConfig(\"background_image\");t.view.setConfig(a);if(a[\"physics_mode\"]&&!t.view.isEnabled(\"physics_mode\")){t.view.saveNodePositions(t.network.getPositions())}var r=t.view.getConfig(\"background_image\");if(r&&r!==s){$tm.notify(\"Background changed! You may need to zoom out a bit.\")}var n=_utils2.default.getField(i,\"filter.prettyNodeFltr\",\"\");var o=_utils2.default.getField(i,\"filter.prettyEdgeFltr\",\"\");t.view.setNodeFilter(n);t.view.setEdgeTypeFilter(o)})}},{key:\"handleSaveCanvas\",value:function e(){var t=this;var i=\"$:/temp/tmap/snapshot\";this.createAndSaveSnapshot(100,100,i);var a=this.view.getLabel()+\".png\";var s={dialog:{snapshot:i,view:this.view.getLabel(),preselects:{width:this.canvas.width.toString(),height:this.canvas.height.toString(),name:a,action:\"download\"}}};$tm.dialogManager.open(\"saveCanvas\",s,function(e,a){if(!e)return;var r=a.fields.width||s.dialog.preselects.width;var n=a.fields.height||s.dialog.preselects.height;t.createAndSaveSnapshot(r,n,i);var o=a.fields.name||s.dialog.preselects.imageName;var l=a.fields.action;if(l===\"download\"){t.handleDownloadSnapshot(r,n,o)}else if(l===\"wiki\"){_utils2.default.cp(i,o,true);t.dispatchEvent({type:\"tm-navigate\",navigateTo:o})}else if(l===\"placeholder\"){t.view.addPlaceholder(i)}$tw.wiki.deleteTiddler(\"$:/temp/tmap/snapshot\")})}},{key:\"handleDownloadSnapshot\",value:function e(t,i,a){var s=this.document.createElement(\"a\");var r=this.view.getLabel();s.download=a;s.href=this.getCanvasAsBase64({size:{width:t,height:i}});var n=new MouseEvent(\"click\");s.dispatchEvent(n)}},{key:\"createAndSaveSnapshot\",value:function e(t,i,a,s){$tw.wiki.addTiddler(new $tw.Tiddler({title:s||a,type:\"image/png\",text:this.getCanvasAsBase64({size:{width:t,height:i},withoutPreamble:true})},$tw.wiki.getCreationFields(),$tw.wiki.getModificationFields()));return a}},{key:\"getCanvasAsBase64\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.withoutPreamble,a=t.size;var s=this.graphDomNode.style.width;var r=this.graphDomNode.style.height;if(a){this.graphDomNode.style.width=a.width+\"px\";this.graphDomNode.style.height=a.height+\"px\";this.network.redraw()}var n=this.canvas.toDataURL(\"image/png\");if(a){this.graphDomNode.style.width=s;this.graphDomNode.style.height=r;this.network.redraw()}return i?_utils2.default.getWithoutPrefix(n,\"data:image/png;base64,\"):n}},{key:\"handleDeleteView\",value:function e(){var t=this;var i=this.view.getLabel();if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var a=this.view.getOccurrences();if(a.length){var s={count:a.length.toString(),refFilter:_utils2.default.joinAndWrap(a,\"[[\",\"]]\")};$tm.dialogManager.open(\"cannotDeleteViewDialog\",s);return}var r=\"\\n You are about to delete the view ''\"+i+\"''\\n (no tiddler currently references this view).\\n \";this.openStandardConfirmDialog(function(e){if(!e){return}t.view.destroy();t.setView($tm.misc.defaultViewLabel);var a='view \"'+i+\"' deleted\";t.logger(\"debug\",a);$tm.notify(a)},r)}},{key:\"handleTriggeredRefresh\",value:function e(t){this.logger(\"log\",t,\"Triggered a refresh\");var i=_utils2.default.getTiddler(_utils2.default.getText(t));if(this.isLiveView()){if(i){if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[i.fields.title]=true}var a=i.fields[\"tmap.open-view\"]||$tm.config.sys.liveTab.fallbackView;if(a&&a!==this.view.getLabel()){this.setView(a);return}}}this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}},{key:\"handleRemoveElements\",value:function e(t){var i=t.nodes,a=t.edges;if(i.length){this.handleRemoveNodes(i)}else if(a.length){this.handleRemoveEdges(a)}this.resetVisManipulationBar()}},{key:\"handleRemoveEdges\",value:function e(t){$tm.adapter.deleteEdges(this.graphData.edges.get(t));$tm.notify(\"edge\"+(t.length>1?\"s\":\"\")+\" removed\")}},{key:\"handleRemoveNodes\",value:function e(t){var i=this;var a=$tm.adapter.getTiddlersByIds(t);var s={count:t.length.toString(),tiddlers:$tw.utils.stringifyList(a),dialog:{preselects:{\"delete-from\":\"filter\"}}};$tm.dialogManager.open(\"deleteNodeDialog\",s,function(e,a){if(!e)return;var s=0;for(var r=t.length;r--;){var n=i.view.removeNode(t[r]);if(n){s++}}if(a.fields[\"delete-from\"]===\"system\"){$tm.adapter.deleteNodes(t);s=t.length}i.isPreventZoomOnNextUpdate=true;$tm.notify(\"\\n Removed \"+s+\"\\n of \"+t.length+\"\\n from \"+a.fields[\"delete-from\"]+\"\\n \")})}},{key:\"toggleEnlargedMode\",value:function e(t){if(!this.isInSidebar&&t===\"halfscreen\"){return}this.logger(\"log\",\"Toggled graph enlargement\");var i=this.enlargedMode;if(i){this.network.setOptions({clickToUse:this.clickToUse});_utils2.default.findAndRemoveClassNames([\"tmap-has-\"+i+\"-widget\",\"tmap-\"+i]);this.enlargedMode=null;document.body.scrollTop=this.scrollTop}if(!i||i!==t&&(t===\"fullscreen\"||t===\"halfscreen\"&&!this.isInSidebar)){this.scrollTop=document.body.scrollTop;this.enlargedMode=t;var a=this.isInSidebar?this.sidebar:_utils2.default.getFirstElementByClassName(\"tc-story-river\");$tw.utils.addClass(this.document.body,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(a,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(this.domNode,\"tmap-\"+t);this.network.setOptions({clickToUse:false});$tm.notify(\"Toggled \"+t+\" mode\")}this.handleResizeEvent()}},{key:\"handleGenerateWidget\",value:function e(t){$tw.rootWidget.dispatchEvent({type:\"tmap:tm-generate-widget\",paramObject:{view:this.view.getLabel()}})}},{key:\"handleSetCentralTopic\",value:function e(t){var i=t.paramObject;var a=i.id||this.network.getSelectedNodes()[0];if(a===this.view.getConfig(\"central-topic\")){a=\"\"}this.view.setCentralTopic(a)}},{key:\"handleVisStabilizedEvent\",value:function e(t){if(this.hasNetworkStabilized){return}this.hasNetworkStabilized=true;this.logger(\"log\",\"Network stabilized after\",t.iterations,\"iterations\");if(!this.view.isEnabled(\"physics_mode\")){var i=this.graphData.nodesById;var a=[];for(var s in i){if(i[s].x===undefined){a.push(s)}}if(a.length){this.setNodesMoveable(a,false);$tm.notify(a.length+\" nodes were added to the graph\")}var r=this.visOptions.physics;r[r.solver].centralGravity=0;this.network.setOptions(this.visOptions)}if(this.resetFocus){this.fitGraph(this.resetFocus.delay,this.resetFocus.duration);this.resetFocus=null}}},{key:\"handleFocusNode\",value:function e(t){var i=t.param;this.network.focus($tm.adapter.getId(i),{scale:1.5,animation:true})}},{key:\"isZombieWidget\",value:function e(){return this.domNode.isTiddlyWikiFakeDom===true||!this.document.body.contains(this.getContainer())}},{key:\"fitGraph\",value:function e(){var t=this;var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;clearTimeout(this.activeFitTimeout);var s=function e(){if(t.isZombieWidget()){return}t.network.redraw();t.network.fit({animation:{duration:a,easingFunction:\"easeOutQuart\"}})};this.activeFitTimeout=setTimeout(s,i)}},{key:\"handleInsertNode\",value:function e(t){var i=this;$tm.dialogManager.open(\"addNodeToMap\",{},function(e,a){if(!e){return}var s=_utils2.default.getField(a,\"draft.title\").trim();if(_utils2.default.tiddlerExists(s)){if(_utils2.default.isMatch(s,i.view.getNodeFilter(\"compiled\"))){$tm.notify(\"Node already exists\");return}else{t=$tm.adapter.makeNode(s,t);i.view.addNode(t)}}else{var r=new $tw.Tiddler(a,{\"draft.title\":null});t.label=s;$tm.adapter.insertNode(t,i.view,r)}i.isPreventZoomOnNextUpdate=true})}},{key:\"handleEditNode\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t.id);var s=_utils2.default.getTiddler(a);var r=$tm.config.vis.nodes;var n=_utils2.default.parseJSON(this.view.getConfig(\"vis\"),{}).nodes;var o={};o[t.id]=t;var l=$tm.adapter.getInheritedNodeStyles(o);var d=l[a];var h=_utils2.default.merge({},{color:s.fields[\"color\"]},_utils2.default.parseJSON(s.fields[\"tmap.style\"]));var u=this.view.getLabel();var g=_extends({},this.view.getNodeData(t.id));delete g.x;delete g.y;var f={view:u,tiddler:s.fields.title,tidColor:s.fields[\"color\"],tidIcon:s.fields[$tm.field.nodeIcon]||s.fields[\"tmap.fa-icon\"],tidLabelField:\"global.\"+$tm.field.nodeLabel,tidIconField:\"global.\"+$tm.field.nodeIcon,dialog:{preselects:{\"inherited-global-default-style\":JSON.stringify(r),\"inherited-local-default-style\":JSON.stringify(n),\"inherited-group-styles\":JSON.stringify(d),\"global.tmap.style\":JSON.stringify(h),\"local-individual-node-style\":JSON.stringify(g)}}};var v=function e(t,i,a){for(var s=a.length;s--;){f.dialog.preselects[t+\".\"+a[s]]=i[a[s]]||\"\"}};v(\"local\",g,[\"label\",\"tw-icon\",\"fa-icon\",\"open-view\"]);v(\"global\",s.fields,[$tm.field.nodeLabel,$tm.field.nodeIcon,\"tmap.fa-icon\",\"tmap.open-view\"]);$tm.dialogManager.open(\"editNode\",f,function(e,s){if(!e)return;var r=s.fields;var n=_utils2.default.getPropertiesByPrefix(r,\"global.\",true);for(var o in n){_utils2.default.setField(a,o,n[o]||undefined)}var l=_utils2.default.getPropertiesByPrefix(r,\"local.\",true);var d=_utils2.default.parseJSON(r[\"local-individual-node-style\"],{});for(var h in l){d[h]=l[h]||undefined}i.view.saveNodeStyle(t.id,d);i.isPreventZoomOnNextUpdate=true})}},{key:\"handleVisSingleClickEvent\",value:function e(t){var i=_utils2.default.isTrue($tm.config.sys.singleClickMode);if(i&&!this.editorMode){this.handleOpenMapElementEvent(t)}}},{key:\"handleVisDoubleClickEvent\",value:function e(t){if(t.nodes.length||t.edges.length){if(this.editorMode||!_utils2.default.isTrue($tm.config.sys.singleClickMode)){this.handleOpenMapElementEvent(t)}}else{if(this.editorMode){this.handleInsertNode(t.pointer.canvas)}}}},{key:\"handleOpenMapElementEvent\",value:function e(t){var i=this;var a=t.nodes,s=t.edges;if(a.length){var r=this.graphData.nodesById[a[0]];if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[$tm.adapter.getTiddlerById(r.id)]=true;this.isPreventZoomOnNextUpdate=Date.now()+500;this.rebuildGraph();if(this.view.isEnabled(\"neighbourhood_focus_newly_traced_node\")){setTimeout(function(){i.network.focus(r.id,{scale:1,animation:true})},1500)}}if(r[\"open-view\"]){$tm.notify(\"Switching view\");this.setView(r[\"open-view\"])}this.openTiddlerWithId(a[0])}else if(s.length){this.logger(\"debug\",\"Clicked on an Edge\");var n=this.graphData.edgesById[s[0]].type;this.handleEditEdgeType(n)}else{return}this.hidePopups(0,true)}},{key:\"handleEditEdgeType\",value:function e(t){if(!this.editorMode)return;var i=$tm.config.sys.edgeClickBehaviour;if(i!==\"manager\")return;$tw.rootWidget.dispatchEvent({type:\"tmap:tm-manage-edge-types\",paramObject:{type:t}})}},{key:\"handleResizeEvent\",value:function e(t){if(this.isZombieWidget())return;var i=this.getAttr(\"height\");var a=this.getAttr(\"width\");if(this.isInSidebar){var s=this.domNode.getBoundingClientRect();var r=15;a=document.body.clientWidth-s.left-r+\"px\";var n=parseInt(this.getAttr(\"bottom-spacing\"))||15;var o=window.innerHeight-s.top;i=o-n+\"px\"}this.domNode.style.height=i||\"300px\";this.domNode.style.width=a;this.repaintGraph()}},{key:\"handleClickEvent\",value:function e(t){if(this.isZombieWidget()||!this.network)return;if(!this.graphDomNode.contains(t.target)){var i=this.network.getSelection();if(i.nodes.length||i.edges.length){this.logger(\"debug\",\"Clicked outside; deselecting nodes/edges\");this.network.selectNodes([]);this.resetVisManipulationBar()}}else{this.canvas.focus()}if(t.button!==2){this.contextMenu.hide(0,true)}}},{key:\"handleVisSelectNode\",value:function e(t){var i=t.nodes;if(!this.isDraggingAllowed(i)){return}this.assignActiveStyle(i)}},{key:\"isDraggingAllowed\",value:function e(t){var i=t.nodes;return this.editorMode||this.view.isEnabled(\"physics_mode\")}},{key:\"assignActiveStyle\",value:function e(t){if(!Array.isArray(t))t=[t];var i=this.visOptions.nodes.color;for(var a=t.length;a--;){var s=t[a];var r=this.graphData.nodesById[s];var n=_utils2.default.merge({},i,r.color);this.graphData.nodes.update({id:s,color:{highlight:n,hover:n}})}}},{key:\"handleVisDeselectNode\",value:function e(t){}},{key:\"handleVisDragEnd\",value:function e(t){var i=t.nodes;if(!i.length){return}if(i.length===1&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[i[0]];this.graphData.nodes.update(_extends({id:i[0]},_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")))))}this.draggedNode=null;this.setNodesMoveable(i,false)}},{key:\"handleVisBeforeDrawing\",value:function e(t){var i=this.view,a=this.network,s=this.backgroundImage;if(s){t.drawImage(s,0,0)}if(i.isEnabled(\"raster\")){_utils2.default.drawRaster(t,a.getScale(),a.getViewPosition(),parseInt(i.getConfig(\"raster\")))}}},{key:\"handleVisAfterDrawing\",value:function e(t){if(this.selectRect){var i=this.selectRect.getRect();t.beginPath();t.globalAlpha=.5;t.fillStyle=\"#EAFFEF\";t.fillRect.apply(t,_toConsumableArray(i));t.beginPath();t.globalAlpha=1;t.strokeStyle=\"#B4D9BD\";t.strokeRect.apply(t,_toConsumableArray(i))}if(this.draggedNode&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[this.draggedNode];var s=_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")));t.strokeStyle=\"green\";t.fillStyle=\"green\";t.beginPath();t.moveTo(a.x,a.y);t.lineTo(s.x,s.y);t.stroke();t.beginPath();t.arc(s.x,s.y,5,0,Math.PI*2);t.fill()}}},{key:\"constructTooltip\",value:function e(t,i){var a=_utils2.default.parseJSON(t);var s=a.node||a.edge;var r=null;var n=\"text/html\";var o=\"text/vnd-tiddlywiki\";if(a.node){var l=$tm.tracker.getTiddlerById(s);var d=_utils2.default.getTiddler(l);var h=d.fields[$tm.field.nodeInfo];if(h){i.innerHTML=$tw.wiki.renderText(n,o,h)}else if(d.fields.text){_utils2.default.registerTransclude(this,\"tooltipWidget\",l);this.tooltipWidget.setVariable(\"tv-tiddler-preview\",\"yes\");this.tooltipWidget.render(i)}else{i.innerHTML=l}}else{var u=this.graphData.edgesById[s];var g=$tm.indeces.allETy[u.type];if(g.description){r=$tw.wiki.renderText(n,o,g.description)}i.innerHTML=r||g.label||g.id}}},{key:\"handleVisHoverElement\",value:function e(t){if($tm.mouse.buttons)return;var i=t.node||t.edge;var a=JSON.stringify(t);if(t.node){this.assignActiveStyle(i)}if(!this.isVisInEditMode()&&!this.contextMenu.isShown()){var s=this.constructTooltip;this.tooltip.show(a,s)}}},{key:\"handleVisBlurElement\",value:function e(t){this.tooltip.hide()}},{key:\"handleVisLoading\",value:function e(t){var i=t.total,a=t.iterations;this.graphLoadingBarDomNode.style.display=\"block\";this.graphLoadingBarDomNode.setAttribute(\"max\",i);this.graphLoadingBarDomNode.setAttribute(\"value\",a)}},{key:\"handleVisLoadingDone\",value:function e(t){this.graphLoadingBarDomNode.style.display=\"none\"}},{key:\"handleVisDragStart\",value:function e(t){var i=t.nodes;if(!i.length||!this.isDraggingAllowed(i)){return}this.hidePopups(0,true);this.assignActiveStyle(i);this.setNodesMoveable(i,true);if(i.length===1){this.draggedNode=i[0]}}},{key:\"destruct\",value:function e(){_utils2.default.setDomListeners(\"remove\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"remove\",this.domNode,this.widgetDomListeners);this._destructVis()}},{key:\"_destructVis\",value:function e(){if(!this.network)return;_utils2.default.setDomListeners(\"remove\",this.canvas,this.canvasDomListeners);this.network.destroy();this.network=null}},{key:\"openTiddlerWithId\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t);this.logger(\"debug\",\"Opening tiddler\",a,\"with id\",t);if(this.enlargedMode===\"fullscreen\"){var s=$tw.wiki.findDraft(a);var r=!!s;if(!r){var n=\"tm-edit-tiddler\";this.dispatchEvent({type:n,tiddlerTitle:a});s=$tw.wiki.findDraft(a)}var o={draftTRef:s,originalTRef:a};$tm.dialogManager.open(\"fullscreenTiddlerEditor\",o,function(e,t){if(e){var n=\"tm-save-tiddler\";i.dispatchEvent({type:n,tiddlerTitle:s})}else if(!r){_utils2.default.deleteTiddlers([s])}var o=\"tm-close-tiddler\";i.dispatchEvent({type:o,tiddlerTitle:a})})}else{var l=this.domNode.getBoundingClientRect();this.dispatchEvent({type:\"tm-navigate\",navigateTo:a,navigateFromTitle:this.getVariable(\"storyTiddler\"),navigateFromNode:this,navigateFromClientRect:{top:l.top,left:l.left,width:l.width,right:l.right,bottom:l.bottom,height:l.height}})}}},{key:\"getViewHolderRef\",value:function e(){if(this.viewHolderRef){return this.viewHolderRef}this.logger(\"info\",\"Retrieving or generating the view holder reference\");var t=this.getAttr(\"view\");var i=null;if(t){this.logger(\"log\",'User wants to bind view \"'+t+\"' to graph\");var a=$tm.path.views+\"/\"+t;if($tw.wiki.getTiddler(a)){i=$tm.path.localHolders+\"/\"+_utils2.default.genUUID();this.logger(\"log\",'Created an independent temporary view holder \"'+i+'\"');_utils2.default.setText(i,a);this.logger(\"log\",'View \"'+a+\"' inserted into independend holder\")}else{this.logger(\"log\",'View \"'+t+'\" does not exist')}}if(!i){this.logger(\"log\",\"Using default (global) view holder\");i=$tm.ref.defaultViewHolder}return i}},{key:\"setView\",value:function e(t,i){if(!_ViewAbstraction2.default.exists(t)){return}t=new _ViewAbstraction2.default(t);var a=t.getLabel();i=i||this.viewHolderRef;this.logger(\"info\",'Inserting view \"'+a+'\" into holder \"'+i+'\"');$tw.wiki.addTiddler(new $tw.Tiddler({title:i,text:a}));this.update({changedTiddlers:_defineProperty({},i,true)})}},{key:\"getView\",value:function e(t){if(!t&&this.view){return this.view}var i=this.getViewHolderRef();var a=_utils2.default.getText(i);this.logger(\"debug\",\"Retrieved view from holder\");var s=void 0;if(_ViewAbstraction2.default.exists(a)){s=new _ViewAbstraction2.default(a)}else{this.logger(\"debug\",'Warning: View \"'+a+\"\\\" doesn't exist. Default is used instead.\");s=new _ViewAbstraction2.default(\"Default\")}return s}},{key:\"reloadBackgroundImage\",value:function e(t){var i=this;this.backgroundImage=null;var a=this.view.getConfig(\"background_image\");var s=_utils2.default.getTiddler(a);if(!s&&!a)return;var r=new Image;r.onload=function(){i.backgroundImage=r;i.repaintGraph()};if(s){var n=s.fields[\"_canonical_uri\"];if(n){r.src=n}else if(s.fields.text){r.src=$tw.utils.makeDataUri(s.fields.text,s.fields.type)}}else if(a){r.src=a}}},{key:\"repaintGraph\",value:function e(){var t=$tw.utils.hasClass(this.document.body,\"tmap-has-fullscreen-widget\");if(this.network&&(!t||t&&this.enlargedMode)){this.logger(\"info\",\"Repainting the whole graph\");this.network.redraw();this.fitGraph(0,1e3)}}},{key:\"setGraphButtonEnabled\",value:function e(t,i){var a=\"vis-button tmap-\"+t;var s=_utils2.default.getFirstElementByClassName(a,this.domNode);$tw.utils.toggleClass(s,\"tmap-button-enabled\",i)}},{key:\"setNodesMoveable\",value:function e(t,i){if(!t||!t.length||this.view.isEnabled(\"physics_mode\")){return}var a=[];var s=!i;for(var r=t.length;r--;){a.push({id:t[r],fixed:{x:s,y:s}})}this.graphData.nodes.update(a);if(s){this.logger(\"debug\",\"Fixing\",a.length,\"nodes\");this.view.saveNodePositions(this.network.getPositions());this.isPreventZoomOnNextUpdate=true}}},{key:\"addGraphButtons\",value:function e(t){var i=_utils2.default.getFirstElementByClassName(\"vis-navigation\",this.domNode);for(var a in t){var s=this.document.createElement(\"div\");s.className=\"vis-button tmap-\"+a;s.addEventListener(\"click\",t[a].bind(this),false);i.appendChild(s);this.setGraphButtonEnabled(a,true)}}}]);return t}(_widget.widget);exports.tmap=MapWidget;exports.tiddlymap=MapWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/MapWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/license": {
"title": "$:/plugins/felixhayashi/tiddlymap/license",
"subtitle": "License",
"caption": "License",
"text": "\\rules except wikilink\n\n!! TiddlyMap\n\nCopyright (c) 2014, Felix Küppers\nAll rights reserved.\n\nTiddlyMap is licensed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]]. For the exact license terms, please visit [[https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]]. \n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n# BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n# Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! Vis.js\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n# Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n# MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/tiddlymap/readme": {
"title": "$:/plugins/felixhayashi/tiddlymap/readme",
"text": "* Please refer to the project-readme hosted at [[https://github.com/felixhayashi/TW5-TiddlyMap]].\n* A demo with several examples and explanations can be found at [[http://tiddlymap.org]]."
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown",
"description": "Automatically assigned to an edge that does not have a type assigned",
"style": "{\"color\":\"gray\"}",
"show-label": "false"
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link",
"description": "A link that is contained in the tiddler's body pointing to another resource.",
"style": "{\"color\":\"orange\", \"dashes\":true}",
"label": "links to",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list",
"description": "Contained in a list of this tiddler",
"style": "{ \"color\": \"red\", \"dashes\":true}",
"label": "listed in",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags",
"description": "A tag that refers to a tiddler of the same name.",
"style": "{ \"color\": \"darkslategray\", \"dashes\":true}",
"label": "tagged with"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Please visit the [[online docs|http://tiddlymap.org/Documentation]]\n for more information about the available global options.\n</div>\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Plugin version</th>\n <td><<pluginVersion>></td>\n </tr>\n<!--\n <tr>\n <th align=\"left\">Datastructure version</th>\n <td><<dataStructureVersion>></td>\n </tr>\n-->\n <tr>\n <th align=\"left\">Nodes in system</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges in system</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor",
"caption": "Editor",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Neighbour­hood menu\"\n field:\"config.sys.editorMenuBar.showNeighScopeButton\"\n descr:\"Show or hide the neighbourhood menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Screen­shot menu\"\n field:\"config.sys.editorMenuBar.showScreenshotButton\"\n descr:\"Show or hide the screenshot menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Raster­ menu\"\n field:\"config.sys.editorMenuBar.showRasterMenuButton\"\n descr:\"Show or hide the raster menu button.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields",
"caption": "Field settings",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Node-icon field\"\n field:\"config.sys.field.nodeIcon\" \n descr:\"Local image used as node image in the graphs.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-label field\"\n field:\"config.sys.field.nodeLabel\" \n descr:\"Alternative node label to use instead of the title.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-info field\"\n field:\"config.sys.field.nodeInfo\" \n descr:\"Field used as tooltip when hovering over a node in a graph.\"\n note:\"It is prohibited to use the text field here.\">>\n</table> \n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction",
"caption": "Interaction & behaviour",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Default startup view\"\n field=\"config.sys.defaultView\"\n nochoice=\"Last view used at startup\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display at startup\" />\n <<tmap-row type:\"input-checkbox\"\n title:\"Show popups\"\n field:\"config.sys.popups.enabled\"\n descr:\"Set this to true if you want to see automatic\n popups in the map.\">>\n <$list filter=\"[config.sys.popups.enabled[true]]\">\n <<tmap-row type:\"input-text\"\n title:\"Popup delay\"\n field:\"config.sys.popups.delay\"\n descr:\"The time in miliseconds that needs to pass after\n a tooltip is triggered.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup width\"\n field:\"config.sys.popups.width\"\n descr:\"The default max-width of the popup.\"\n note:\"Make sure you added the desired unit (e.g. `px`).\n Requires a wiki refresh.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup height\"\n field:\"config.sys.popups.height\"\n descr:\"The default max-height of the popup.\"\n note:\"Make sure you added desired the unit (e.g. `px`).\n Requires a wiki refresh.\">>\n </$list>\n <<tmap-row type:\"input-checkbox\"\n title:\"Allow single click mode\"\n field:\"config.sys.singleClickMode\"\n descr:\"A single click on a node is sufficient to open the\n corresponding tiddler.\"\n note:\"Drag and drop will still work and does not cause a\n tiddler to be opened. Single click is never active in\n the map editor.\">>\n <<tmap-row type:\"input-select\"\n title:\"Edge click behaviour\"\n field:\"config.sys.edgeClickBehaviour\"\n selectFilter:\"[[nothing|Nothing]]\n [[manager|Open edge-type manager]]\"\n descr:\"What should happen when you click on an edge?\">>\n <<tmap-row type:\"input-select\" title:\"Raster size\" field:\"config.sys.raster\"\n selectFilter:\"[[|disabled]] [[5|5px]] [[10|10px]] [[15|15px]] [[20|20px]] [[30|30px]] [[40|40px]]\"\n descr:\"Snap nodes to an invisible raster of the given size after drag'n'drop.\"\n note:\"Only works when the view is not in floating mode\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Apply node-filter to neighbours\"\n field:\"config.sys.nodeFilterNeighbours\"\n descr:\"If checked, neighbours displayed in the map will be filtered\n by the view's node-filter. Otherwise the node-filter will only be used\n to filter the original set of nodes in the map\">>\n</table>\n\n!! Suppressed dialogs\n\n<div class=\"tmap-flash-message tmap-plain\">\n Dialogs that you decided to suppress in the past are listed here.\n Remove the checkmark to enable dialogs again.\n</div>\n\n<table class=\"tmap-config-table\">\n <$list\n filter=\"[<output>fields[]prefix[config.sys.suppressedDialogs]]\"\n emptyMessage=\"–\">\n <$set name=\"dialogName\" value=<<tmap basename \".\">>>\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Suppress '$(dialogName)$' dialog\"\n field=<<currentTiddler>> />\n </$set>\n <br />\n </$list>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab",
"caption": "Live tab",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Live tab\"\n field:\"liveTab\" \n descr:\"Show or hide the live tab in the sidebar.\">>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Fallback view\"\n field=\"config.sys.liveTab.fallbackView\" \n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display in the sidebar's live tab in\n case the current tiddler did not specify a view\n to open.\" />\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig",
"subtitle": "{{$:/core/images/options-button}} Global configuration of TiddlyMap",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity",
"caption": "Verbosity",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Here you can restrict the system's talkativeness.\n</div>\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Debug output\"\n field:\"config.sys.debug\" \n descr:\"Set this to true if you want debug information to be\n displayed in the browser console.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show notifications\"\n field:\"config.sys.notifications\" \n descr:\"Set this to true if you want to receive fade-out\n notifications for important events.\">>\n</table> "
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis",
"classes": "tmap-remove-top-space",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The global vis configurations will affect all views and their\n elements (nodes and edges) unless they are overridden on a lower\n level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n All configurations __only__ affect this view.\n</div>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td><<createdOn>></td>\n </tr>\n <tr>\n <th align=\"left\">Nodes contained in graph</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges contained in graph</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters",
"caption": "Edit filters",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Completely new to filters? Please read\n [[Introduction to filter notation|http://tiddlywiki.com/#Introduction%20to%20filter%20notation]]\n first.\n</div>\n\n<fieldset>\n <legend>Filters <sup>[1]</sup></legend>\n <table class=\"tmap-config-table tmap-large-input\">\n <<tmap-row type:\"input-textarea\"\n title:\"Node filter\"\n field:\"filter.prettyNodeFltr\"\n descr:\"In the map, only those tiddlers that match this filter\n are shown. Drafts and system tiddlers are automatically\n excluded.\">>\n <<tmap-row type:\"input-textarea\"\n title:\"Edge-type filter\"\n field:\"filter.prettyEdgeFltr\" \n descr:\"Only edges with a type that matches the filter are shown.\">>\n </table> \n</fieldset>\n\n---\n\n<sup>[1]</sup> In the editors above, a new line is equivalent to a space symbol.<br />\n<sup>[2]</sup> It is suggested to read\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nand [[Edge-type namespaces|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nbefore using Tiddlymap's filter editor."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout",
"caption": "Layout",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Floating nodes\"\n field:\"config.physics_mode\"\n descr:\"Set this to true if you want your nodes to freely\n swirl around.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Filter nodes by edge types\"\n field:\"config.filter_nodes_by_edge_types\"\n descr:\"Only display nodes having edges matching the edge-type filter.\">>\n <<tmap-row type:\"input-text\"\n title:\"Background image\"\n field:\"config.background_image\"\n descr:\"The title of an image tiddler to be used as background\n in the view.\"\n note:\"You can also use an image url directly, however, the\n image needs be stored under the same domain as your wiki.\n Otherwise, it won't be displayed!\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace",
"caption": "Namespace",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table tmap-small-input\">\n <<tmap-row type:\"input-text\"\n title:\"Edge-type namespace\"\n field:\"config.edge_type_namespace\" \n descr:\"A namespace (like `foaf` in `foaf:knows`) that will be\n automatically added to all edge types you create in\n this view. The namespace is only added if the types\n do not exist yet and do not have a namespace assigned yet.\n Namespaces are always hidden in the graph.\"\n note:\"Most likely, you don't want the edges created with this\n namespace to leak into other views, moreover, you don't\n want edges that do not possess the namespace ever to be\n shown here. In this case, use a private marker (`_`)\n in front of your namespace, e.g. `_mynamespace` and use\n an appropriate edge type filter, i.e. `+[prefix[_mynamespace]]`\n For further information see:\n \n * [[Edge-type namespaces|http://tiddlymap.org/#Edge-type%20namespaces]]\n * [[Private edge types|http://tiddlymap.org/#Private%20edge%20types]]\n \">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView",
"subtitle": "{{$:/core/images/options-button}} View configuration -- <<view>>",
"text": "\\rules except wikilink\n\n\\define privateEdgeTypes() [[private edge-types|http://tiddlymap.org/#Private%20edge%20types]]\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The local vis configurations will affect all\n elements (nodes and edges) of this view, unless they are\n overridden on a lower level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on the\n graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType",
"subtitle": "{{$:/plugins/felixhayashi/tiddlymap/icon}} Edge type specification",
"text": "\\rules except wikilink\n\\rules except underscore\n\n\\define filter() $(allEdgeTypes)$ +[search:title[$(term)$]]\n\n\\define badge(color, label, tooltip)\n<span style=\"background: $color$\" title=\"$tooltip$\">$label$</span>\n\\end\n\n\\define badges()\n<$tiddler tiddler={{!!text}}>\n<$set name=\"id\" value=<<tmap \"getETyId\" \"$(view)$\">>>\n<$set name=\"isVisible\" value=<<tmap \"isETyVisible\" \"$(view)$\">>>\n<div class=\"tmap-badges\">\n <span\n style=\"background: darkslategray\"\n title=\"Your input translates into this id.\">\n <<id>>\n </span>\n <$list filter=\"[<isVisible>regexp[true]]\">\n <<badge \"green\" \"visible\" \"Matches your view's filter\">>\n </$list>\n <$list filter=\"[<isVisible>regexp[false]]\">\n <<badge \"red\" \"not visible\" \"Doesn't match your view's filter\">>\n </$list>\n <$list filter=\"[<id>!regexp[^tmap:unknown$]]\" variable=\"item\">\n <$list filter=\"[<id>regexp[^_]]\">\n <<badge \"purple\" \"private\" \"Not shown in other views per default\">>\n </$list>\n <$list filter=\"[<id>regexp[.+:.+]]\">\n <<badge \"orange\" \"namespace\" \"This type is prefixed with a proper namespace\">>\n </$list>\n </$list>\n</div>\n</$set>\n</$set>\n</$tiddler>\n\\end\n\n\\define search()\n<p>\n You are about to connect \"<$text text=\"$(fromLabel)$\" />\"\n with \"<$text text=\"$(toLabel)$\" />\". Please specify a type.\n</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Type:</b></td>\n <td>\n <$edit-text\n focus=\"true\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <<badges>>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!text}}>\n <$set name=\"allEdgeTypes\" value=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <ul class=\"tmap-small-list\">\n <$list filter=<<filter>>>\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> text={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </$set>\n </td>\n </tr>\n</table>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap",
"subtitle": "{{$:/core/images/tag-button}} Add node",
"classes": "tmap-modal-add-node",
"text": "\\rules except wikilink\n\n\\define backButtonText() back to list\n\\define outputAndTemplate() [[$(output)$]] [[$(template)$]]\n\n\\define editor()\n <$button class=\"tmap-go-back tc-btn-invisible\">\n {{$:/core/images/chevron-left}} <<backButtonText>>\n <$action-deletefield $tiddler=<<temp>> more template />\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n </$button>\n\n <$list filter=\"[<output>get[draft.title]is[tiddler]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n Tiddler already exists! Use another title or click\n \"<<backButtonText>>\" to cancel your edit.\n </div>\n </$list>\n\n <div class=\"tmap-modal-editor\">\n <table class=\"tmap-config-table\">\n <tr class=\"tmap-template-select\">\n <td>Template</td>\n <td>\n <$select\n tiddler=<<temp>>\n field=\"template\">\n <option value=\"\"></option>\n <$list filter=<<tmap \"option\" \"selector.allPotentialNodes\">>>\n <option><$view field=\"title\" /></option>\n </$list>\n </$select>\n <$button>Load\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n <$list filter=\"[<temp>get[template]]\" variable=\"template\">\n <$action-sendmessage\n $message=\"tmap:tm-merge-tiddlers\"\n tiddlers=<<outputAndTemplate>>\n output=<<output>> />\n <$action-deletefield $tiddler=<<output>> tmap.id tmap.edges />\n </$list>\n </$button>\n </td>\n <td>Press the \"load\" button to activate the template.</td>\n </tr>\n </table>\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<output>>>\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" mode=\"block\" />\n </$set>\n </$importvariables>\n </div>\n\\end\n\n\\define search()\n<p>Add an existing tiddler to the map or create a new one.</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Title:</b></td>\n <td>\n <$edit-text\n tiddler=<<output>>\n field=\"draft.title\"\n focus=\"true\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n <$button\n tooltip=\"The tiddler does not exist yet and you may edit it\n before it is added to the map\">\n {{$:/core/images/edit-button}}\n <$action-setfield $tiddler=<<temp>> more=\"true\" />\n </$button> <sup>[1]</sup>\n </$list>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!draft.title}}>\n <ul class=\"tmap-small-list\">\n <$list filter=\"[search:title<term>!is[system]!has[draft.of]]\">\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> draft.title={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </td>\n </tr>\n</table>\n\n<$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n<hr />\n<sup>[1]</sup>\n<small>\n The tiddler does not exist yet and you may edit it\n before it is added to the map\n</small>\n</$list>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n<$list filter=\"[<temp>has[more]]\" variable=\"item\"><<editor>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog",
"subtitle": "{{$:/core/images/locked-padlock}} You cannot delete this view!",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt is not possible to delete the current view as ''<<count>>'' tiddlers\nare referencing it. To delete the view you must first remove the tiddlymap\nwidgets in the tiddlers listed below or change their view attributes.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nAfter the references are removed, you may delete the view.\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation",
"subtitle": "{{$:/core/images/import-button}} You must confirm in order to proceed!",
"text": "\\rules except wikilink\n\n<<message>>\n\n''Are you really sure you want to do this?''"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/createView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/createView",
"subtitle": "{{$:/core/images/new-button}} Creating a new view",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"View name\"\n field:\"name\"\n focus:\"true\"\n class:\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\"\n descr:\"The name for the new view. If no name is entered,\n the program will invent one for you.\"\n note:\"You cannot override an existing view. In this case,\n you need to delete the old view first! You must no use\n slashes (`/`) in the name.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Clone view\"\n field:\"clone\"\n descr:\"Use the view that is currently displayed in the\n editor as blueprint. The view will be an __exact__\n clone of the current one, only with a different\n name.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog",
"subtitle": "{{$:/core/images/delete-button}} You are about to delete <<count>> nodes",
"text": "\\rules except wikilink\n\n''Please choose an option or abort:''\n\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"system\">\n Delete nodes from system <sup>[1]</sup>\n</$radio><br />\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"filter\">\n Delete nodes from graph's filter <sup>[2]</sup>\n</$radio>\n\nThe following nodes will be deleted:\n\n<ul>\n<$list filter=<<tiddlers>>>\n <li><$view tiddler={{!!title}} field=\"title\" /></li>\n</$list>\n</ul>\n\n---\n\n<sup>[1]</sup>\n<small>This will delete all nodes, their corresponding tiddlers and all connected edges.</small><br/>\n<sup>[2]</sup>\n<small>''Important:'' Removing a node from the graph's filter only works, if the node has been added in the map editor per double click or via \"Add Node\". If the node hasn't been added as mentioned above, you need to change the underlying tiddler in a way that it doesn't match your filter anymore, if you don't want it to be displayed in the graph.</small>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo",
"subtitle": "{{$:/core/images/info-button}} Dublicate id detected",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nTiddlyMap requires the value of the id field (\"tmap.id\") to be\nunique in order to correctly identify nodes and tiddlers.\n\nThe id of the \"<<param.changedTiddler>>\" already exists for these tiddlers:\n\n<ul>\n<$list filter=<<param.filter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nTherefore TiddlyMap\n\n* assigned a new id to tiddler \"<<param.changedTiddler>>\"\n* removed all edges from \"<<param.changedTiddler>>\"\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible",
"subtitle": "{{$:/core/images/info-button}} Edge will not be visible in view \"<<view>>\"",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nYou just created an edge of type\n<code><$text text=<<type>> /></code> that will not be\nvisible in this view because it doesn't match your\nedge-type filter settings.\n\nThe current edge-type filter of view \"<<view>>\" looks like this:\n\n<pre><code><$text text=<<eTyFilter>> /></code></pre>\n\nTo have the newly added type displayed in your view, adjust your\nedge-type filter accordingly. \n\nSome suggestions:\n\n<ul>\n <li>\n Explicitly add the type to the filter:\n <code><$text text=\"[[\" /><$text text=<<type>> /><$text text=\"]]\" /></code>\n </li>\n <li>\n <$set\n filter=\"[<type>regexp[:]splitbefore[:]]\"\n name=\"prefix\"\n emptyValue=<<tmap halfOfString \"$(type)$\">>>\n Add a filter rule (e.g. a prefix filter) that will match\n your type: <code>[prefix[<<prefix>>]]</code>\n </$set>\n </li>\n <li>Make your current view-filter less restrictive.</li>\n</ul>\n\nFor further information, please see:\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default",
"caption": "Global node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n A node's ''global configuration''\n (also referred to as //global individual config//) defines its\n individual appearance and behaviour in all views.\n</div>\n<<maybeShowTidColorWarning>>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=<<tidIconField>>\n faIconField=\"global.tmap.fa-icon\"\n labelField=<<tidLabelField>> />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"global.tmap.style\"\n styleName=\"node's global style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local",
"caption": "Local node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The ''local node configuration''\n (also referred to as //view-specific node configuration//)\n overrides the //global individual configuration// and only affects\n the node's appearance and behaviour in the current view.\n</div>\n<<maybeShowTidColorWarning>>\n\n<fieldset>\n <legend>Behaviour</legend>\n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Open view\"\n field=\"local.open-view\"\n nochoice=\"Disabled\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"Clicking on this node will open the specified\n view instead of the tiddler represented by this node.\" />\n </table>\n</fieldset>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=\"local.tw-icon\"\n faIconField=\"local.fa-icon\"\n labelField=\"local.label\" />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"local-individual-node-style\"\n styleName=\"node's local style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\n [[global.tmap.style]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode",
"subtitle": "{{$:/core/images/edit-button}} Editing style of node \"<<tiddler>>\"",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define maybeShowTidColorWarning()\n <$list filter=\"[<tidColor>regexp[.+]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n You have set the tiddler's color\n field to \"<<tidColor>>\". This value will be completely ignored\n when you change node's color properties in the vis editor below.\n </div>\n </$list>\n\\end\n\n\\define iconSettings(twIconField, faIconField)\n <fieldset>\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"$twIconField$\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"$faIconField$\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n </fieldset>\n\\end\n\n\\define sharedSettings(twIconField, faIconField, labelField)\n <fieldset>\n <legend>General Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"$labelField$\"\n descr:\"Use this value as node label.\">>\n </table>\n </fieldset>\n <!-- display icon fieldset -->\n <<iconSettings \"$twIconField$\" \"$faIconField$\">> \n\\end\n\n<$macrocall\n $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft",
"caption": "Draft",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<draftTRef>> >\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original",
"caption": "Current Version",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<originalTRef>> >\n <$transclude tiddler=\"$:/core/ui/ViewTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor",
"subtitle": "{{$:/core/images/edit-button}} <<originalTRef>>",
"classes": "tmap-modal-fullscreen-editor tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab() $:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original\n\n<$macrocall $name=\"tabs\"\n default=<<defaultTab>>\n tabsList=\"[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/]]\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged",
"subtitle": "{{$:/core/images/info-button}} The field \"<<name>>\" changed",
"text": "\\rules except wikilink\n\nYou changed the field \"<<name>>\" from \"<<oldValue>>\" to \"<<newValue>>\".\n\nIt is recommended to let TiddlyMap copy all values from the former field \"<<oldValue>>\" to the new field \"<<newValue>>\" so the data stored in \"<<oldValue>>\" is not lost. This operation has to be done now or never.\n\nDo you want to move each tiddler's existing \"<<oldValue>>\" value to \"<<newValue>>\"? Please note that any value currently stored in \"<<newValue>>\" would consequently be overridden and the old field \"<<oldValue>>\" would be eventually removed!"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported",
"subtitle": "{{$:/core/images/info-button}} Your machine does not support fullscreen",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nPlease have a look [[here|http://caniuse.com/#feat=fullscreen]] to see a list of supported devices/browsers.\n\nSorry for this :("
},
"$:/plugins/felixhayashi/tiddlymap/dialog/renameView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/renameView",
"subtitle": "{{$:/core/images/tag-button}} Please specify a view name",
"text": "\\rules except wikilink\n\n''Name:''\n<$edit-text focus=\"true\" tiddler=<<output>> field=\"text\" type=\"text\" tag=\"input\" default=\"\"\n class=\"tmap-trigger-field tmap-triggers-ok-button-on-enter\" />\n\nNote that ''<<count>>'' tiddlers are referencing this view.\n\n<$reveal type=\"nomatch\" text=\"0\" default=<<count>>>\n\nRenaming the view will cause the reference to be invalid.\nIt is recommended to first remove the tiddlymap widgets in\nthe tiddlers listed below or change their view attributes\naccordingly.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$text text=<<item>> /></li>\n</$list>\n</ul>\n\n</$reveal>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas",
"subtitle": "{{$:/core/images/options-button}} Save a snapshot image of view \"<<view>>\"",
"text": "\\rules except wikilink\n\n\\define preview()\n<div class=\"tmap-save-canvas-preview\">\n <$transclude tiddler=<<snapshot>> /><br />\n</div>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=\"tmap-row\"\n type=\"input-text\"\n title=\"Name\"\n field=\"name\"\n descr=<<preview>> />\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"width\"\n descr:\"Scales the image to match this new width (unit: px)\">>\n <<tmap-row type:\"input-text\"\n title:\"height\"\n field:\"height\"\n descr:\"Scales the image to match this new height (unit: px)\">>\n <<tmap-row type:\"input-radio\"\n title:\"Action\"\n field:\"action\"\n selectFilter:\"[[download|Download]]\n [[wiki|Save in wiki]]\n [[placeholder|Use as placeholder for this view]]\"\n descr:\"Save the image by downloading it to your computer or\n save it as a tiddler in your wiki.<br /><br />\n A third option is to make TiddlyMap use this image as\n placeholder for the current view. Placeholders are useful\n when the wiki is exported as static html\n or when editing a tiddler while having the preview\n shown. In this case the title input is ignored.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog",
"text": "\\rules except wikilink\n\n<div class=<<classes>>>\n<$importvariables\n filter=\"[[$:/plugins/felixhayashi/tiddlymap/misc/macros]]\n [[$:/core/macros/tabs]]\">\n<$transclude tiddler=<<template>> mode=\"block\" />\n</$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/welcome": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/welcome",
"subtitle": "{{$:/core/images/info-button }} Welcome",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt seems that you freshly installed TiddlyMap.\n\n* In case you need any help, please consult the [[online docs|http://tiddlymap.org#Documentation]] first.\n* You are welcome to create an [[issue|https://github.com/felixhayashi/TW5-TiddlyMap/issues]] at GitHub for any bug you discover.\n* Make sure to revisit the [[demo site|http://tiddlymap.org]] to see whether your version is up-to-date.\n* If you like TiddlyMap, please give it a star at [[GitHub|https://github.com/felixhayashi/TW5-TiddlyMap]] or tell your friends about it :)\n* ''Please note:'' TiddlyMap is distributed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]], which belongs to the same license family, as the license used by TiddlyWiki. By using this plugin you agree to the product's [[License Terms|https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]].\n\nEnjoy!\n\n---\n\nTiddlyMap will configure your wiki for optimal use. Everything can be changed back later by you, via the TiddlyWiki configurations panel, so no worries. If you checked some of the options below, please save & restart after closing this dialog.\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize storyview\"\n field:\"config.storyview\"\n descr:\"Sets the storyview to 'top' for optimal scrolling.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize sidebar\"\n field:\"config.sidebar\"\n descr:\"Sets sidebar layout to 'fixed-fluid' for larger editor.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize navigation\"\n field:\"config.navigation\"\n descr:\"Sets navigation style to open tiddlers at top for better map navigation.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Create demo welcome map\"\n field:\"config.demo\"\n descr:\"Creates a little hello world welcome map for you.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator",
"subtitle": "{{$:/core/images/permalink-button}} Widget Code Generator",
"buttons": "close",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Use the code below to embed a view in a tiddler.\n</div>\n\n<pre style=\"white-space: normal;\">\n<$tmap\n\n<$list filter=\"[<output>has[var.view]]\">\n view=\"<$view field='var.view' />\"</$list>\n<$list filter=\"[<output>field:var.click-to-use[true]]\">\n click-to-use=\"true\"</$list>\n<$list filter=\"[<output>has[var.editor]]\">\n editor=\"<$view field='var.editor' />\"</$list>\n<$list filter=\"[<output>has[var.width]]\">\n width=\"<$view field='var.width' />\"</$list>\n<$list filter=\"[<output>has[var.height]]\">\n height=\"<$view field='var.height' />\"</$list>\n<$list filter=\"[<output>has[var.class]]\">\n class=\"<$view field='var.class' />\"</$list>\n<$list filter=\"[<output>field:var.show-buttons[false]]\">\n show-buttons=\"false\"</$list>\n<$list filter=\"[<output>has[var.design]]\">\n design=\"<$view field='var.design' />\"</$list>></$tmap>\n</pre>\n\n<fieldset>\n <legend>Parameters</legend> \n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"View\"\n field=\"var.view\"\n nochoice=\" \"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to bind the wiedget to\" />\n <<tmap-row type:\"input-select\"\n title:\"Editor bar\"\n field:\"var.editor\"\n selectFilter:\"[[|Hidden]]\n [[vis|Simple]]\n [[advanced|Advanced]]\"\n descr:\"Whether the widget should act as an editor or not.\">>\n <<tmap-row type:\"input-select\"\n title:\"Design\"\n field:\"var.design\"\n selectFilter:\"[[|Normal]]\n [[plain|Plain]]\"\n descr:\"Usually a header is displayed and borders. Plain\n design will only show the mere graph.\">>\n <<tmap-row type:\"input-text\"\n title:\"Height\"\n field:\"var.height\"\n descr:\"Graph's height in css units. Defaults to '300px'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"var.width\"\n descr:\"Graph's width in css units. Defaults to '100%'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Class\"\n field:\"var.class\"\n descr:\"A custom class to apply your own css.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Click to use\"\n field:\"var.click-to-use\"\n default:\"false\"\n descr:\"A click is needed to enable the graph.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show buttons\"\n field:\"var.show-buttons\"\n default:\"true\"\n descr:\"Show or hide the graph's navigation buttons.\">>\n </table>\n</fieldset>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/close": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/close",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-close-button\" tooltip=\"Close this dialog\">Close\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel",
"text": "\\rules except wikilink\n\n<$transclude tiddler=\"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok\" mode=\"inline\" />\n<$button class=\"tmap-dialog-button tmap-cancel-button\" tooltip=\"Close dialog without saving\">Cancel\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"\" />\n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress",
"text": "\\rules except wikilink\n\n<$set name=\"currentTiddler\" value=<<title>> >\n\n<$checkbox field=\"suppress\" checked=\"1\" unchecked=\"0\" default=\"0\"> Do not show this dialog again</$checkbox>\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm this dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n <!-- suppress dialog in the future -->\n <$action-sendmessage $message=\"tmap:tm-suppress-dialog\"\n dialog=<<templateId>>\n suppress={{!!suppress}} />\n \n</$button>\n\n</$set>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter",
"text": "\\rules except wikilink\n\n\\define footer() $:/plugins/felixhayashi/tiddlymap/dialogFooter/$(buttons)$\n\n<$transclude tiddler=<<footer>> />\n\n<!-- we need this button to be able to close a tiddler from outside programmatically -->\n<$button class=\"tmap-hidden-close-button\" message=\"tm-close-tiddler\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager",
"text": "\\rules except wikilink\n\n<$button\n class=\"tmap-dialog-button tmap-save-button\"\n tooltip=\"Save the current changes\">Save\n <$action-sendmessage\n $message=\"tmap:tm-save-type-form\"\n mode=<<mode>>\n output=<<output>> />\n</$button>\n<$button\n class=\"tmap-dialog-button tmap-cancel-button\"\n tooltip=\"Cancel the most resent changes and exit\">Quit\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n</$button>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType",
"caption": "Removal",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true\n and click the save button afterwards. Predefined system\n types cannot be deleted.\" note=\"Consequently, all edges\n of this type will be deleted.\" />\n\\end\n\n\\define manage-node-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true and\n click the save button afterwards. Predefined system\n types cannot be deleted.\" />\n\\end\n\n<table class=\"tmap-config-table\"><$macrocall $name=<<mode>> /></table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description",
"caption": "Description",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\"\n descr:\"An optional description for this type. The\n description will be displayed as tooltip when\n moving the mouse over an edge of this type.\">>\n\\end\n\n\\define manage-node-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\" \n descr:\"An optional description for this type.\">>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=<<mode>> />\n</table>\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings",
"caption": "General",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"label\"\n descr:\"An optional alias used as edge-label.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show label\"\n field:\"show-label\"\n default:\"true\"\n descr:\"If unchecked, no edge label will be displayed.\">>\n\\end\n\\define manage-node-types()\n <$list filter=\"[<currentTiddler>!regexp:id[tmap:]]\">\n <<tmap-row type:\"input-textarea\"\n title:\"Scope\"\n field:\"scope\"\n descr:\"A filter expression that defines, which nodes inherit\n this node-type and its style.\">>\n </$list>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Priority\"\n field=\"priority\"\n selectFilter=<<tmap \"scale\" \"100\">>\n descr=\"When a type has a a higher priority than another type,\n its style will override the other style\" />\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall\n $name=\"tmap-row\"\n title=\"Identifier\"\n field=\"temp.newId\"\n type=\"input-text\"\n default={{!!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"A unique identifier\"\n />\n <$macrocall $name=<<mode>> />\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview",
"caption": "Overview",
"text": "\\rules except wikilink\n\n\\define date(f) <$view field=$f$ format=\"date\" template=\"DDth mmm hh:mm:ss\"/>\n\n! <$link to={{!!typeTRef}}><$view field=\"id\" /></$link>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td>\n <<date \"created\">>\n </td>\n </tr>\n <tr>\n <th align=\"left\">Modified on</th>\n <td><<date \"modified\">></td>\n </tr>\n <tr>\n <th align=\"left\">Usage count</th>\n <td>\n <span class=\"tmap-edge-type-specific\">\n <$view field=\"temp.usageCount\" />\n </span>\n <span class=\"tmap-node-type-specific\">\n <$count filter={{!!scope}}>0</$count>\n </span>\n </td>\n </tr>\n</table>\n\n<$view field=\"description\">//No description available//</$view>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling",
"caption": "Styling",
"text": "\\rules except wikilink\n\n\\define url()\n <$set\n filter=\"[<mode>prefix[manage-edge-types]]\"\n name=\"module\"\n value=\"edges\"\n emptyValue=\"nodes\">\n [[visjs.org|http://visjs.org/docs/network/$(module)$]]\n </$set>\n\\end\n\n<fieldset class=\"tmap-node-type-specific\">\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"tw-icon\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"fa-icon\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n</fieldset>\n\n<fieldset><legend>Visjs styles</legend>\n <div class=\"tmap-flash-message tmap-info\">\n All visjs options below are documented at <<url>>.\n </div>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=<<mode>>\n inherited=\"inherited-style\"\n extension=\"style\" />\n</fieldset>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager",
"subtitle": "{{$:/core/images/tag-button}} <<topic>>",
"buttons": "element_type_manager",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview\n\\end\n\n\\define settingsTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings\n\\end\n\n\\define tabsFilter()\n[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/]]\n\\end\n\n\\define searchFilter()\n$(searchSelector)$\n+[sort[title]nsort[priority]]\n+[removeprefix<typeRootPath>removeprefix[/]]\n+[search:title{$:/temp/tmap/MapElementTypeSearch}]\n\\end\n\n\\define managerClass() tmap-$(mode)$\n\n\\define typePath() $(typeRootPath)$/$(id)$\n\n<div id=\"tmap-element-type-manager\" class=<<managerClass>>>\n <div>\n <div class=\"tmap-searchbar\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/MapElementTypeSearch\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$list filter=\"[{$:/temp/tmap/MapElementTypeSearch}regexp[.+]]\n +[addprefix[/]]\n +[addprefix<typeRootPath>]\n +[!is[tiddler]!is[shadow]]\">\n <$button tooltip=\"Create a new type of this name\">\n {{$:/core/images/new-button}}\n <$action-sendmessage\n $message=\"tmap:tm-create-type\"\n mode=<<mode>>\n id={{$:/temp/tmap/MapElementTypeSearch}}\n output=<<output>> />\n <$action-setfield $tiddler=\"$:/temp/tmap/MapElementTypeSearch\" text=\"\" />\n </$button>\n </$list>\n\n </div>\n <ul>\n <$list\n filter=<<searchFilter>>\n emptyMessage=<<noTypeFound>>\n variable=\"id\">\n <li>\n <span class=\"tmap-ranking tmap-node-type-specific\">\n # <$view tiddler=<<typePath>> field=\"priority\">1</$view>\n </span>\n <$button class=\"tc-btn-invisible tmap-link\"><<id>>\n <$action-setfield\n $tiddler=<<qualify \"$:/state/tabs/MapElementTypeManager\">>\n text=<<defaultTab>> />\n <$action-sendmessage\n $message=\"tmap:tm-load-type-form\"\n id=<<id>>\n mode=<<mode>>\n output=<<output>> />\n </$button>\n </li>\n </$list>\n </ul>\n </div>\n <div>\n <$reveal type=\"nomatch\" text=\"\" default={{!!id}} >\n <$macrocall\n $name=\"tabs\"\n default=<<defaultTab>>\n state=\"$:/state/tabs/MapElementTypeManager\"\n tabsList=<<tabsFilter>> />\n </$reveal>\n <$reveal type=\"match\" text=\"\" default={{!!id}} >\n <div class=\"tmap-flash-message tmap-info\">\n Please select a type from the list or create a new one by\n entering the type name in the search field on the left.\n </div>\n <div class=\"tmap-flash-message tmap-info tmap-node-type-specific\">\n The number next to the node-type label represents it's priority.\n </div>\n </$reveal>\n </div>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node": {
"title": "$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node",
"text": "\\define single()\n <$list filter=\"\n [[tmap:tm-toggle-central-topic, $:/core/images/star-filled, Toggle central topic]]\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete node]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n\\define multi()\n <$list filter=\"\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete selected nodes]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n<div class=\"tc-drop-down\">\n <$macrocall $name=<<mode>> />\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar",
"text": "\\rules except wikilink\n\\define showEdgeField() show-$(curEdgeId)$\n\n<!-- === View Switcher ========================================== -->\n\n<div class=\"tmap-menu-bar\">\n View:\n <$reveal type=\"match\" text=\"false\" default=<<isViewBound>> >\n <$select\n tiddler=<<viewHolder>>\n field=\"text\"\n default=<<viewLabel>> >\n <$list filter=<<tmap \"option\" \"selector.allViewsByLabel\">> >\n <option value={{!!title}}>\n <$view tiddler={{!!title}} field=\"title\" />\n </option>\n </$list>\n </$select>\n </$reveal>\n <$reveal type=\"match\" text=\"true\" default=<<isViewBound>> >\n <b><<viewLabel>></b>\n </$reveal>\n\n<!-- === Menu =================================================== -->\n\n <$button\n popup=<<qualify \"$:/temp/menu\">>\n class=\"tmap-unicode-button\"\n tooltip=\"Open the Menu\">{{$:/core/images/menu-button}}\n </$button>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/menu\">> >\n <div class=\"tc-drop-down\">\n <a href=\"http://tiddlymap.org#Documentation\" target=\"_blank\">\n {{$:/core/images/info-button}} Open online help\n </a>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-create-view\">\n {{$:/core/images/new-button}} Create new view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-generate-widget\">\n {{$:/core/images/permalink-button}} Grab widget code\n </$button>\n <div class=\"tmap-list-separator\">Global configurations:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-configure-system\">\n {{$:/core/images/options-button}} Configure TiddlyMap\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-edge-types\">\n <span class=\"tmap-unicode-icon\">◭</span> Manage edge-types\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-node-types\">\n <span class=\"tmap-unicode-icon\">▢</span> Manage node-types\n </$button>\n <div class=\"tmap-view-actions\">\n <div class=\"tmap-list-separator\">Actions for this view:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-edit-view\">\n {{$:/core/images/options-button}} Configure view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-rename-view\">\n {{$:/core/images/tag-button}} Rename view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-delete-view\">\n {{$:/core/images/delete-button}} Delete view\n </$button>\n </div>\n </div>\n </$reveal>\n\n<!-- === Neighbourhood menu ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\"\n \"config.sys.editorMenuBar.showNeighScopeButton\">>>\n <$button\n class=<<neighScopeBtnClass>>\n tooltip=\"Change the neighbourhood scope\"\n popup=<<qualify \"$:/temp/neighScope\">>>\n {{$:/core/images/preview-open}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/neighScope\">> >\n <div class=\"tc-drop-down\">\n <div class=\"tmap-list-separator\">Neighbourhood scope</div>\n <$button class=\"tc-btn-invisible\">None\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"\" />\n </$button>\n <$list filter=\"[[1|1 step distance]]\n [[2|2 step distance]]\n [[3|3 step distance]]\n [[4|4 step distance]]\n [[5|5 step distance]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n <$button class=\"tc-btn-invisible\">No limit\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"100\" />\n </$button>\n\n <div class=\"tmap-list-separator\">Neighbourhood traversal</div>\n\n <$radio field=\"config.neighbourhood_directions\" value=\"in\"> Incoming</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"out\"> Outgoing</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"\"> Both</$radio>\n\n <div class=\"tmap-list-separator\">Other</div>\n\n <$checkbox field=\"config.show_inter_neighbour_edges\"\n checked=\"true\" unchecked=\"false\"> Inter-neighbour edges</$checkbox>\n\n </div>\n </$reveal>\n\n<!-- === Tracing ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<isShowNeighbourhood>>>\n <$button\n class=<<tracingBtnClass>>\n tooltip=\"Trace your clicks on neighbouring nodes.\"\n popup=<<qualify \"$:/temp/tmap-tracing\">>>\n {{$:/core/images/timestamp-on}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/tmap-tracing\">> >\n <div class=\"tc-drop-down\">\n <$button message=\"tmap:tm-neighbourhood-reset-trace\">\n {{$:/core/images/erase}} Restart\n </$button>\n <span\n title=\"\n Enable this option to trace your clicks on neighbouring nodes.\n Traced neighbours are temporarily added to the map (until the map is closed)\n as if they where regular nodes of the map\"\n >\n <$checkbox\n field=\"config.neighbourhood_trace_clicks\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Trace clicked nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Will focus an zoom on the latest traced node\">\n <$checkbox\n field=\"config.neighbourhood_focus_newly_traced_node\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Focus traced nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Per default, only neighbours of nodes matching the node filter are displayed. Enable this option to also show neighbours of traced nodes.\">\n <$checkbox field=\"config.neighbourhood_include_traced_node_neighbours\"\n checked=\"true\" unchecked=\"false\"> Show neighbours of all traced nodes</$checkbox>\n </span>\n </div>\n </$reveal>\n\n<!-- === Export menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showScreenshotButton\">>>\n <$button class=\"tmap-unicode-button\" tooltip=\"Open the map-export menu\" popup=<<qualify \"$:/temp/mapExport\">>>\n {{$:/core/images/download-button}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/mapExport\">>>\n <div class=\"tc-drop-down\">\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Export the graph and all its elements\n in form of a JSON file\">\n {{$:/core/images/permalink-button}} Save as JSON file\n <$action-sendmessage\n $message=\"tmap:tm-download-graph\"\n view=<<viewLabel>> />\n </$button>\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Create a png image to download or save it\n as image or view-placeholder in your wiki\">\n {{$:/core/images/palette}} Save as png image\n <$action-sendmessage $message=\"tmap:tm-save-canvas\" />\n </$button>\n </div>\n </$reveal>\n\n<!-- === Raster menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showRasterMenuButton\">>>\n <$button\n tooltip=\"Change the raster of your map\"\n class=\"tmap-unicode-button\"\n popup=<<qualify \"$:/temp/rasterMenu\">>>\n {{$:/core/images/line-width}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/rasterMenu\">>>\n <div class=\"tc-drop-down\">\n <$button class=\"tc-btn-invisible\">Disable raster\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=\"\" />\n </$button>\n <div class=\"tmap-list-separator\">Raster sizes</div>\n <$list filter=\"[[50|50px]]\n [[75|75px]]\n [[100|100px]]\n [[150|150px]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n </div>\n </$reveal>\n\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/focusButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/focusButton",
"text": "\\define filter() [list[$:/temp/tmap/nodes/$(viewLabel)$]search:title{$:/temp/tmap/bar/search}]\n\\define concat(str) $str$\n\n\\define state() $(widgetPopupsPath)$/focus\n\n<div class=\"tmap-focus-button\">\n <$reveal type=\"match\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Zoom on a specific node\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=\"$:/temp/tmap/bar/search\" text=\"\" />\n <$action-setfield $tiddler=<<state>> text=\"1\" />\n </$button>\n </$reveal>\n <$reveal type=\"nomatch\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Close zoom popup\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=<<state>> text=\"\" />\n </$button>\n <div class=\"tmap-search-dropdown\">\n <div class=\"tc-drop-down\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/bar/search\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <small><$count filter=<<filter>> /> results</small>\n <hr />\n <div class=\"tmap-very-small-list\">\n <$list filter=<<filter>>\n variable=\"item\"\n emptyMessage=\"//No results//\">\n <$button\n class=\"tc-btn-invisible\"\n message=\"tmap:tm-focus-node\"\n param=<<item>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$button>\n </$list>\n </div>\n </div>\n </div>\n </$reveal>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/editor",
"caption": "Map",
"tags": "$:/tags/SideBar",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The editor is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$tiddlymap\n class=\"tmap-sidebar-map-editor\"\n editor=\"advanced\"\n object-id=\"main_editor\"\n click-to-use=\"false\">\n </$tiddlymap>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/liveTab",
"caption": "Live",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The live tab is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$set name=\"view\"\n filter=\"[{$:/temp/tmap/currentTiddler}get[tmap.open-view]]\"\n emptyValue=<<tmap \"option\" \"config.sys.liveTab.fallbackView\">>>\n <div>\n <$tiddlymap\n view=<<view>>\n click-to-use=\"false\"\n refresh-triggers=\"$:/temp/tmap/currentTiddler\"\n object-id=\"live_tab\">\n </$tiddlymap>\n </div>\n </$set> \n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton",
"tags": "$:/tags/ViewToolbar",
"description": "{{$:/language/Buttons/TiddlyMap/Hint}}",
"caption": "{{$:/plugins/felixhayashi/tiddlymap/icon}} {{$:/language/Buttons/TiddlyMap/Caption}}",
"text": "\\define buttonClass() $(tv-config-toolbar-class)$ $(additional-classes)$\n\n\\define nonExistentItem()\n<<item>> <span style=\"color: #9E9E9E\">(will be created)</span>\n\\end\n\n\\define noConnectionsMsg()\n<tr><td colspan=\"4\">//No connections found!//</td></tr>\n\\end\n\n\\define normalSearchFilter()\n[!is[system]!has[draft.of]search:title{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define regexSearchFilter()\n[!is[system]!has[draft.of]regexp{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define showButton(state)\n<$button set=\"$:/temp/tmap/state/popup/quickConnect\"\n setTo=\"$state$\" tooltip={{$:/language/Buttons/TiddlyMap/Hint}} \n aria-label={{$:/language/Buttons/TiddlyMap/Caption}}\n class=<<buttonClass>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">{{$:/plugins/felixhayashi/tiddlymap/icon}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TiddlyMap/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n\\define searchResults()\n<td>\n <$button tooltip=\"Create incoming edge\">\n <<tmap \"option\" \"misc.arrows.in\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<item>>\n to=<<currentTiddler>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$button tooltip=\"Create outgoing edge\">\n <<tmap \"option\" \"misc.arrows.out\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<currentTiddler>>\n to=<<item>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$list\n filter=\"[<item>is[tiddler]]\"\n emptyMessage=<<nonExistentItem>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$list>\n</td>\n\\end\n\n\\define hidePopup()\n<$macrocall $name=\"showButton\" state=<<qualify>> />\n\\end\n\n\\define showPopup()\n<$set name=\"additional-classes\" value=\"tmap-active-button\">\n <$macrocall $name=\"showButton\" state=\"\" />\n</$set>\n<$set\n name=\"searchFilter\"\n filter=\"[field:title[$:/state/tmap/tid-toolbar]has[re-filter]]\"\n value=<<regexSearchFilter>>\n emptyValue=<<normalSearchFilter>>>\n<div class=\"tmap-quick-connect tc-reveal tc-popup\">\n <div class=\"tc-drop-down\">\n <div class=\"title\">Create connection</div>\n <table class=\"tmap-quick-connect-search-bar\">\n <tr>\n <td>Type:</td>\n <td>\n <$edit-text\n tiddler=\"$:/temp/quickConnectSearch/type\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$select tiddler=\"$:/temp/quickConnectSearch/type\" default=\"\">\n <option></option>\n <$list filter=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <option>{{!!title}}</option>\n </$list>\n </$select>\n </td>\n </tr>\n <tr>\n <td>Search:</td>\n <td>\n <$edit-text tiddler=\"$:/temp/quickConnectSearch\" type=\"text\" tag=\"input\" default=\"\"></$edit-text>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"re-filter\"\n checked=\"1\"\n unchecked=\"\"\n default=\"\"> regexp\n </$checkbox>\n<!--\n <small>(<$count filter=<<searchFilter>> /> results)</small>\n-->\n </td>\n </tr>\n </table>\n <table class=\"tmap-create-connection-table\">\n <tr>\n <td colspan=\"2\">\n <table class=\"tmap-very-small-list\">\n <$list\n filter=<<searchFilter>>\n variable=\"item\">\n <tr><<searchResults>></tr>\n </$list>\n <tr>\n <$list filter=\"[{$:/temp/quickConnectSearch}regexp[.+]] -[is[tiddler]]\" variable=\"item\">\n <<searchResults>>\n </$list>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n <div class=\"title\">Existing Connections</div>\n <div class=\"tmap-quick-connect-existing-bar\">\n <$select\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"direction\"\n default=\"both\">\n <option value=\"both\">both</option>\n <option value=\"in\">incoming</option>\n <option value=\"out\">outgoing</option>\n </$select>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"filter.links\"\n checked=\"-[[tw-body:link]]\"\n unchecked=\"\"\n default=\"\"> hide links\n </$checkbox>\n </div>\n <table class=\"tmap-connection-table\">\n<!--\n <tr>\n <th></th>\n <th>Tiddler</th>\n <th>Type</th>\n <th></th>\n </tr>\n-->\n \n <$tmap-connections\n filter=<<tmap mergeFields \"$:/state/tmap/tid-toolbar\" \"filter.\">>\n direction={{$:/state/tmap/tid-toolbar!!direction}}\n emptyMessage=<<noConnectionsMsg>>>\n <tr>\n <td title=<<direction>>><<directionSymbol>></td>\n <td><$link to=<<neighbour>>><$view field=\"title\" /></$link></td>\n <td><<edge.type>></td>\n <td>\n <$button\n tooltip=\"Delete this connection\"\n class=\"tc-btn-invisible\">{{$:/core/images/close-button}}\n <$action-sendmessage $message=\"tmap:tm-remove-edge\"\n id=<<edge.id>>\n from=<<edge.from>>\n to=<<edge.to>>\n type=<<edge.type>> />\n </$button>\n </td>\n </tr>\n </$tmap-connections>\n </table> \n </div>\n</div>\n</$set>\n\\end\n\n<$list filter=\"[all[current]is[tiddler]]\"><$list filter=\"[{$:/temp/tmap/state/popup/quickConnect}prefix<qualify>]\" variable=\"item\" emptyMessage=<<hidePopup>>><<showPopup>></$list></$list>"
},
"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOKQxPfTsHAAAEcUlEQVRIx72XX0xTZxjGn+c9JcYQ50qM5RjKkOOG1NQEQiMV1tkLIbLsypCahsTojIkX6kgBr7aG7Wo6ou7STHbnjdGb/Ymb2ABODdiIxKR/IdoeR1PIKJAZdZntLnZq0CEWtHtuzjk57/l+3/e9J8/7fkQB8vv9DIfDHyqK8nEul2sSkS0AzABAMkNyAsBNAD9qmna9t7c397oxudzLXbt2icVi+YxkH0mQ/4YvdRWRxZ/6EonEmcHBweyKwR6P5wCAfhEBSWzatClls9mS27ZtS1dVVc1v3LgxAwDT09PmBw8erI9Go5ZIJFKZSqVUEUE2mwXJg/39/d8XDN63b9+XAD4nie3bt0dbWlpC9fX1eiFpGR8ftwYCAVsoFKoxdumrc+fOffFynLIE9AyAHpLYvXv3yNGjR4dUVV1AgSovL19wOp2Tjx49QiKRqCD5kcPhMAeDwSuvBHs8nq9FxEcSXq93wOPx3MUqZbfbf1+zZs2f0Wi0mmSjw+EoDQaDV/8D9ng8B0ieFBHs37//17a2tjDeUJqmzZSWls6HQiFNUZQmh8ORvH379t3nOW5vb1dMJtPfJLFnz56bHR0dQQDwer3HlhrwwoUL3y5+fl3cpUuXGoaHh3cCQCqVMl28ePGZAICiKMdJwm63R/PQt6m9e/cGbTZbhCRUVT0OACa/3894PN4HAK2traFCVriaHXC5XKFYLLYVQJ/f7z8tsVjMBQBWqzVVV1eno0iqra19qKpqSkSwsLDgEpJtJFFbW5tEkaVpWlJEUFJS0iYkdxrgdLHB1dXVacNenSaS75NEVVXV/EpzW2jO87JarfOGp39gImkWEeS9t5gqKyvLGGCzKV8E/i/lq5jkcrkMSUxPT5uLDZ2dnTWLCEQkIyISFxEkk8n1Lwd6vd5jr3Kl5fSq76amptYbFSsmInKLJOLxuKXYK9Z13WKAbwnJnwAgGo1WFhucTCYrFUUBgJ+loqJimCTS6bR67969imJBJyYmKmZnZ1URgcvlum7q7e3NHT582Aegb3Bw0Ga32x8ulbPVVKfFunPnjk1EkMvlfG63OysAkMlkzhrbvfXy5csNb3u1gUCg4f79+1sB4MmTJ2df6LmOHDlyUETOK4qC9vb2X5qbm6NvAzo2NlYzMDDQShLZbPbQiRMnzr/QgQSDwbEdO3aUkmyKRCJb1q1bN1dZWfnHm0IDgUCr8Sef6unpOblkzzU6Onq1sbHRTLIxEolsefr06bOampqp1UCHhoYabty44Tbyerarq8u3bJc5MjJyxel0liqK0qTrulXX9XfXrl3714YNGwrqNCcnJ63Xrl1zhsPhOsMeT/l8Pl/BDX13d/enAL4zLA4WiyWlaVpi8+bNaVVVF8rKyjJ5G5yZmXknkUhYdF1/b25uTs2fOkge6uzsPL/iI4zf75fHjx93KoryjclkgtGfgSQMI0B+YovvSXbV19efdrvdKz/CvDyBbDbbTPITkjtFRBOR54ZPclJEbgL4weFw/LYcMK9/AFcdm7xTEIntAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/tiddlymap/icon": {
"title": "$:/plugins/felixhayashi/tiddlymap/icon",
"tags": "$:/tags/Image",
"text": "<svg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://creativecommons.org/ns#\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n class=\"tc-image-tiddlymap-button tc-image-button\"\n version=\"1.1\"\n width=\"22pt\"\n height=\"22pt\"\n viewBox=\"0 0 128 128\">\n <defs\n id=\"defs4\">\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lend\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(-0.8,0,0,-0.8,-10,0)\"\n id=\"path3850\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lstart\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(0.8,0,0,0.8,10,0)\"\n id=\"path3847\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4329\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4321\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4315\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4307\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4299\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4293\" />\n </defs>\n <g\n transform=\"translate(0,-1024.5289)\"\n id=\"layer1\">\n <path\n d=\"m 17.867073,4.5821643 a 3.7249374,3.7249374 0 1 1 -7.449875,0 3.7249374,3.7249374 0 1 1 7.449875,0 z\"\n transform=\"matrix(-6.3328802,0,0,6.2775831,193.9581,1100.3667)\"\n id=\"path4139-1-14\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n <path\n d=\"M 77.450496,1064.5069 C 58.849552,1025.9634 15.704158,1023.3858 2.8821873e-7,1034.558 L 0.02388589,1035.2674 C 24.502636,1022.2072 44.810725,1042.1507 60.163934,1074.112 z\"\n id=\"path4337\"\n style=\"fill-opacity:1;stroke-width:0.58181816;stroke-miterlimit:4;stroke-dasharray:none;marker-start:none;marker-end:none\" />\n <path\n d=\"m 12.878637,11.280739 4.75937,-2.7478243 4.759371,-2.7478236 0,5.4956479 0,5.495648 -4.759371,-2.747824 z\"\n transform=\"matrix(4.6545455,0,0,4.6545455,-13.580429,1027.7638)\"\n id=\"path3004\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n </g>\n <metadata\n id=\"metadata3772\">\n <rdf:RDF>\n <cc:Work\n rdf:about=\"\">\n <dc:title></dc:title>\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n </cc:Work>\n </rdf:RDF>\n </metadata>\n</svg>\n"
},
"$:/plugins/felixhayashi/tiddlymap/media/surface.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/surface.png",
"type": "image/png",
"text": "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"
},
"$:/config/EditTemplateFields/Visibility/tmap.id": {
"title": "$:/config/EditTemplateFields/Visibility/tmap.id",
"text": "hide"
},
"$:/language/Buttons/TiddlyMap/Caption": {
"title": "$:/language/Buttons/TiddlyMap/Caption",
"text": "tiddlymap"
},
"$:/language/Buttons/TiddlyMap/Hint": {
"title": "$:/language/Buttons/TiddlyMap/Hint",
"text": "Toggle TiddlyMap actions"
},
"$:/plugins/felixhayashi/tiddlymap/misc/macros": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/macros",
"text": "\\define concat(str) $str$\n\n\\define input-text(field, index, default, readonly, class, focus)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n type=\"text\"\n tag=\"input\"\n default=\"$default$\"\n focus=\"$focus$\"\n class=\"$class$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"text\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-button(field, index, default, default, label:\"Proceed\")\n <div class=\"tmap-button-wrapper\">\n <$button>$label$\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" index=\"$index$\" $value=\"$default$\" />\n </$button>\n </div>\n\\end\n\n\\define input-textarea(field, index, default, default, class, focus)\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n autoHeight=\"no\"\n type=\"text\"\n tag=\"textarea\"\n default=\"$default$\"\n class=\"$class$\"\n focus=\"$focus$\" />\n\\end\n\n\\define input-checkbox(field, index, readonly, default)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$checkbox\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n checked=\"true\"\n unchecked=\"false\"\n default=\"$default$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"checkbox\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-multi-checkbox(selectFilter, invert:\"no\", default)\n <div class=\"tmap-no-stretch\">\n <$list\n filter=\"$selectFilter$\"\n emptyMessage=\"– This list contains no items –\">\n <$checkbox\n tiddler=<<output>>\n tag=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <$view\n tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">>\n field=\"title\" />\n </$checkbox><br />\n </$list>\n </div>\n\\end\n\n\\define input-select(field, index, selectFilter, default, nochoice)\n <$select\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n default=\"$default$\">\n <$set name=\"nochoice\" value=\"$nochoice$\">\n <$list filter=\"[<nochoice>regexp[.+]]\">\n <option value=\"\"><b><<nochoice>></b></option>\n </$list>\n </$set>\n <$list filter=\"$selectFilter$\">\n <option value=<<tmap \"splitAndSelect\" \"|\" \"0\">> >\n <$view tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">> field=\"title\" />\n </option>\n </$list>\n </$select>\n\\end\n\n\\define input-radio(field, index, selectFilter, default)\n <$list filter=\"$selectFilter$\">\n <$radio\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n value=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n </$radio><br />\n </$list>\n\\end\n\n\\define tmap-row(title, field, index, type, descr, note, label, default, readonly, reset, selectFilter, nochoice, invert, class, focus)\n <tr>\n <td class=\"tmap-title\">$title$:</td>\n <td>\n <<$type$\n field:\"$field$\"\n index:\"$index$\"\n readonly:\"$readonly$\"\n default:\"$default$\"\n label:\"$label$\"\n invert:\"$invert$\"\n selectFilter:\"$selectFilter$\"\n nochoice:\"$nochoice$\"\n focus:\"$focus$\"\n class:\"$class$\">>\n <$reveal type=\"match\" text=\"true\" default=\"$reset$\">\n <$button>reset\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" $index=\"$index$\" $value=\"$default$\" />\n </$button>\n </$reveal>\n </td>\n <td>\n <span class=\"tmap-description\">$descr$</span>\n <$reveal type=\"nomatch\" text=\"\" default=\"$note$\">\n <div class=\"tmap-note\">''Note:'' $note$</div>\n </$reveal>\n </td>\n </tr>\n\\end\n\n\\define visConfiguration(inheritedList, extensionField, styleName:\"style\")\n <fieldset><legend>Visjs configurations ($styleName$)</legend>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=\"manage-node-types\"\n inherited=\"$inheritedList$\"\n extension=\"$extensionField$\" />\n </fieldset>\n\\end\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder",
"text": "Default"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic",
"description": "The style is applied to the node that you marked as central topic in a map.",
"style": "{\"font\":{\"size\":22,\"color\":\"rgba(0,0,0,1)\"},\"shape\":\"star\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour",
"description": "Neighbours are all nodes that are not part of the original set of nodes (\"matches\") but are connected (either outgoing or incoming) to a node of the original set.",
"style": "{\"color\":\"#565656\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default",
"config.physics_mode": "false",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges",
"filter": "[prefix[$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes]]",
"text": "\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes",
"filter": "[field:title{$:/temp/tmap/currentTiddler}]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View",
"config.refresh-triggers": "$:/temp/tmap/currentTiddler",
"config.physics_mode": "true",
"config.vis": "{\"physics\":{\"forceAtlas2Based\":{\"springConstant\":0.09}}}",
"config.neighbourhood_scope": "1",
"created": "20150331114808577",
"modified": "20200509212547688",
"type": "text/vnd.tiddlywiki",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes",
"filter": "[!is[system]search{$:/temp/search}] [!is[system]search:tags{$:/temp/search}] [!is[system]search:text{$:/temp/search}limit[10]]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search",
"config.refresh-triggers": "$:/temp/search",
"config.neighbourhood_scope": "1",
"config.physics_mode": "true"
}
}
}
{
"9c7bf693-a72a-4a8a-96da-10cf0ba19b48": {
"x": 0,
"y": 0
},
"977168a6-4898-45e5-91c8-45875abeabee": {
"x": 100,
"y": 100
}
}
{
"f7a71891-4300-4c5a-9db1-12db3be3a11a": {
"x": -445.73530974427683,
"y": -431.8645333872673
}
}
{
"originalVersion": "0.17.8+10010",
"dataStructureState": "0.11.0",
"showWelcomeMessage": false
}
{
"tiddlers": {
"$:/plugins/felixhayashi/topstoryview/config.js": {
"title": "$:/plugins/felixhayashi/topstoryview/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/topstoryview/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",backDrop:\"story-backdrop\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/topStoryView\",focussedTiddlerStore:\"$:/temp/focussedTiddler\",refreshTrigger:\"$:/temp/focussedTiddler/refresh\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/topstoryview/layout": {
"text": "html .tc-story-river:after {\n content: \"\";\n display: block; }\n",
"title": "$:/plugins/felixhayashi/topstoryview/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/topstoryview/Configuration": {
"title": "$:/plugins/felixhayashi/topstoryview/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Scroll offset:</th>\n <td><$edit-text tiddler=\"$:/config/topStoryView\" field=\"scroll-offset\" tag=\"input\" default=\"150px\" /></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/topstoryview/License": {
"title": "$:/plugins/felixhayashi/topstoryview/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-TopStoryView/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/topstoryview/Readme": {
"title": "$:/plugins/felixhayashi/topstoryview/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information."
},
"$:/plugins/felixhayashi/topstoryview/top.js": {
"title": "$:/plugins/felixhayashi/topstoryview/top.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/topstoryview/top.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n@preserve\n\n\\*/\n(function(){\"use strict\";var t=require(\"$:/plugins/felixhayashi/topstoryview/config.js\").config;var e=\"cubic-bezier(0.645, 0.045, 0.355, 1)\";var i=function(e){this.listWidget=e;this.pageScroller=new $tw.utils.PageScroller;this.pageScroller.scrollIntoView=this.scrollIntoView;this.pageScroller.storyRiverDomNode=document.getElementsByClassName(t.classNames.storyRiver)[0];var i=$tw.wiki.getTiddler(t.references.userConfig);var o=i?i.fields:{};$tw.hooks.addHook(\"th-opening-default-tiddlers-list\",this.hookOpenDefaultTiddlers);var r=parseInt(o[\"scroll-offset\"]);this.pageScroller.scrollOffset=isNaN(r)?71:r;this.recalculateBottomSpace()};i.prototype.refreshStart=function(t,e){};i.prototype.refreshEnd=function(t,e){};i.prototype.hookOpenDefaultTiddlers=function(t){return t};i.prototype.navigateTo=function(t){var e=this.listWidget.findListItem(0,t.title);if(e===undefined)return;var i=this.listWidget.children[e];var o=i.findFirstDomNode();if(!(o instanceof Element))return;this.pageScroller.scrollIntoView(o)};i.prototype.insert=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element))return;this.startInsertAnimation(e,function(){this.recalculateBottomSpace()}.bind(this))};i.prototype.remove=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element)){t.removeChildDomNodes();return}var i=this.getLastFrame()===e;this.startRemoveAnimation(t,e,function(){t.removeChildDomNodes();this.recalculateBottomSpace();if(i){this.pageScroller.scrollIntoView(this.getLastFrame())}}.bind(this))};i.prototype.getLastFrame=function(){var t=this.listWidget.children[this.listWidget.children.length-1];return t?t.findFirstDomNode():null};i.prototype.recalculateBottomSpace=function(){var t=this.pageScroller.storyRiverDomNode;if(this.getLastFrame()){var e=this.getLastFrame().getBoundingClientRect();var i=window.innerHeight;if(e.height<i){t.style[\"paddingBottom\"]=i-e.height+\"px\";return}}t.style[\"paddingBottom\"]=\"\"};i.prototype.scrollIntoView=function(t){if(this.preventNextScrollAttempt){this.preventNextScrollAttempt=false}if(!t)return;var e=$tw.utils.getAnimationDuration();this.cancelScroll();this.startTime=Date.now();var i=$tw.utils.getScrollPosition();var o=t.getBoundingClientRect(),r={left:o.left+i.x,top:o.top+i.y,width:o.width,height:o.height};var n=function(t,e,i,o){if(t<=i){return t}else if(e<o&&i<t+e-o){return t+e-o}else if(i<t){return t}else{return i}},s=n(r.left,r.width,i.x,window.innerWidth),a=r.top-this.scrollOffset;if(s!==i.x||a!==i.y){var l=this,c;c=function(){var t;if(e<=0){t=1}else{t=(Date.now()-l.startTime)/e}if(t>=1){l.cancelScroll();t=1}t=$tw.utils.slowInSlowOut(t);window.scrollTo(i.x+(s-i.x)*t,i.y+(a-i.y)*t);if(t<1){l.idRequestFrame=l.requestAnimationFrame.call(window,c)}};c()}};i.prototype.startInsertAnimation=function(t,i){var o=$tw.utils.getAnimationDuration();var r=window.getComputedStyle(t),n=parseInt(r.marginBottom,10),s=parseInt(r.marginTop,10),a=t.offsetHeight+s;setTimeout((function(){$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:\"\"}]);i()}),o);$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:-a+\"px\"},{opacity:\"0.0\"}]);$tw.utils.forceLayout(t);$tw.utils.setStyle(t,[{transition:\"opacity \"+o+\"ms \"+e+\", \"+\"margin-bottom \"+o+\"ms \"+e},{marginBottom:n+\"px\"},{opacity:\"1.0\"}])};i.prototype.startRemoveAnimation=function(t,i,o){var r=$tw.utils.getAnimationDuration();var n=i.offsetWidth,s=window.getComputedStyle(i),a=parseInt(s.marginBottom,10),l=parseInt(s.marginTop,10),c=i.offsetHeight+l;setTimeout(o,r);$tw.utils.setStyle(i,[{transition:\"none\"},{transform:\"translateX(0px)\"},{marginBottom:a+\"px\"},{opacity:\"1.0\"}]);$tw.utils.forceLayout(i);$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName(\"transform\")+\" \"+r+\"ms \"+e+\", \"+\"opacity \"+r+\"ms \"+e+\", \"+\"margin-bottom \"+r+\"ms \"+e},{transform:\"translateX(-\"+n+\"px)\"},{marginBottom:-c+\"px\"},{opacity:\"0.0\"}])};exports.top=i})();",
"type": "application/javascript",
"module-type": "storyview"
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiYzZmYmUxNi1mOTBkLWI1NDQtODUzOC05MjFkNjBiZjU0ZWI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmJjNmZiZTE2LWY5MGQtYjU0NC04NTM4LTkyMWQ2MGJmNTRlYjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz450LuoAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATUSURBVHjajJZtTJVlGMd/13U/z+F4sBQOCiovZiMt8YiKZrMtypdh09StbLOtzA1RUmuTkppzIilJOB0Oa21tbaV+6UP5Mlnm5heVkfhyQJ1ONITAkAMqcTDonNOHA6g9qF3b/eF5/vf18r/u676uWwoLC3G73QCoKiICgIhQeGejVw3LMOTIP0xGdRQAFi1E9DyGSkLsKxtWEmAQuXfvHrJlyxZiYmIQkQHjeac/jjfKBsJ8YlnRzQKIgBoIh8ByaRSICAilRCjdk1UeAIhEIogIPT09SFFRER6PZ4DByqr1+WpRoYAquKYuqCPz9SZeeCVA4vggAC2XPVw54eXi0WTOH8yIslIIs+bryTsq+hl0d3cjxcXFuN1uVJVVp9dvEigSwP3iYj9vfV7L6IldPE5uXvZwcKuPsz/7+qLc/I1vexFAMBjEzJ49G9u2WV1TsEaVUhOBmJxVVeR9X8NTI3t5kgxN6GXakia67/bSeC4ZkexprccCZxLnVodCIRRgdU1BgsBuBVzz8qt49yv/oMb2f5TJd7kzBsXeLPHzal4VaiAmZnfupY0JIoKqKqoUGAHX9MV+llf4HxmtMaDyaDZLtvqZushPWEHsAlVFP/3rswSNsEEt4O0v/E9MCebx8PxCP5YNlr3hg7+/TFBEl6mClflGHUl9VdIvGycuJdDgvm/bAtu6j3c0uSmZufQhnRHPBsnIqcOyQGSZAjlEgCkLGh3RDHk6yJWTCQCUZi+gav8Mzh3KpGzeQgCuV3sZEhd06D2f3QgCas9XIuozCjw3q92xMXF8O8218QDM/fAMGLAsmLO2Jnof6rwkpjv10rLaURtEJimWJomtMDLdGUlyRhuBei8AU5Y0M2ZCMyPSW8hc2AxAW4OXUeOdbcKbFsQ2YKwkizCg1uAH9kxWOzU/+ga+X8s/Q/iBKur4w8tL79c69ESiTFXFQvQmyhhu1XsYNeHhW5s2o4OuwDB6ug2uISF8fZED9HQbgh1PM3Zah8PB7UYPGBBalDB+MFB/Kt6x0e0JMSzpDr9XxzmwprNxDB95F9eQkANrrI3HssFQq4hWAnDxaMqgaUoYF6DJ73X8b74Qz/C0Qds016tSUANqVypG92EMnD+SwZ9XPc5KSg/QWu900HotgRHjnA5uN3m4diojmiKzV3cNL25DdTvGwJESn0NhzMR2Ohqc6etoiidpgrNET3zrix6yKf3Bld8WLZ8IZcAG6ip9/LQpyOIt91vG2BltHCwezbbpKzEKYoFodKVO+fUh48f3+Lh20oexIBQqExFk586dxMbGkntp41rELscozFpRxaLN/6Mv/cf4hcMzCYdAzboDKXm7Ozs7MTk5ObhcLs4lzqmeeus4GCublgvJtF61Sc1qxR0beqzh7g4Xx3ZN5/KxaagCsvlASl4pQG9vb5TB0KFDibZtZfmlonxcVgVhAcuGjJxa0l9uImVKO3GpXahA4EYsjbXx3PgtmYbTk1CiKYM1h1LzKvrncmdnJ1JeXo7b7cYYQ9+A4L2r21IJR9ZhXOuxXGAZBvKv/Uui8wELVHYgUn44bdWNfmKRSIRgMIiUlJQQGxs78Krof7oYY8jt2TUCy3oH0XmI+MAejW0gYpoxxg/mF4zu3a8rbvXrPuigq6uLfwcA6IKAIsDf9kIAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/backIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/backIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/connectIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/connectIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/cross.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross.png",
"type": "image/png",
"text": "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/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/cross2.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross2.png",
"type": "image/png",
"text": "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/GMzLdsAADoRaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDExOjU2OjE1KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWIwNjRhODctYWNlZi1jMjQ5LTg5MWUtNDAxOTVmMWJjMTNkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ZmEyNjNkMi05YzljLTVmNDgtYmIzYi04ZmJkOTZiOWUwYTI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjliMDY0YTg3LWFjZWYtYzI0OS04OTFlLTQwMTk1ZjFiYzEzZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvQ0yV0AAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHZJREFUeNoAaQCW/wE1NTWrERER3+3t7Xbp6emKOTk5IgQtLS3kBAQEdfLy8ipOTk5LQ0NDkAE0NDQAEhISxiEhITkTExPH9PT0OgMGBgaPMzMzVS8vL7XU1NRC7+/vEQNfX19lUFBQtfPz82EEBAQMNTU1HwMAMI4nIAoe9RQAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/deleteIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/downArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/downArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/editIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/editIcon.png",
"type": "image/png",
"text": "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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/leftArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/leftArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/minus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/minus.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/plus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/plus.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/rightArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/rightArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/upArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/upArrow.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/zoomExtends.png",
"type": "image/png",
"text": "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"
},
"$:/plugins/felixhayashi/vis/img/timeline/delete.png": {
"title": "$:/plugins/felixhayashi/vis/img/timeline/delete.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAl2cEFnAAAAEAAAABAAXMatwwAAAVRJREFUOMt108FKG1EUBuBvYtxbRGwxiGBXeYCW0mVpDSKVvIJ0F/syJsFdn6GCkaZ9gro3G1u0ILQgheJKRUwXPQNnxvTAcGf+c/7/nPvfO8UEKLCFJg5w31aNqGtgG3c4xLSZyP0QgI8Tpu0quQhyPwTgsBnkAVYD3MM9DibVId5GbiW+B+VIt7hJha1IdhPWDayVsBvcFtHlDYZ4mgou8D7e+zXyN/TwuUhjbkSXLHIZ61KNvItxaYyayBDrZsf36DyGdilQE+ngA57UyD+xg08luTSxHvP/wRuRewDm7uV9WJ4hsBy5rczJJm7G/tcS6VesjxN2Hj4c5S10Qj2Tz/AunrOEr0VtB+Z6vMJ+zfkfcVQjnMbRvcRC5B/hBU4auMbVjBFHCRsFdp6wK1yXHjz37xItRuejfFQ1nwb4HXVfs4nPYsQv0p+oKlLgNf7gGP4Cw4ZUK7kMJVEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDExLTA1LTE2VDExOjM1OjIxKzAyOjAw9uVF5gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMS0wNS0xNlQxMTozNToyMSswMjowMIe4/VoAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/readme": {
"title": "$:/plugins/felixhayashi/vis/readme",
"text": "! TW5-Vis.js\n\nA tiddlywiki plugin for the vis.js library.\n\n---\n\n! Notes on Copyright\n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n1. BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n2. Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! The **vis.js** library\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n1. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n2. MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/vis/vis.css": {
"title": "$:/plugins/felixhayashi/vis/vis.css",
"type": "text/vnd.tiddlywiki",
"tags": "$:/tags/Stylesheet",
"text": "\\rules except list\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=\"span\"]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:\"\";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:bold}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid white;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3876c2',endColorstr='#385380',GradientType=0);box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d9d9d',endColorstr='#c8c8c8',GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid white;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,0.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,0.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,0.2);pointer-events:none;z-index:5}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,0.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4c',endColorstr='#131313',GradientType=0)}div.vis-color-picker div.vis-new-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:159px;text-align:right;padding-right:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-initial-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:10px;text-align:left;padding-left:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{box-sizing:content-box;border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#fcfcfc',GradientType=0);padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/cross.png\">>);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-manipulation div.vis-button,div.vis-network div.vis-edit-mode div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;cursor:pointer;padding:0 8px 0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.20)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,0.50)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/backIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.0);cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px rgba(0,0,0,0.0)}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:bold}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-edit,div.vis-network div.vis-edit-mode div.vis-button.vis-edit{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/editIcon.png\">>)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/connectIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-label,div.vis-network div.vis-edit-mode div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,0.30)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,0.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/upArrow.png\">>);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/downArrow.png\">>);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/leftArrow.png\">>);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/rightArrow.png\">>);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/plus.png\">>);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/minus.png\">>);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png\">>);bottom:50px;right:15px}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:white;font-weight:bold;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:\"\\26F6\"}.vis-rolling-mode-btn:hover{opacity:1}.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,0.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,0.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:0;background-color:rgba(213,221,246,0.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:white;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete:after,.vis-item .vis-delete-rtl:after{content:\"\\00D7\";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:bold;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete:hover,.vis-item .vis-delete-rtl:hover{background:red}.vis-item .vis-delete:hover:after,.vis-item .vis-delete-rtl:hover:after{color:white}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:0}.vis-nesting-group{cursor:pointer}.vis-nested-group{background:#f5f5f5}.vis-label.vis-nesting-group.expanded:before{content:\"\\25BC\"}.vis-label.vis-nesting-group.collapsed-rtl:before{content:\"\\25C0\"}.vis-label.vis-nesting-group.collapsed:before{content:\"\\25B6\"}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:0}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-center,.vis-panel.vis-top,.vis-panel.vis-bottom{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,0.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1.0}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}"
},
"$:/plugins/felixhayashi/vis/vis.js": {
"title": "$:/plugins/felixhayashi/vis/vis.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/vis/vis.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\\*/\n\n/*** TO AVOID STRANGE LIB ERRORS FROM BUBBLING UP *****************/\n\nif($tw.boot.tasks.trapErrors) {\n\n var defaultHandler = window.onerror;\n window.onerror = function(errorMsg, url, lineNumber) {\n \n if(errorMsg.indexOf(\"NS_ERROR_NOT_AVAILABLE\") !== -1\n && url == \"$:/plugins/felixhayashi/vis/vis.js\") {\n \n var text = \"Strange firefox related vis.js error (see #125)\";\n console.error(text, arguments);\n \n } else if(errorMsg.indexOf(\"Permission denied to access property\") !== -1) {\n \n var text = \"Strange firefox related vis.js error (see #163)\";\n console.error(text, arguments);\n \n } else if(defaultHandler) {\n \n defaultHandler.apply(this, arguments);\n \n }\n \n }\n \n}\n\n/******************************************************************/\n\n/**\n * vis.js\n * https://github.com/almende/vis\n *\n * A dynamic, browser-based visualization library.\n *\n * @version 4.21.0\n * @date 2017-10-12\n *\n * @license\n * Copyright (C) 2011-2017 Almende B.V, http://almende.com\n *\n * Vis.js is dual licensed under both\n *\n * * The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * * The MIT License\n * http://opensource.org/licenses/MIT\n *\n * Vis.js may be distributed under either license.\n */\n\"use strict\";(function webpackUniversalModuleDefinition(root,factory){if(typeof exports===\"object\"&&typeof module===\"object\")module.exports=factory();else if(typeof define===\"function\"&&define.amd)define([],factory);else if(typeof exports===\"object\")exports[\"vis\"]=factory();else root[\"vis\"]=factory()})(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module[\"default\"]}:function getModuleExports(){return module};__webpack_require__.d(getter,\"a\",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p=\"\";return __webpack_require__(__webpack_require__.s=123)}([function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;exports.default=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\")}}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _defineProperty=__webpack_require__(169);var _defineProperty2=_interopRequireDefault(_defineProperty);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;(0,_defineProperty2.default)(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}()},function(module,exports,__webpack_require__){\"use strict\";var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var moment=__webpack_require__(9);var uuid=__webpack_require__(157);exports.isNumber=function(object){return object instanceof Number||typeof object==\"number\"};exports.recursiveDOMDelete=function(DOMobject){if(DOMobject){while(DOMobject.hasChildNodes()===true){exports.recursiveDOMDelete(DOMobject.firstChild);DOMobject.removeChild(DOMobject.firstChild)}}};exports.giveRange=function(min,max,total,value){if(max==min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}};exports.isString=function(object){return object instanceof String||typeof object==\"string\"};exports.isDate=function(object){if(object instanceof Date){return true}else if(exports.isString(object)){var match=ASPDateRegex.exec(object);if(match){return true}else if(!isNaN(Date.parse(object))){return true}}return false};exports.randomUUID=function(){return uuid.v4()};exports.assignAllKeys=function(obj,value){for(var prop in obj){if(obj.hasOwnProperty(prop)){if((0,_typeof3[\"default\"])(obj[prop])!==\"object\"){obj[prop]=value}}}};function copyOrDelete(a,b,prop,allowDeletion){var doDeletion=false;if(allowDeletion===true){doDeletion=b[prop]===null&&a[prop]!==undefined}if(doDeletion){delete a[prop]}else{a[prop]=b[prop]}}exports.fillIfDefined=function(a,b){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;for(var prop in a){if(b[prop]!==undefined){if(b[prop]===null||(0,_typeof3[\"default\"])(b[prop])!==\"object\"){copyOrDelete(a,b,prop,allowDeletion)}else{if((0,_typeof3[\"default\"])(a[prop])===\"object\"){exports.fillIfDefined(a[prop],b[prop],allowDeletion)}}}}};exports.extend=function(a,b){for(var i=1;i<arguments.length;i++){var other=arguments[i];for(var prop in other){if(other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveExtend=function(props,a,b){if(!Array.isArray(props)){throw new Error(\"Array with property names expected as first argument\")}for(var i=2;i<arguments.length;i++){var other=arguments[i];for(var p=0;p<props.length;p++){var prop=props[p];if(other&&other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveDeepExtend=function(props,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var p=0;p<props.length;p++){var prop=props[p];if(b.hasOwnProperty(prop)){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],false,allowDeletion)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){throw new TypeError(\"Arrays are not supported by deepExtend\")}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.selectiveNotDeepExtend=function(propsToExclude,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var prop in b){if(!b.hasOwnProperty(prop))continue;if(propsToExclude.indexOf(prop)!==-1)continue;if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop])}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}return a};exports.deepExtend=function(a,b){var protoExtend=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;for(var prop in b){if(b.hasOwnProperty(prop)||protoExtend===true){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],protoExtend)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.equalArray=function(a,b){if(a.length!=b.length)return false;for(var i=0,len=a.length;i<len;i++){if(a[i]!=b[i])return false}return true};exports.convert=function(object,type){var match;if(object===undefined){return undefined}if(object===null){return null}if(!type){return object}if(!(typeof type===\"string\")&&!(type instanceof String)){throw new Error(\"Type must be a string\")}switch(type){case\"boolean\":case\"Boolean\":return Boolean(object);case\"number\":case\"Number\":if(exports.isString(object)&&!isNaN(Date.parse(object))){return moment(object).valueOf()}else{return Number(object.valueOf())}case\"string\":case\"String\":return String(object);case\"Date\":if(exports.isNumber(object)){return new Date(object)}if(object instanceof Date){return new Date(object.valueOf())}else if(moment.isMoment(object)){return new Date(object.valueOf())}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1]))}else{return moment(new Date(object)).toDate()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"Moment\":if(exports.isNumber(object)){return moment(object)}if(object instanceof Date){return moment(object.valueOf())}else if(moment.isMoment(object)){return moment(object)}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return moment(Number(match[1]))}else{return moment(object)}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"ISODate\":if(exports.isNumber(object)){return new Date(object)}else if(object instanceof Date){return object.toISOString()}else if(moment.isMoment(object)){return object.toDate().toISOString()}else if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1])).toISOString()}else{return moment(object).format()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ISODate\")}case\"ASPDate\":if(exports.isNumber(object)){return\"/Date(\"+object+\")/\"}else if(object instanceof Date){return\"/Date(\"+object.valueOf()+\")/\"}else if(exports.isString(object)){match=ASPDateRegex.exec(object);var value;if(match){value=new Date(Number(match[1])).valueOf()}else{value=new Date(object).valueOf()}return\"/Date(\"+value+\")/\"}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ASPDate\")}default:throw new Error('Unknown type \"'+type+'\"')}};var ASPDateRegex=/^\\/?Date\\((\\-?\\d+)/i;exports.getType=function(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type==\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"Boolean\"}if(object instanceof Number){return\"Number\"}if(object instanceof String){return\"String\"}if(Array.isArray(object)){return\"Array\"}if(object instanceof Date){return\"Date\"}return\"Object\"}else if(type==\"number\"){return\"Number\"}else if(type==\"boolean\"){return\"Boolean\"}else if(type==\"string\"){return\"String\"}else if(type===undefined){return\"undefined\"}return type};exports.copyAndExtendArray=function(arr,newValue){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}newArr.push(newValue);return newArr};exports.copyArray=function(arr){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}return newArr};exports.getAbsoluteLeft=function(elem){return elem.getBoundingClientRect().left};exports.getAbsoluteRight=function(elem){return elem.getBoundingClientRect().right};exports.getAbsoluteTop=function(elem){return elem.getBoundingClientRect().top};exports.addClassName=function(elem,classNames){var classes=elem.className.split(\" \");var newClasses=classNames.split(\" \");classes=classes.concat(newClasses.filter(function(className){return classes.indexOf(className)<0}));elem.className=classes.join(\" \")};exports.removeClassName=function(elem,classNames){var classes=elem.className.split(\" \");var oldClasses=classNames.split(\" \");classes=classes.filter(function(className){return oldClasses.indexOf(className)<0});elem.className=classes.join(\" \")};exports.forEach=function(object,callback){var i,len;if(Array.isArray(object)){for(i=0,len=object.length;i<len;i++){callback(object[i],i,object)}}else{for(i in object){if(object.hasOwnProperty(i)){callback(object[i],i,object)}}}};exports.toArray=function(object){var array=[];for(var prop in object){if(object.hasOwnProperty(prop))array.push(object[prop])}return array};exports.updateProperty=function(object,key,value){if(object[key]!==value){object[key]=value;return true}else{return false}};exports.throttle=function(fn){var scheduled=false;return function throttled(){if(!scheduled){scheduled=true;requestAnimationFrame(function(){scheduled=false;fn()})}}};exports.addEventListener=function(element,action,listener,useCapture){if(element.addEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.addEventListener(action,listener,useCapture)}else{element.attachEvent(\"on\"+action,listener)}};exports.removeEventListener=function(element,action,listener,useCapture){if(element.removeEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.removeEventListener(action,listener,useCapture)}else{element.detachEvent(\"on\"+action,listener)}};exports.preventDefault=function(event){if(!event)event=window.event;if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}};exports.getTarget=function(event){if(!event){event=window.event}var target;if(event.target){target=event.target}else if(event.srcElement){target=event.srcElement}if(target.nodeType!=undefined&&target.nodeType==3){target=target.parentNode}return target};exports.hasParent=function(element,parent){var e=element;while(e){if(e===parent){return true}e=e.parentNode}return false};exports.option={};exports.option.asBoolean=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return value!=false}return defaultValue||null};exports.option.asNumber=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return Number(value)||defaultValue||null}return defaultValue||null};exports.option.asString=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return String(value)}return defaultValue||null};exports.option.asSize=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(exports.isString(value)){return value}else if(exports.isNumber(value)){return value+\"px\"}else{return defaultValue||null}};exports.option.asElement=function(value,defaultValue){if(typeof value==\"function\"){value=value()}return value||defaultValue||null};exports.hexToRGB=function(hex){var shorthandRegex=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null};exports.overrideOpacity=function(color,opacity){var rgb;if(color.indexOf(\"rgba\")!=-1){return color}else if(color.indexOf(\"rgb\")!=-1){rgb=color.substr(color.indexOf(\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+rgb[0]+\",\"+rgb[1]+\",\"+rgb[2]+\",\"+opacity+\")\"}else{rgb=exports.hexToRGB(color);if(rgb==null){return color}else{return\"rgba(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\",\"+opacity+\")\"}}};exports.RGBToHex=function(red,green,blue){return\"#\"+((1<<24)+(red<<16)+(green<<8)+blue).toString(16).slice(1)};exports.parseColor=function(color){var c;if(exports.isString(color)===true){if(exports.isValidRGB(color)===true){var rgb=color.substr(4).substr(0,color.length-5).split(\",\").map(function(value){return parseInt(value)});color=exports.RGBToHex(rgb[0],rgb[1],rgb[2])}if(exports.isValidHex(color)===true){var hsv=exports.hexToHSV(color);var lighterColorHSV={h:hsv.h,s:hsv.s*.8,v:Math.min(1,hsv.v*1.02)};var darkerColorHSV={h:hsv.h,s:Math.min(1,hsv.s*1.25),v:hsv.v*.8};var darkerColorHex=exports.HSVToHex(darkerColorHSV.h,darkerColorHSV.s,darkerColorHSV.v);var lighterColorHex=exports.HSVToHex(lighterColorHSV.h,lighterColorHSV.s,lighterColorHSV.v);c={background:color,border:darkerColorHex,highlight:{background:lighterColorHex,border:darkerColorHex},hover:{background:lighterColorHex,border:darkerColorHex}}}else{c={background:color,border:color,highlight:{background:color,border:color},hover:{background:color,border:color}}}}else{c={};c.background=color.background||undefined;c.border=color.border||undefined;if(exports.isString(color.highlight)){c.highlight={border:color.highlight,background:color.highlight}}else{c.highlight={};c.highlight.background=color.highlight&&color.highlight.background||undefined;c.highlight.border=color.highlight&&color.highlight.border||undefined}if(exports.isString(color.hover)){c.hover={border:color.hover,background:color.hover}}else{c.hover={};c.hover.background=color.hover&&color.hover.background||undefined;c.hover.border=color.hover&&color.hover.border||undefined}}return c};exports.RGBToHSV=function(red,green,blue){red=red/255;green=green/255;blue=blue/255;var minRGB=Math.min(red,Math.min(green,blue));var maxRGB=Math.max(red,Math.max(green,blue));if(minRGB==maxRGB){return{h:0,s:0,v:minRGB}}var d=red==minRGB?green-blue:blue==minRGB?red-green:blue-red;var h=red==minRGB?3:blue==minRGB?1:5;var hue=60*(h-d/(maxRGB-minRGB))/360;var saturation=(maxRGB-minRGB)/maxRGB;var value=maxRGB;return{h:hue,s:saturation,v:value}};var cssUtil={split:function split(cssText){var styles={};cssText.split(\";\").forEach(function(style){if(style.trim()!=\"\"){var parts=style.split(\":\");var key=parts[0].trim();var value=parts[1].trim();styles[key]=value}});return styles},join:function join(styles){return(0,_keys2[\"default\"])(styles).map(function(key){return key+\": \"+styles[key]}).join(\"; \")}};exports.addCssText=function(element,cssText){var currentStyles=cssUtil.split(element.style.cssText);var newStyles=cssUtil.split(cssText);var styles=exports.extend(currentStyles,newStyles);element.style.cssText=cssUtil.join(styles)};exports.removeCssText=function(element,cssText){var styles=cssUtil.split(element.style.cssText);var removeStyles=cssUtil.split(cssText);for(var key in removeStyles){if(removeStyles.hasOwnProperty(key)){delete styles[key]}}element.style.cssText=cssUtil.join(styles)};exports.HSVToRGB=function(h,s,v){var r,g,b;var i=Math.floor(h*6);var f=h*6-i;var p=v*(1-s);var q=v*(1-f*s);var t=v*(1-(1-f)*s);switch(i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break}return{r:Math.floor(r*255),g:Math.floor(g*255),b:Math.floor(b*255)}};exports.HSVToHex=function(h,s,v){var rgb=exports.HSVToRGB(h,s,v);return exports.RGBToHex(rgb.r,rgb.g,rgb.b)};exports.hexToHSV=function(hex){var rgb=exports.hexToRGB(hex);return exports.RGBToHSV(rgb.r,rgb.g,rgb.b)};exports.isValidHex=function(hex){var isOk=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex);return isOk};exports.isValidRGB=function(rgb){rgb=rgb.replace(\" \",\"\");var isOk=/rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/i.test(rgb);return isOk};exports.isValidRGBA=function(rgba){rgba=rgba.replace(\" \",\"\");var isOk=/rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(.{1,3})\\)/i.test(rgba);return isOk};exports.selectiveBridgeObject=function(fields,referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);for(var i=0;i<fields.length;i++){if(referenceObject.hasOwnProperty(fields[i])){if((0,_typeof3[\"default\"])(referenceObject[fields[i]])==\"object\"){objectTo[fields[i]]=exports.bridgeObject(referenceObject[fields[i]])}}}return objectTo}else{return null}};exports.bridgeObject=function(referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);if(referenceObject instanceof Element){objectTo=referenceObject}else{objectTo=(0,_create2[\"default\"])(referenceObject);for(var i in referenceObject){if(referenceObject.hasOwnProperty(i)){if((0,_typeof3[\"default\"])(referenceObject[i])==\"object\"){objectTo[i]=exports.bridgeObject(referenceObject[i])}}}}return objectTo}else{return null}};exports.insertSort=function(a,compare){for(var i=0;i<a.length;i++){var k=a[i];for(var j=i;j>0&&compare(k,a[j-1])<0;j--){a[j]=a[j-1]}a[j]=k}return a};exports.mergeOptions=function(mergeTarget,options,option){var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var isPresent=function isPresent(obj){return obj!==null&&obj!==undefined};var isObject=function isObject(obj){return obj!==null&&(typeof obj===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(obj))===\"object\"};var isEmpty=function isEmpty(obj){for(var x in obj){if(obj.hasOwnProperty(x))return false}return true};if(!isObject(mergeTarget)){throw new Error(\"Parameter mergeTarget must be an object\")}if(!isObject(options)){throw new Error(\"Parameter options must be an object\")}if(!isPresent(option)){throw new Error(\"Parameter option must have a value\")}if(!isObject(globalOptions)){throw new Error(\"Parameter globalOptions must be an object\")}var doMerge=function doMerge(target,options,option){if(!isObject(target[option])){target[option]={}}var src=options[option];var dst=target[option];for(var prop in src){if(src.hasOwnProperty(prop)){dst[prop]=src[prop]}}};var srcOption=options[option];var globalPassed=isObject(globalOptions)&&!isEmpty(globalOptions);var globalOption=globalPassed?globalOptions[option]:undefined;var globalEnabled=globalOption?globalOption.enabled:undefined;if(srcOption===undefined){return}if(typeof srcOption===\"boolean\"){if(!isObject(mergeTarget[option])){mergeTarget[option]={}}mergeTarget[option].enabled=srcOption;return}if(srcOption===null&&!isObject(mergeTarget[option])){if(isPresent(globalOption)){mergeTarget[option]=(0,_create2[\"default\"])(globalOption)}else{return}}if(!isObject(srcOption)){return}var enabled=true;if(srcOption.enabled!==undefined){enabled=srcOption.enabled}else{if(globalEnabled!==undefined){enabled=globalOption.enabled}}doMerge(mergeTarget,options,option);mergeTarget[option].enabled=enabled};exports.binarySearchCustom=function(orderedItems,comparator,field,field2){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;while(low<=high&&iteration<maxIterations){var middle=Math.floor((low+high)/2);var item=orderedItems[middle];var value=field2===undefined?item[field]:item[field][field2];var searchResult=comparator(value);if(searchResult==0){return middle}else if(searchResult==-1){low=middle+1}else{high=middle-1}iteration++}return-1};exports.binarySearchValue=function(orderedItems,target,field,sidePreference,comparator){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;var prevValue,value,nextValue,middle;comparator=comparator!=undefined?comparator:function(a,b){return a==b?0:a<b?-1:1};while(low<=high&&iteration<maxIterations){middle=Math.floor(.5*(high+low));prevValue=orderedItems[Math.max(0,middle-1)][field];value=orderedItems[middle][field];nextValue=orderedItems[Math.min(orderedItems.length-1,middle+1)][field];if(comparator(value,target)==0){return middle}else if(comparator(prevValue,target)<0&&comparator(value,target)>0){return sidePreference==\"before\"?Math.max(0,middle-1):middle}else if(comparator(value,target)<0&&comparator(nextValue,target)>0){return sidePreference==\"before\"?middle:Math.min(orderedItems.length-1,middle+1)}else{if(comparator(value,target)<0){low=middle+1}else{high=middle-1}}iteration++}return-1};exports.easingFunctions={linear:function linear(t){return t},easeInQuad:function easeInQuad(t){return t*t},easeOutQuad:function easeOutQuad(t){return t*(2-t)},easeInOutQuad:function easeInOutQuad(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function easeInCubic(t){return t*t*t},easeOutCubic:function easeOutCubic(t){return--t*t*t+1},easeInOutCubic:function easeInOutCubic(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function easeInQuart(t){return t*t*t*t},easeOutQuart:function easeOutQuart(t){return 1- --t*t*t*t},easeInOutQuart:function easeInOutQuart(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function easeInQuint(t){return t*t*t*t*t},easeOutQuint:function easeOutQuint(t){return 1+--t*t*t*t*t},easeInOutQuint:function easeInOutQuint(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}};exports.getScrollBarWidth=function(){var inner=document.createElement(\"p\");inner.style.width=\"100%\";inner.style.height=\"200px\";var outer=document.createElement(\"div\");outer.style.position=\"absolute\";outer.style.top=\"0px\";outer.style.left=\"0px\";outer.style.visibility=\"hidden\";outer.style.width=\"200px\";outer.style.height=\"150px\";outer.style.overflow=\"hidden\";outer.appendChild(inner);document.body.appendChild(outer);var w1=inner.offsetWidth;outer.style.overflow=\"scroll\";var w2=inner.offsetWidth;if(w1==w2)w2=outer.clientWidth;document.body.removeChild(outer);return w1-w2};exports.topMost=function(pile,accessors){var candidate=void 0;if(!Array.isArray(accessors)){accessors=[accessors]}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3[\"default\"])(pile),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var member=_step.value;if(member){candidate=member[accessors[0]];for(var i=1;i<accessors.length;i++){if(candidate){candidate=candidate[accessors[i]]}else{continue}}if(typeof candidate!=\"undefined\"){break}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator[\"return\"]){_iterator[\"return\"]()}}finally{if(_didIteratorError){throw _iteratorError}}}return candidate}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(194),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return call&&((typeof call===\"undefined\"?\"undefined\":(0,_typeof3.default)(call))===\"object\"||typeof call===\"function\")?call:self}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _setPrototypeOf=__webpack_require__(196);var _setPrototypeOf2=_interopRequireDefault(_setPrototypeOf);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass===\"undefined\"?\"undefined\":(0,_typeof3.default)(superClass)))}subClass.prototype=(0,_create2.default)(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)_setPrototypeOf2.default?(0,_setPrototypeOf2.default)(subClass,superClass):subClass.__proto__=superClass}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _iterator=__webpack_require__(142);var _iterator2=_interopRequireDefault(_iterator);var _symbol=__webpack_require__(144);var _symbol2=_interopRequireDefault(_symbol);var _typeof=typeof _symbol2.default===\"function\"&&typeof _iterator2.default===\"symbol\"?function(obj){return typeof obj}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=typeof _symbol2.default===\"function\"&&_typeof(_iterator2.default)===\"symbol\"?function(obj){return typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}},function(module,exports){var core=module.exports={version:\"2.5.1\"};if(typeof __e==\"number\")__e=core},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(140),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";module.exports=typeof window!==\"undefined\"&&window[\"moment\"]||__webpack_require__(154)},function(module,exports,__webpack_require__){\"use strict\";function hammerMock(){var noop=function noop(){};return{on:noop,off:noop,destroy:noop,emit:noop,get:function get(m){return{set:noop}}}}if(typeof window!==\"undefined\"){var propagating=__webpack_require__(175);var Hammer=window[\"Hammer\"]||__webpack_require__(176);module.exports=propagating(Hammer,{preventDefault:\"mouse\"})}else{module.exports=function(){return hammerMock()}}},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Queue=__webpack_require__(43);function DataSet(data,options){if(data&&!Array.isArray(data)){options=data;data=null}this._options=options||{};this._data={};this.length=0;this._fieldId=this._options.fieldId||\"id\";this._type={};if(this._options.type){var fields=(0,_keys2[\"default\"])(this._options.type);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var value=this._options.type[field];if(value==\"Date\"||value==\"ISODate\"||value==\"ASPDate\"){this._type[field]=\"Date\"}else{this._type[field]=value}}}this._subscribers={};if(data){this.add(data)}this.setOptions(options)}DataSet.prototype.setOptions=function(options){if(options&&options.queue!==undefined){if(options.queue===false){if(this._queue){this._queue.destroy();delete this._queue}}else{if(!this._queue){this._queue=Queue.extend(this,{replace:[\"add\",\"update\",\"remove\"]})}if((0,_typeof3[\"default\"])(options.queue)===\"object\"){this._queue.setOptions(options.queue)}}}};DataSet.prototype.on=function(event,callback){var subscribers=this._subscribers[event];if(!subscribers){subscribers=[];this._subscribers[event]=subscribers}subscribers.push({callback:callback})};DataSet.prototype.off=function(event,callback){var subscribers=this._subscribers[event];if(subscribers){this._subscribers[event]=subscribers.filter(function(listener){return listener.callback!=callback})}};DataSet.prototype._trigger=function(event,params,senderId){if(event==\"*\"){throw new Error(\"Cannot trigger event *\")}var subscribers=[];if(event in this._subscribers){subscribers=subscribers.concat(this._subscribers[event])}if(\"*\"in this._subscribers){subscribers=subscribers.concat(this._subscribers[\"*\"])}for(var i=0,len=subscribers.length;i<len;i++){var subscriber=subscribers[i];if(subscriber.callback){subscriber.callback(event,params,senderId||null)}}};DataSet.prototype.add=function(data,senderId){var addedIds=[],id,me=this;if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){id=me._addItem(data[i]);addedIds.push(id)}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){id=me._addItem(data);addedIds.push(id)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}return addedIds};DataSet.prototype.update=function(data,senderId){var addedIds=[];var updatedIds=[];var oldData=[];var updatedData=[];var me=this;var fieldId=me._fieldId;var addOrUpdate=function addOrUpdate(item){var id=item[fieldId];if(me._data[id]){var oldItem=util.extend({},me._data[id]);id=me._updateItem(item);updatedIds.push(id);updatedData.push(item);oldData.push(oldItem)}else{id=me._addItem(item);addedIds.push(id)}};if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){if(data[i]&&(0,_typeof3[\"default\"])(data[i])===\"object\"){addOrUpdate(data[i])}else{console.warn(\"Ignoring input item, which is not an object at index \"+i)}}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){addOrUpdate(data)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){var props={items:updatedIds,oldData:oldData,data:updatedData};this._trigger(\"update\",props,senderId)}return addedIds.concat(updatedIds)};DataSet.prototype.get=function(args){var me=this;var id,ids,options;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"){id=arguments[0];options=arguments[1]}else if(firstType==\"Array\"){\nids=arguments[0];options=arguments[1]}else{options=arguments[0]}var returnType;if(options&&options.returnType){var allowedValues=[\"Array\",\"Object\"];returnType=allowedValues.indexOf(options.returnType)==-1?\"Array\":options.returnType}else{returnType=\"Array\"}var type=options&&options.type||this._options.type;var filter=options&&options.filter;var items=[],item,itemIds,itemId,i,len;if(id!=undefined){item=me._getItem(id,type);if(item&&filter&&!filter(item)){item=null}}else if(ids!=undefined){for(i=0,len=ids.length;i<len;i++){item=me._getItem(ids[i],type);if(!filter||filter(item)){items.push(item)}}}else{itemIds=(0,_keys2[\"default\"])(this._data);for(i=0,len=itemIds.length;i<len;i++){itemId=itemIds[i];item=me._getItem(itemId,type);if(!filter||filter(item)){items.push(item)}}}if(options&&options.order&&id==undefined){this._sort(items,options.order)}if(options&&options.fields){var fields=options.fields;if(id!=undefined){item=this._filterFields(item,fields)}else{for(i=0,len=items.length;i<len;i++){items[i]=this._filterFields(items[i],fields)}}}if(returnType==\"Object\"){var result={},resultant;for(i=0,len=items.length;i<len;i++){resultant=items[i];result[resultant.id]=resultant}return result}else{if(id!=undefined){return item}else{return items}}};DataSet.prototype.getIds=function(options){var data=this._data,filter=options&&options.filter,order=options&&options.order,type=options&&options.type||this._options.type,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item,items,ids=[];if(filter){if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){items.push(item)}}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){ids.push(item[this._fieldId])}}}}else{if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];items.push(data[id])}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=data[id];ids.push(item[this._fieldId])}}}return ids};DataSet.prototype.getDataSet=function(){return this};DataSet.prototype.forEach=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,item,id;if(options&&options.order){var items=this.get(options);for(i=0,len=items.length;i<len;i++){item=items[i];id=item[this._fieldId];callback(item,id)}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){callback(item,id)}}}};DataSet.prototype.map=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,mappedItems=[],data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item;for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){mappedItems.push(callback(item,id))}}if(options&&options.order){this._sort(mappedItems,options.order)}return mappedItems};DataSet.prototype._filterFields=function(item,fields){if(!item){return item}var filteredItem={},itemFields=(0,_keys2[\"default\"])(item),len=itemFields.length,i,field;if(Array.isArray(fields)){for(i=0;i<len;i++){field=itemFields[i];if(fields.indexOf(field)!=-1){filteredItem[field]=item[field]}}}else{for(i=0;i<len;i++){field=itemFields[i];if(fields.hasOwnProperty(field)){filteredItem[fields[field]]=item[field]}}}return filteredItem};DataSet.prototype._sort=function(items,order){if(util.isString(order)){var name=order;items.sort(function(a,b){var av=a[name];var bv=b[name];return av>bv?1:av<bv?-1:0})}else if(typeof order===\"function\"){items.sort(order)}else{throw new TypeError(\"Order must be a function or a string\")}};DataSet.prototype.remove=function(id,senderId){var removedIds=[],removedItems=[],ids=[],i,len,itemId,item;ids=Array.isArray(id)?id:[id];for(i=0,len=ids.length;i<len;i++){item=this._remove(ids[i]);if(item){itemId=item[this._fieldId];if(itemId!=undefined){removedIds.push(itemId);removedItems.push(item)}}}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}return removedIds};DataSet.prototype._remove=function(id){var item,ident;if(util.isNumber(id)||util.isString(id)){ident=id}else if(id&&(typeof id===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(id))===\"object\"){ident=id[this._fieldId]}if(ident!==undefined&&this._data[ident]){item=this._data[ident];delete this._data[ident];this.length--;return item}return null};DataSet.prototype.clear=function(senderId){var i,len;var ids=(0,_keys2[\"default\"])(this._data);var items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data[ids[i]])}this._data={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items},senderId);return ids};DataSet.prototype.max=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),max=null,maxField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!max||itemField>maxField)){max=item;maxField=itemField}}return max};DataSet.prototype.min=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),min=null,minField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!min||itemField<minField)){min=item;minField=itemField}}return min};DataSet.prototype.distinct=function(field){var data=this._data;var itemIds=(0,_keys2[\"default\"])(data);var values=[];var fieldType=this._options.type&&this._options.type[field]||null;var count=0;var i,j,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var value=item[field];var exists=false;for(j=0;j<count;j++){if(values[j]==value){exists=true;break}}if(!exists&&value!==undefined){values[count]=value;count++}}if(fieldType){for(i=0,len=values.length;i<len;i++){values[i]=util.convert(values[i],fieldType)}}return values};DataSet.prototype._addItem=function(item){var id=item[this._fieldId];if(id!=undefined){if(this._data[id]){throw new Error(\"Cannot add item: item with id \"+id+\" already exists\")}}else{id=util.randomUUID();item[this._fieldId]=id}var d={},fields=(0,_keys2[\"default\"])(item),i,len;for(i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}this._data[id]=d;this.length++;return id};DataSet.prototype._getItem=function(id,types){var field,value,i,len;var raw=this._data[id];if(!raw){return null}var converted={},fields=(0,_keys2[\"default\"])(raw);if(types){for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=util.convert(value,types[field])}}else{for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=value}}if(!converted[this._fieldId]){converted[this._fieldId]=raw.id}return converted};DataSet.prototype._updateItem=function(item){var id=item[this._fieldId];if(id==undefined){throw new Error(\"Cannot update item: item has no id (item: \"+(0,_stringify2[\"default\"])(item)+\")\")}var d=this._data[id];if(!d){throw new Error(\"Cannot update item: no item with id \"+id+\" found\")}var fields=(0,_keys2[\"default\"])(item);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}return id};module.exports=DataSet},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);function DataView(data,options){this._data=null;this._ids={};this.length=0;this._options=options||{};this._fieldId=\"id\";this._subscribers={};var me=this;this.listener=function(){me._onEvent.apply(me,arguments)};this.setData(data)}DataView.prototype.setData=function(data){var ids,id,i,len,items;if(this._data){if(this._data.off){this._data.off(\"*\",this.listener)}ids=this._data.getIds({filter:this._options&&this._options.filter});items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data._data[ids[i]])}this._ids={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items})}this._data=data;if(this._data){this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||\"id\";ids=this._data.getIds({filter:this._options&&this._options.filter});for(i=0,len=ids.length;i<len;i++){id=ids[i];this._ids[id]=true}this.length=ids.length;this._trigger(\"add\",{items:ids});if(this._data.on){this._data.on(\"*\",this.listener)}}};DataView.prototype.refresh=function(){var id,i,len;var ids=this._data.getIds({filter:this._options&&this._options.filter}),oldIds=(0,_keys2[\"default\"])(this._ids),newIds={},addedIds=[],removedIds=[],removedItems=[];for(i=0,len=ids.length;i<len;i++){id=ids[i];newIds[id]=true;if(!this._ids[id]){addedIds.push(id);this._ids[id]=true}}for(i=0,len=oldIds.length;i<len;i++){id=oldIds[i];if(!newIds[id]){removedIds.push(id);removedItems.push(this._data._data[id]);delete this._ids[id]}}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds})}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems})}};DataView.prototype.get=function(args){var me=this;var ids,options,data;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"||firstType==\"Array\"){ids=arguments[0];options=arguments[1];data=arguments[2]}else{options=arguments[0];data=arguments[1]}var viewOptions=util.extend({},this._options,options);if(this._options.filter&&options&&options.filter){viewOptions.filter=function(item){return me._options.filter(item)&&options.filter(item)}}var getArguments=[];if(ids!=undefined){getArguments.push(ids)}getArguments.push(viewOptions);getArguments.push(data);return this._data&&this._data.get.apply(this._data,getArguments)};DataView.prototype.getIds=function(options){var ids;if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}ids=this._data.getIds({filter:filter,order:options&&options.order})}else{ids=[]}return ids};DataView.prototype.map=function(callback,options){var mappedItems=[];if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}mappedItems=this._data.map(callback,{filter:filter,order:options&&options.order})}else{mappedItems=[]}return mappedItems};DataView.prototype.getDataSet=function(){var dataSet=this;while(dataSet instanceof DataView){dataSet=dataSet._data}return dataSet||null};DataView.prototype._onEvent=function(event,params,senderId){var i,len,id,item;var ids=params&¶ms.items;var addedIds=[],updatedIds=[],removedIds=[],oldItems=[],updatedItems=[],removedItems=[];if(ids&&this._data){switch(event){case\"add\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){this._ids[id]=true;addedIds.push(id)}}break;case\"update\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){if(this._ids[id]){updatedIds.push(id);updatedItems.push(params.data[i]);oldItems.push(params.oldData[i])}else{this._ids[id]=true;addedIds.push(id)}}else{if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}else{}}}break;case\"remove\":for(i=0,len=ids.length;i<len;i++){id=ids[i];if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}}break}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){this._trigger(\"update\",{items:updatedIds,oldData:oldItems,data:updatedItems},senderId)}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}}};DataView.prototype.on=DataSet.prototype.on;DataView.prototype.off=DataSet.prototype.off;DataView.prototype._trigger=DataSet.prototype._trigger;DataView.prototype.subscribe=DataView.prototype.on;DataView.prototype.unsubscribe=DataView.prototype.off;module.exports=DataView},function(module,exports,__webpack_require__){var store=__webpack_require__(57)(\"wks\");var uid=__webpack_require__(40);var Symbol=__webpack_require__(18).Symbol;var USE_SYMBOL=typeof Symbol==\"function\";var $exports=module.exports=function(name){return store[name]||(store[name]=USE_SYMBOL&&Symbol[name]||(USE_SYMBOL?Symbol:uid)(\"Symbol.\"+name))};$exports.store=store},function(module,exports,__webpack_require__){\"use strict\";exports.prepareElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){JSONcontainer[elementType].redundant=JSONcontainer[elementType].used;JSONcontainer[elementType].used=[]}}};exports.cleanupElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant){for(var i=0;i<JSONcontainer[elementType].redundant.length;i++){JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i])}JSONcontainer[elementType].redundant=[]}}}};exports.resetElements=function(JSONcontainer){exports.prepareElements(JSONcontainer);exports.cleanupElements(JSONcontainer);exports.prepareElements(JSONcontainer)};exports.getSVGElement=function(elementType,JSONcontainer,svgContainer){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);svgContainer.appendChild(element)}}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);JSONcontainer[elementType]={used:[],redundant:[]};svgContainer.appendChild(element)}JSONcontainer[elementType].used.push(element);return element};exports.getDOMElement=function(elementType,JSONcontainer,DOMContainer,insertBefore){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElement(elementType);if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}}else{element=document.createElement(elementType);JSONcontainer[elementType]={used:[],redundant:[]};if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}JSONcontainer[elementType].used.push(element);return element};exports.drawPoint=function(x,y,groupTemplate,JSONcontainer,svgContainer,labelObj){var point;if(groupTemplate.style==\"circle\"){point=exports.getSVGElement(\"circle\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"cx\",x);point.setAttributeNS(null,\"cy\",y);point.setAttributeNS(null,\"r\",.5*groupTemplate.size)}else{point=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"x\",x-.5*groupTemplate.size);point.setAttributeNS(null,\"y\",y-.5*groupTemplate.size);point.setAttributeNS(null,\"width\",groupTemplate.size);point.setAttributeNS(null,\"height\",groupTemplate.size)}if(groupTemplate.styles!==undefined){point.setAttributeNS(null,\"style\",groupTemplate.styles)}point.setAttributeNS(null,\"class\",groupTemplate.className+\" vis-point\");if(labelObj){var label=exports.getSVGElement(\"text\",JSONcontainer,svgContainer);if(labelObj.xOffset){x=x+labelObj.xOffset}if(labelObj.yOffset){y=y+labelObj.yOffset}if(labelObj.content){label.textContent=labelObj.content}if(labelObj.className){label.setAttributeNS(null,\"class\",labelObj.className+\" vis-label\")}label.setAttributeNS(null,\"x\",x);label.setAttributeNS(null,\"y\",y)}return point};exports.drawBar=function(x,y,width,height,className,JSONcontainer,svgContainer,style){if(height!=0){if(height<0){height*=-1;y-=height}var rect=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);rect.setAttributeNS(null,\"x\",x-.5*width);rect.setAttributeNS(null,\"y\",y);rect.setAttributeNS(null,\"width\",width);rect.setAttributeNS(null,\"height\",height);rect.setAttributeNS(null,\"class\",className);if(style){rect.setAttributeNS(null,\"style\",style)}}}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.printStyle=undefined;var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var errorFound=false;var allOptions=void 0;var printStyle=\"background: #FFeeee; color: #dd0000\";var Validator=function(){function Validator(){(0,_classCallCheck3[\"default\"])(this,Validator)}(0,_createClass3[\"default\"])(Validator,null,[{key:\"validate\",value:function validate(options,referenceOptions,subObject){errorFound=false;allOptions=referenceOptions;var usedOptions=referenceOptions;if(subObject!==undefined){usedOptions=referenceOptions[subObject]}Validator.parse(options,usedOptions,[]);return errorFound}},{key:\"parse\",value:function parse(options,referenceOptions,path){for(var option in options){if(options.hasOwnProperty(option)){Validator.check(option,options,referenceOptions,path)}}}},{key:\"check\",value:function check(option,options,referenceOptions,path){if(referenceOptions[option]===undefined&&referenceOptions.__any__===undefined){Validator.getSuggestion(option,referenceOptions,path);return}var referenceOption=option;var is_object=true;if(referenceOptions[option]===undefined&&referenceOptions.__any__!==undefined){referenceOption=\"__any__\";is_object=Validator.getType(options[option])===\"object\"}else{}var refOptionObj=referenceOptions[referenceOption];if(is_object&&refOptionObj.__type__!==undefined){refOptionObj=refOptionObj.__type__}Validator.checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path)}},{key:\"checkFields\",value:function checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path){var log=function log(message){console.log(\"%c\"+message+Validator.printLocation(path,option),printStyle)};var optionType=Validator.getType(options[option]);var refOptionType=refOptionObj[optionType];if(refOptionType!==undefined){if(Validator.getType(refOptionType)===\"array\"&&refOptionType.indexOf(options[option])===-1){log('Invalid option detected in \"'+option+'\".'+\" Allowed values are:\"+Validator.print(refOptionType)+' not \"'+options[option]+'\". ');errorFound=true}else if(optionType===\"object\"&&referenceOption!==\"__any__\"){path=util.copyAndExtendArray(path,option);Validator.parse(options[option],referenceOptions[referenceOption],path)}}else if(refOptionObj[\"any\"]===undefined){log('Invalid type received for \"'+option+'\". Expected: '+Validator.print((0,_keys2[\"default\"])(refOptionObj))+\". Received [\"+optionType+'] \"'+options[option]+'\"');errorFound=true}}},{key:\"getType\",value:function getType(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type===\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"boolean\"}if(object instanceof Number){return\"number\"}if(object instanceof String){return\"string\"}if(Array.isArray(object)){return\"array\"}if(object instanceof Date){return\"date\"}if(object.nodeType!==undefined){return\"dom\"}if(object._isAMomentObject===true){return\"moment\"}return\"object\"}else if(type===\"number\"){return\"number\"}else if(type===\"boolean\"){return\"boolean\"}else if(type===\"string\"){return\"string\"}else if(type===undefined){return\"undefined\"}return type}},{key:\"getSuggestion\",value:function getSuggestion(option,options,path){var localSearch=Validator.findInOptions(option,options,path,false);var globalSearch=Validator.findInOptions(option,allOptions,[],true);var localSearchThreshold=8;var globalSearchThreshold=4;var msg=void 0;if(localSearch.indexMatch!==undefined){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+'Perhaps it was incomplete? Did you mean: \"'+localSearch.indexMatch+'\"?\\n\\n'}else if(globalSearch.distance<=globalSearchThreshold&&localSearch.distance>globalSearch.distance){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+Validator.printLocation(globalSearch.path,globalSearch.closestMatch,\"\")}else if(localSearch.distance<=localSearchThreshold){msg='. Did you mean \"'+localSearch.closestMatch+'\"?'+Validator.printLocation(localSearch.path,option)}else{msg=\". Did you mean one of these: \"+Validator.print((0,_keys2[\"default\"])(options))+Validator.printLocation(path,option)}console.log('%cUnknown option detected: \"'+option+'\"'+msg,printStyle);errorFound=true}},{key:\"findInOptions\",value:function findInOptions(option,options,path){var recursive=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var min=1e9;var closestMatch=\"\";var closestMatchPath=[];var lowerCaseOption=option.toLowerCase();var indexMatch=undefined;for(var op in options){var distance=void 0;if(options[op].__type__!==undefined&&recursive===true){var result=Validator.findInOptions(option,options[op],util.copyAndExtendArray(path,op));if(min>result.distance){closestMatch=result.closestMatch;closestMatchPath=result.path;min=result.distance;indexMatch=result.indexMatch}}else{if(op.toLowerCase().indexOf(lowerCaseOption)!==-1){indexMatch=op}distance=Validator.levenshteinDistance(option,op);if(min>distance){closestMatch=op;closestMatchPath=util.copyArray(path);min=distance}}}return{closestMatch:closestMatch,path:closestMatchPath,distance:min,indexMatch:indexMatch}}},{key:\"printLocation\",value:function printLocation(path,option){var prefix=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"Problem value found at: \\n\";var str=\"\\n\\n\"+prefix+\"options = {\\n\";for(var i=0;i<path.length;i++){for(var j=0;j<i+1;j++){str+=\" \"}str+=path[i]+\": {\\n\"}for(var _j=0;_j<path.length+1;_j++){str+=\" \"}str+=option+\"\\n\";for(var _i=0;_i<path.length+1;_i++){for(var _j2=0;_j2<path.length-_i;_j2++){str+=\" \"}str+=\"}\\n\"}return str+\"\\n\\n\"}},{key:\"print\",value:function print(options){return(0,_stringify2[\"default\"])(options).replace(/(\\\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(\\,)/g,\", \")}},{key:\"levenshteinDistance\",value:function levenshteinDistance(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;var matrix=[];var i;for(i=0;i<=b.length;i++){matrix[i]=[i]}var j;for(j=0;j<=a.length;j++){matrix[0][j]=j}for(i=1;i<=b.length;i++){for(j=1;j<=a.length;j++){if(b.charAt(i-1)==a.charAt(j-1)){matrix[i][j]=matrix[i-1][j-1]}else{matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1))}}}return matrix[b.length][a.length]}}]);return Validator}();exports[\"default\"]=Validator;exports.printStyle=printStyle},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Component(body,options){this.options=null;this.props=null}Component.prototype.setOptions=function(options){if(options){util.extend(this.options,options)}};Component.prototype.redraw=function(){return false};Component.prototype.destroy=function(){};Component.prototype._isResized=function(){var resized=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;this.props._previousWidth=this.props.width;this.props._previousHeight=this.props.height;return resized};module.exports=Component},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var ctx=__webpack_require__(80);var hide=__webpack_require__(26);var PROTOTYPE=\"prototype\";var $export=function(type,name,source){var IS_FORCED=type&$export.F;var IS_GLOBAL=type&$export.G;var IS_STATIC=type&$export.S;var IS_PROTO=type&$export.P;var IS_BIND=type&$export.B;var IS_WRAP=type&$export.W;var exports=IS_GLOBAL?core:core[name]||(core[name]={});var expProto=exports[PROTOTYPE];var target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{})[PROTOTYPE];var key,own,out;if(IS_GLOBAL)source=name;for(key in source){own=!IS_FORCED&&target&&target[key]!==undefined;if(own&&key in exports)continue;out=own?target[key]:source[key];exports[key]=IS_GLOBAL&&typeof target[key]!=\"function\"?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(a,b,c){if(this instanceof C){switch(arguments.length){case 0:return new C;case 1:return new C(a);case 2:return new C(a,b)}return new C(a,b,c)}return C.apply(this,arguments)};F[PROTOTYPE]=C[PROTOTYPE];return F}(out):IS_PROTO&&typeof out==\"function\"?ctx(Function.call,out):out;if(IS_PROTO){(exports.virtual||(exports.virtual={}))[key]=out;if(type&$export.R&&expProto&&!expProto[key])hide(expProto,key,out)}}};$export.F=1;$export.G=2;$export.S=4;$export.P=8;$export.B=16;$export.W=32;$export.U=64;$export.R=128;module.exports=$export},function(module,exports){var global=module.exports=typeof window!=\"undefined\"&&window.Math==Math?window:typeof self!=\"undefined\"&&self.Math==Math?self:Function(\"return this\")();if(typeof __g==\"number\")__g=global},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(160),__esModule:true}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var IE8_DOM_DEFINE=__webpack_require__(81);var toPrimitive=__webpack_require__(53);var dP=Object.defineProperty;exports.f=__webpack_require__(21)?Object.defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return dP(O,P,Attributes)}catch(e){}if(\"get\"in Attributes||\"set\"in Attributes)throw TypeError(\"Accessors not supported!\");if(\"value\"in Attributes)O[P]=Attributes.value;return O}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(28)(function(){return Object.defineProperty({},\"a\",{get:function(){return 7}}).a!=7})},function(module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var NodeBase=function(){function NodeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,NodeBase);this.body=body;this.labelModule=labelModule;this.setOptions(options);this.top=undefined;this.left=undefined;this.height=undefined;this.width=undefined;this.radius=undefined;this.margin=undefined;this.refreshNeeded=true;this.boundingBox={top:0,left:0,right:0,bottom:0}}(0,_createClass3[\"default\"])(NodeBase,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"_setMargins\",value:function _setMargins(labelModule){this.margin={};if(this.options.margin){if((0,_typeof3[\"default\"])(this.options.margin)==\"object\"){this.margin.top=this.options.margin.top;this.margin.right=this.options.margin.right;this.margin.bottom=this.options.margin.bottom;this.margin.left=this.options.margin.left}else{this.margin.top=this.options.margin;this.margin.right=this.options.margin;this.margin.bottom=this.options.margin;this.margin.left=this.options.margin}}labelModule.adjustSizes(this.margin)}},{key:\"_distanceToBorder\",value:function _distanceToBorder(ctx,angle){var borderWidth=this.options.borderWidth;this.resize(ctx);return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}},{key:\"enableBorderDashes\",value:function enableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){var dashes=values.borderDashes;if(dashes===true){dashes=[5,15]}ctx.setLineDash(dashes)}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"disableBorderDashes\",value:function disableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){ctx.setLineDash([0])}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"needsRefresh\",value:function needsRefresh(selected,hover){if(this.refreshNeeded===true){this.refreshNeeded=false;return true}return this.width===undefined||this.labelModule.differentState(selected,hover)}},{key:\"initContextForDraw\",value:function initContextForDraw(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.strokeStyle=values.borderColor;ctx.fillStyle=values.color}},{key:\"performStroke\",value:function performStroke(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.save();if(borderWidth>0){this.enableBorderDashes(ctx,values);ctx.stroke();this.disableBorderDashes(ctx,values)}ctx.restore()}},{key:\"performFill\",value:function performFill(ctx,values){this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values);this.performStroke(ctx,values)}},{key:\"_addBoundingBoxMargin\",value:function _addBoundingBoxMargin(margin){this.boundingBox.left-=margin;this.boundingBox.top-=margin;this.boundingBox.bottom+=margin;this.boundingBox.right+=margin}},{key:\"_updateBoundingBox\",value:function _updateBoundingBox(x,y,ctx,selected,hover){if(ctx!==undefined){this.resize(ctx,selected,hover)}this.left=x-this.width/2;this.top=y-this.height/2;this.boundingBox.left=this.left;this.boundingBox.top=this.top;this.boundingBox.bottom=this.top+this.height;this.boundingBox.right=this.left+this.width}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"getDimensionsFromLabel\",value:function getDimensionsFromLabel(ctx,selected,hover){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);var width=this.textSize.width;var height=this.textSize.height;var DEFAULT_SIZE=14;if(width===0){width=DEFAULT_SIZE;height=DEFAULT_SIZE}return{width:width,height:height}}}]);return NodeBase}();exports[\"default\"]=NodeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2)\n;var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ShapeBase=function(_NodeBase){(0,_inherits3[\"default\"])(ShapeBase,_NodeBase);function ShapeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,ShapeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(ShapeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(ShapeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(ShapeBase,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var values=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{size:this.options.size};if(this.needsRefresh(selected,hover)){this.labelModule.getTextSize(ctx,selected,hover);var size=2*values.size;this.width=size;this.height=size;this.radius=.5*this.width}}},{key:\"_drawShape\",value:function _drawShape(ctx,shape,sizeMultiplier,x,y,selected,hover,values){this.resize(ctx,selected,hover,values);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx[shape](x,y,values.size);this.performFill(ctx,values);if(this.options.label!==undefined){this.labelModule.calculateLabelSize(ctx,selected,hover,x,y,\"hanging\");var yLabel=y+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height)}}}]);return ShapeBase}(_NodeBase3[\"default\"]);exports[\"default\"]=ShapeBase},function(module,exports,__webpack_require__){var IObject=__webpack_require__(78);var defined=__webpack_require__(51);module.exports=function(it){return IObject(defined(it))}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var createDesc=__webpack_require__(39);module.exports=__webpack_require__(21)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){object[key]=value;return object}},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it){if(!isObject(it))throw TypeError(it+\" is not an object!\");return it}},function(module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return true}}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(138),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _isIterable2=__webpack_require__(188);var _isIterable3=_interopRequireDefault(_isIterable2);var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=(0,_getIterator3.default)(arr),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i[\"return\"])_i[\"return\"]()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr)){return arr}else if((0,_isIterable3.default)(Object(arr))){return sliceIterator(arr,i)}else{throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}}()},function(module,exports){module.exports={}},function(module,exports){module.exports=function(it){return typeof it===\"object\"?it!==null:typeof it===\"function\"}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var enumBugKeys=__webpack_require__(58);module.exports=Object.keys||function keys(O){return $keys(O,enumBugKeys)}},function(module,exports,__webpack_require__){\"use strict\";function Point3d(x,y,z){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0;this.z=z!==undefined?z:0}Point3d.subtract=function(a,b){var sub=new Point3d;sub.x=a.x-b.x;sub.y=a.y-b.y;sub.z=a.z-b.z;return sub};Point3d.add=function(a,b){var sum=new Point3d;sum.x=a.x+b.x;sum.y=a.y+b.y;sum.z=a.z+b.z;return sum};Point3d.avg=function(a,b){return new Point3d((a.x+b.x)/2,(a.y+b.y)/2,(a.z+b.z)/2)};Point3d.crossProduct=function(a,b){var crossproduct=new Point3d;crossproduct.x=a.y*b.z-a.z*b.y;crossproduct.y=a.z*b.x-a.x*b.z;crossproduct.z=a.x*b.y-a.y*b.x;return crossproduct};Point3d.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)};module.exports=Point3d},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(root,factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{root.keycharm=factory()}})(this,function(){function keycharm(options){var preventDefault=options&&options.preventDefault||false;var container=options&&options.container||window;var _exportFunctions={};var _bound={keydown:{},keyup:{}};var _keys={};var i;for(i=97;i<=122;i++){_keys[String.fromCharCode(i)]={code:65+(i-97),shift:false}}for(i=65;i<=90;i++){_keys[String.fromCharCode(i)]={code:i,shift:true}}for(i=0;i<=9;i++){_keys[\"\"+i]={code:48+i,shift:false}}for(i=1;i<=12;i++){_keys[\"F\"+i]={code:111+i,shift:false}}for(i=0;i<=9;i++){_keys[\"num\"+i]={code:96+i,shift:false}}_keys[\"num*\"]={code:106,shift:false};_keys[\"num+\"]={code:107,shift:false};_keys[\"num-\"]={code:109,shift:false};_keys[\"num/\"]={code:111,shift:false};_keys[\"num.\"]={code:110,shift:false};_keys[\"left\"]={code:37,shift:false};_keys[\"up\"]={code:38,shift:false};_keys[\"right\"]={code:39,shift:false};_keys[\"down\"]={code:40,shift:false};_keys[\"space\"]={code:32,shift:false};_keys[\"enter\"]={code:13,shift:false};_keys[\"shift\"]={code:16,shift:undefined};_keys[\"esc\"]={code:27,shift:false};_keys[\"backspace\"]={code:8,shift:false};_keys[\"tab\"]={code:9,shift:false};_keys[\"ctrl\"]={code:17,shift:false};_keys[\"alt\"]={code:18,shift:false};_keys[\"delete\"]={code:46,shift:false};_keys[\"pageup\"]={code:33,shift:false};_keys[\"pagedown\"]={code:34,shift:false};_keys[\"=\"]={code:187,shift:false};_keys[\"-\"]={code:189,shift:false};_keys[\"]\"]={code:221,shift:false};_keys[\"[\"]={code:219,shift:false};var down=function(event){handleEvent(event,\"keydown\")};var up=function(event){handleEvent(event,\"keyup\")};var handleEvent=function(event,type){if(_bound[type][event.keyCode]!==undefined){var bound=_bound[type][event.keyCode];for(var i=0;i<bound.length;i++){if(bound[i].shift===undefined){bound[i].fn(event)}else if(bound[i].shift==true&&event.shiftKey==true){bound[i].fn(event)}else if(bound[i].shift==false&&event.shiftKey==false){bound[i].fn(event)}}if(preventDefault==true){event.preventDefault()}}};_exportFunctions.bind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(_bound[type][_keys[key].code]===undefined){_bound[type][_keys[key].code]=[]}_bound[type][_keys[key].code].push({fn:callback,shift:_keys[key].shift})};_exportFunctions.bindAll=function(callback,type){if(type===undefined){type=\"keydown\"}for(var key in _keys){if(_keys.hasOwnProperty(key)){_exportFunctions.bind(key,callback,type)}}};_exportFunctions.getKey=function(event){for(var key in _keys){if(_keys.hasOwnProperty(key)){if(event.shiftKey==true&&_keys[key].shift==true&&event.keyCode==_keys[key].code){return key}else if(event.shiftKey==false&&_keys[key].shift==false&&event.keyCode==_keys[key].code){return key}else if(event.keyCode==_keys[key].code&&key==\"shift\"){return key}}}return\"unknown key, currently not supported\"};_exportFunctions.unbind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(callback!==undefined){var newBindings=[];var bound=_bound[type][_keys[key].code];if(bound!==undefined){for(var i=0;i<bound.length;i++){if(!(bound[i].fn==callback&&bound[i].shift==_keys[key].shift)){newBindings.push(_bound[type][_keys[key].code][i])}}}_bound[type][_keys[key].code]=newBindings}else{_bound[type][_keys[key].code]=[]}};_exportFunctions.reset=function(){_bound={keydown:{},keyup:{}}};_exportFunctions.destroy=function(){_bound={keydown:{},keyup:{}};container.removeEventListener(\"keydown\",down,true);container.removeEventListener(\"keyup\",up,true)};container.addEventListener(\"keydown\",down,true);container.addEventListener(\"keyup\",up,true);return _exportFunctions}return keycharm})},function(module,exports,__webpack_require__){\"use strict\";exports.convertHiddenOptions=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.convertHiddenOptions(moment,body,[hiddenDates])}body.hiddenDates=[];if(hiddenDates){if(Array.isArray(hiddenDates)==true){for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat===undefined){var dateItem={};dateItem.start=moment(hiddenDates[i].start).toDate().valueOf();dateItem.end=moment(hiddenDates[i].end).toDate().valueOf();body.hiddenDates.push(dateItem)}}body.hiddenDates.sort(function(a,b){return a.start-b.start})}}};exports.updateHiddenDates=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.updateHiddenDates(moment,body,[hiddenDates])}if(hiddenDates&&body.domProps.centerContainer.width!==undefined){exports.convertHiddenOptions(moment,body,hiddenDates);var start=moment(body.range.start);var end=moment(body.range.end);var totalRange=body.range.end-body.range.start;var pixelTime=totalRange/body.domProps.centerContainer.width;for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat!==undefined){var startDate=moment(hiddenDates[i].start);var endDate=moment(hiddenDates[i].end);if(startDate._d==\"Invalid Date\"){throw new Error(\"Supplied start date is not valid: \"+hiddenDates[i].start)}if(endDate._d==\"Invalid Date\"){throw new Error(\"Supplied end date is not valid: \"+hiddenDates[i].end)}var duration=endDate-startDate;if(duration>=4*pixelTime){var offset=0;var runUntil=end.clone();switch(hiddenDates[i].repeat){case\"daily\":if(startDate.day()!=endDate.day()){offset=1}startDate.dayOfYear(start.dayOfYear());startDate.year(start.year());startDate.subtract(7,\"days\");endDate.dayOfYear(start.dayOfYear());endDate.year(start.year());endDate.subtract(7-offset,\"days\");runUntil.add(1,\"weeks\");break;case\"weekly\":var dayOffset=endDate.diff(startDate,\"days\");var day=startDate.day();startDate.date(start.date());startDate.month(start.month());startDate.year(start.year());endDate=startDate.clone();startDate.day(day);endDate.day(day);endDate.add(dayOffset,\"days\");startDate.subtract(1,\"weeks\");endDate.subtract(1,\"weeks\");runUntil.add(1,\"weeks\");break;case\"monthly\":if(startDate.month()!=endDate.month()){offset=1}startDate.month(start.month());startDate.year(start.year());startDate.subtract(1,\"months\");endDate.month(start.month());endDate.year(start.year());endDate.subtract(1,\"months\");endDate.add(offset,\"months\");runUntil.add(1,\"months\");break;case\"yearly\":if(startDate.year()!=endDate.year()){offset=1}startDate.year(start.year());startDate.subtract(1,\"years\");endDate.year(start.year());endDate.subtract(1,\"years\");endDate.add(offset,\"years\");runUntil.add(1,\"years\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}while(startDate<runUntil){body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()});switch(hiddenDates[i].repeat){case\"daily\":startDate.add(1,\"days\");endDate.add(1,\"days\");break;case\"weekly\":startDate.add(1,\"weeks\");endDate.add(1,\"weeks\");break;case\"monthly\":startDate.add(1,\"months\");endDate.add(1,\"months\");break;case\"yearly\":startDate.add(1,\"y\");endDate.add(1,\"y\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}}body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()})}}}exports.removeDuplicates(body);var startHidden=exports.isHidden(body.range.start,body.hiddenDates);var endHidden=exports.isHidden(body.range.end,body.hiddenDates);var rangeStart=body.range.start;var rangeEnd=body.range.end;if(startHidden.hidden==true){rangeStart=body.range.startToFront==true?startHidden.startDate-1:startHidden.endDate+1}if(endHidden.hidden==true){rangeEnd=body.range.endToFront==true?endHidden.startDate-1:endHidden.endDate+1}if(startHidden.hidden==true||endHidden.hidden==true){body.range._applyRange(rangeStart,rangeEnd)}}};exports.removeDuplicates=function(body){var hiddenDates=body.hiddenDates;var safeDates=[];for(var i=0;i<hiddenDates.length;i++){for(var j=0;j<hiddenDates.length;j++){if(i!=j&&hiddenDates[j].remove!=true&&hiddenDates[i].remove!=true){if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[j].remove=true}else if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].start<=hiddenDates[i].end){hiddenDates[i].end=hiddenDates[j].end;hiddenDates[j].remove=true}else if(hiddenDates[j].end>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[i].start=hiddenDates[j].start;hiddenDates[j].remove=true}}}}for(i=0;i<hiddenDates.length;i++){if(hiddenDates[i].remove!==true){safeDates.push(hiddenDates[i])}}body.hiddenDates=safeDates;body.hiddenDates.sort(function(a,b){return a.start-b.start})};exports.printDates=function(dates){for(var i=0;i<dates.length;i++){console.log(i,new Date(dates[i].start),new Date(dates[i].end),dates[i].start,dates[i].end,dates[i].remove)}};exports.stepOverHiddenDates=function(moment,timeStep,previousTime){var stepInHidden=false;var currentValue=timeStep.current.valueOf();for(var i=0;i<timeStep.hiddenDates.length;i++){var startDate=timeStep.hiddenDates[i].start;var endDate=timeStep.hiddenDates[i].end;if(currentValue>=startDate&¤tValue<endDate){stepInHidden=true;break}}if(stepInHidden==true&¤tValue<timeStep._end.valueOf()&¤tValue!=previousTime){var prevValue=moment(previousTime);var newValue=moment(endDate);if(prevValue.year()!=newValue.year()){timeStep.switchedYear=true}else if(prevValue.month()!=newValue.month()){timeStep.switchedMonth=true}else if(prevValue.dayOfYear()!=newValue.dayOfYear()){timeStep.switchedDay=true}timeStep.current=newValue}};exports.toScreen=function(Core,time,width){var conversion;if(Core.body.hiddenDates.length==0){conversion=Core.range.conversion(width);return(time.valueOf()-conversion.offset)*conversion.scale}else{var hidden=exports.isHidden(time,Core.body.hiddenDates);if(hidden.hidden==true){time=hidden.startDate}var duration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);if(time<Core.range.start){conversion=Core.range.conversion(width,duration);var hiddenBeforeStart=exports.getHiddenDurationBeforeStart(Core.body.hiddenDates,time,conversion.offset);time=Core.options.moment(time).toDate().valueOf();time=time+hiddenBeforeStart;return-(conversion.offset-time.valueOf())*conversion.scale}else if(time>Core.range.end){var rangeAfterEnd={start:Core.range.start,end:time};time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,rangeAfterEnd,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}else{time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,Core.range,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}}};exports.toTime=function(Core,x,width){if(Core.body.hiddenDates.length==0){var conversion=Core.range.conversion(width);return new Date(x/conversion.scale+conversion.offset)}else{var hiddenDuration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);var totalDuration=Core.range.end-Core.range.start-hiddenDuration;var partialDuration=totalDuration*x/width;var accumulatedHiddenDuration=exports.getAccumulatedHiddenDuration(Core.body.hiddenDates,Core.range,partialDuration);return new Date(accumulatedHiddenDuration+partialDuration+Core.range.start)}};exports.getHiddenDurationBetween=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<end){duration+=endDate-startDate}}return duration};exports.getHiddenDurationBeforeStart=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<=end){duration+=endDate-startDate}}return duration};exports.correctTimeForHidden=function(moment,hiddenDates,range,time){time=moment(time).toDate().valueOf();time-=exports.getHiddenDurationBefore(moment,hiddenDates,range,time);return time};exports.getHiddenDurationBefore=function(moment,hiddenDates,range,time){var timeOffset=0;time=moment(time).toDate().valueOf();for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){if(time>=endDate){timeOffset+=endDate-startDate}}}return timeOffset};exports.getAccumulatedHiddenDuration=function(hiddenDates,range,requiredDuration){var hiddenDuration=0;var duration=0;var previousPoint=range.start;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){duration+=startDate-previousPoint;previousPoint=endDate;if(duration>=requiredDuration){break}else{hiddenDuration+=endDate-startDate}}}return hiddenDuration};exports.snapAwayFromHidden=function(hiddenDates,time,direction,correctionEnabled){var isHidden=exports.isHidden(time,hiddenDates);if(isHidden.hidden==true){if(direction<0){if(correctionEnabled==true){return isHidden.startDate-(isHidden.endDate-time)-1}else{return isHidden.startDate-1}}else{if(correctionEnabled==true){return isHidden.endDate+(time-isHidden.startDate)+1}else{return isHidden.endDate+1}}}else{return time}};exports.isHidden=function(time,hiddenDates){for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(time>=startDate&&time<endDate){return{hidden:true,startDate:startDate,endDate:endDate}}}return{hidden:false,startDate:startDate,endDate:endDate}}},function(module,exports,__webpack_require__){\"use strict\";exports.onTouch=function(hammer,callback){callback.inputHandler=function(event){if(event.isFirst){callback(event)}};hammer.on(\"hammer.input\",callback.inputHandler)};exports.onRelease=function(hammer,callback){callback.inputHandler=function(event){if(event.isFinal){callback(event)}};return hammer.on(\"hammer.input\",callback.inputHandler)};exports.offTouch=function(hammer,callback){hammer.off(\"hammer.input\",callback.inputHandler)};exports.offRelease=exports.offTouch;exports.disablePreventDefaultVertically=function(pinchRecognizer){var TOUCH_ACTION_PAN_Y=\"pan-y\";pinchRecognizer.getTouchAction=function(){return[TOUCH_ACTION_PAN_Y]};return pinchRecognizer}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var moment=__webpack_require__(9);function Item(data,conversion,options){this.id=null;this.parent=null;this.data=data;this.dom=null;this.conversion=conversion||{};this.options=options||{};this.selected=false;this.displayed=false;this.groupShowing=true;this.dirty=true;this.top=null;this.right=null;this.left=null;this.width=null;this.height=null;this.editable=null;this._updateEditStatus()}Item.prototype.stack=true;Item.prototype.select=function(){this.selected=true;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.unselect=function(){this.selected=false;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setData=function(data){var groupChanged=data.group!=undefined&&this.data.group!=data.group;if(groupChanged&&this.parent!=null){this.parent.itemSet._moveToGroup(this,data.group)}if(this.parent){this.parent.stackDirty=true}var subGroupChanged=data.subgroup!=undefined&&this.data.subgroup!=data.subgroup;if(subGroupChanged&&this.parent!=null){this.parent.changeSubgroup(this,this.data.subgroup,data.subgroup)}this.data=data;this._updateEditStatus();this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setParent=function(parent){if(this.displayed){this.hide();this.parent=parent;if(this.parent){this.show()}}else{this.parent=parent}};Item.prototype.isVisible=function(range){return false};Item.prototype.show=function(){return false};Item.prototype.hide=function(){return false};Item.prototype.redraw=function(){};Item.prototype.repositionX=function(){};Item.prototype.repositionY=function(){};Item.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var me=this;var dragCenter=document.createElement(\"div\");dragCenter.className=\"vis-drag-center\";dragCenter.dragCenterItem=this;var hammer=new Hammer(dragCenter);hammer.on(\"tap\",function(event){me.parent.itemSet.body.emitter.emit(\"click\",{event:event,item:me.id})});hammer.on(\"doubletap\",function(event){event.stopPropagation();me.parent.itemSet._onUpdateItem(me);me.parent.itemSet.body.emitter.emit(\"doubleClick\",{event:event,item:me.id})});if(this.dom.box){if(this.dom.dragLeft){this.dom.box.insertBefore(dragCenter,this.dom.dragLeft)}else{this.dom.box.appendChild(dragCenter)}}else if(this.dom.point){this.dom.point.appendChild(dragCenter)}this.dom.dragCenter=dragCenter}else if(!this.selected&&this.dom.dragCenter){if(this.dom.dragCenter.parentNode){this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter)}this.dom.dragCenter=null}};Item.prototype._repaintDeleteButton=function(anchor){var editable=(this.options.editable.overrideItems||this.editable==null)&&this.options.editable.remove||!this.options.editable.overrideItems&&this.editable!=null&&this.editable.remove;if(this.selected&&editable&&!this.dom.deleteButton){var me=this;var deleteButton=document.createElement(\"div\");if(this.options.rtl){deleteButton.className=\"vis-delete-rtl\"}else{deleteButton.className=\"vis-delete\"}deleteButton.title=\"Delete this item\";new Hammer(deleteButton).on(\"tap\",function(event){event.stopPropagation();me.parent.removeFromDataSet(me)});anchor.appendChild(deleteButton);this.dom.deleteButton=deleteButton}else if(!this.selected&&this.dom.deleteButton){if(this.dom.deleteButton.parentNode){this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton)}this.dom.deleteButton=null}};Item.prototype._repaintOnItemUpdateTimeTooltip=function(anchor){if(!this.options.tooltipOnItemUpdateTime)return;var editable=(this.options.editable.updateTime||this.data.editable===true)&&this.data.editable!==false;if(this.selected&&editable&&!this.dom.onItemUpdateTimeTooltip){var onItemUpdateTimeTooltip=document.createElement(\"div\");onItemUpdateTimeTooltip.className=\"vis-onUpdateTime-tooltip\";anchor.appendChild(onItemUpdateTimeTooltip);this.dom.onItemUpdateTimeTooltip=onItemUpdateTimeTooltip}else if(!this.selected&&this.dom.onItemUpdateTimeTooltip){if(this.dom.onItemUpdateTimeTooltip.parentNode){this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip)}this.dom.onItemUpdateTimeTooltip=null}if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?\"visible\":\"hidden\";if(this.options.rtl){this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right}else{this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left}var tooltipOffset=50;var scrollTop=this.parent.itemSet.body.domProps.scrollTop;var itemDistanceFromTop;if(this.options.orientation.item==\"top\"){itemDistanceFromTop=this.top}else{itemDistanceFromTop=this.parent.height-this.top-this.height}var isCloseToTop=itemDistanceFromTop+this.parent.top-tooltipOffset<-scrollTop;if(isCloseToTop){this.dom.onItemUpdateTimeTooltip.style.bottom=\"\";this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+\"px\"}else{this.dom.onItemUpdateTimeTooltip.style.top=\"\";this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+\"px\"}var content;var templateFunction;if(this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template){templateFunction=this.options.tooltipOnItemUpdateTime.template.bind(this);content=templateFunction(this.data)}else{content=\"start: \"+moment(this.data.start).format(\"MM/DD/YYYY hh:mm\");if(this.data.end){content+=\"<br> end: \"+moment(this.data.end).format(\"MM/DD/YYYY hh:mm\")}}this.dom.onItemUpdateTimeTooltip.innerHTML=content}};Item.prototype._updateContents=function(element){var content;var changed;var templateFunction;var itemVisibleFrameContent;var visibleFrameTemplateFunction;var itemData=this.parent.itemSet.itemsData.get(this.id);var frameElement=this.dom.box||this.dom.point;var itemVisibleFrameContentElement=frameElement.getElementsByClassName(\"vis-item-visible-frame\")[0];if(this.options.visibleFrameTemplate){visibleFrameTemplateFunction=this.options.visibleFrameTemplate.bind(this);itemVisibleFrameContent=visibleFrameTemplateFunction(itemData,frameElement)}else{itemVisibleFrameContent=\"\"}if(itemVisibleFrameContentElement){if(itemVisibleFrameContent instanceof Object&&!(itemVisibleFrameContent instanceof Element)){visibleFrameTemplateFunction(itemData,itemVisibleFrameContentElement)}else{changed=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(itemVisibleFrameContent);if(changed){if(itemVisibleFrameContent instanceof Element){itemVisibleFrameContentElement.innerHTML=\"\";itemVisibleFrameContentElement.appendChild(itemVisibleFrameContent)}else if(itemVisibleFrameContent!=undefined){itemVisibleFrameContentElement.innerHTML=itemVisibleFrameContent}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.itemVisibleFrameContent=itemVisibleFrameContent}}}if(this.options.template){templateFunction=this.options.template.bind(this);content=templateFunction(itemData,element,this.data)}else{content=this.data.content}if(content instanceof Object&&!(content instanceof Element)){templateFunction(itemData,element)}else{changed=this._contentToString(this.content)!==this._contentToString(content);if(changed){if(content instanceof Element){element.innerHTML=\"\";element.appendChild(content)}else if(content!=undefined){element.innerHTML=content}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.content=content}}};Item.prototype._updateDataAttributes=function(element){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var attributes=[];if(Array.isArray(this.options.dataAttributes)){attributes=this.options.dataAttributes}else if(this.options.dataAttributes==\"all\"){attributes=(0,_keys2[\"default\"])(this.data)}else{return}for(var i=0;i<attributes.length;i++){var name=attributes[i];var value=this.data[name];if(value!=null){element.setAttribute(\"data-\"+name,value)}else{element.removeAttribute(\"data-\"+name)}}}};Item.prototype._updateStyle=function(element){if(this.style){util.removeCssText(element,this.style);this.style=null}if(this.data.style){util.addCssText(element,this.data.style);this.style=this.data.style}};Item.prototype._contentToString=function(content){if(typeof content===\"string\")return content;if(content&&\"outerHTML\"in content)return content.outerHTML;return content};Item.prototype._updateEditStatus=function(){if(this.options){if(typeof this.options.editable===\"boolean\"){this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}}else if((0,_typeof3[\"default\"])(this.options.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.options.editable)}}if(!this.options||!this.options.editable||this.options.editable.overrideItems!==true){if(this.data){if(typeof this.data.editable===\"boolean\"){this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}}else if((0,_typeof3[\"default\"])(this.data.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.data.editable)}}}};Item.prototype.getWidthLeft=function(){return 0};Item.prototype.getWidthRight=function(){return 0};Item.prototype.getTitle=function(){return this.data.title};module.exports=Item},function(module,exports){module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value}}},function(module,exports){var id=0;var px=Math.random();module.exports=function(key){return\"Symbol(\".concat(key===undefined?\"\":key,\")_\",(++id+px).toString(36))}},function(module,exports,__webpack_require__){var defined=__webpack_require__(51);module.exports=function(it){return Object(defined(it))}},function(module,exports){exports.f={}.propertyIsEnumerable},function(module,exports,__webpack_require__){\"use strict\";function Queue(options){this.delay=null;this.max=Infinity;this._queue=[];this._timeout=null;this._extended=null;this.setOptions(options)}Queue.prototype.setOptions=function(options){if(options&&typeof options.delay!==\"undefined\"){this.delay=options.delay}if(options&&typeof options.max!==\"undefined\"){this.max=options.max}this._flushIfNeeded()};Queue.extend=function(object,options){var queue=new Queue(options);if(object.flush!==undefined){throw new Error(\"Target object already has a property flush\")}object.flush=function(){queue.flush()};var methods=[{name:\"flush\",original:undefined}];if(options&&options.replace){for(var i=0;i<options.replace.length;i++){var name=options.replace[i];methods.push({name:name,original:object[name]});queue.replace(object,name)}}queue._extended={object:object,methods:methods};return queue};Queue.prototype.destroy=function(){this.flush();if(this._extended){var object=this._extended.object;var methods=this._extended.methods;for(var i=0;i<methods.length;i++){var method=methods[i];if(method.original){object[method.name]=method.original}else{delete object[method.name]}}this._extended=null}};Queue.prototype.replace=function(object,method){var me=this;var original=object[method];if(!original){throw new Error(\"Method \"+method+\" undefined\")}object[method]=function(){var args=[];for(var i=0;i<arguments.length;i++){args[i]=arguments[i]}me.queue({args:args,fn:original,context:this})}};Queue.prototype.queue=function(entry){if(typeof entry===\"function\"){this._queue.push({fn:entry})}else{this._queue.push(entry)}this._flushIfNeeded()};Queue.prototype._flushIfNeeded=function(){\nif(this._queue.length>this.max){this.flush()}clearTimeout(this._timeout);if(this.queue.length>0&&typeof this.delay===\"number\"){var me=this;this._timeout=setTimeout(function(){me.flush()},this.delay)}};Queue.prototype.flush=function(){while(this._queue.length>0){var entry=this._queue.shift();entry.fn.apply(entry.context||entry.fn,entry.args||[])}};module.exports=Queue},function(module,exports){module.exports=Emitter;function Emitter(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.prototype[key]}return obj}Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){this._callbacks=this._callbacks||{};(this._callbacks[event]=this._callbacks[event]||[]).push(fn);return this};Emitter.prototype.once=function(event,fn){var self=this;this._callbacks=this._callbacks||{};function on(){self.off(event,on);fn.apply(this,arguments)}on.fn=fn;this.on(event,on);return this};Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var callbacks=this._callbacks[event];if(!callbacks)return this;if(1==arguments.length){delete this._callbacks[event];return this}var cb;for(var i=0;i<callbacks.length;i++){cb=callbacks[i];if(cb===fn||cb.fn===fn){callbacks.splice(i,1);break}}return this};Emitter.prototype.emit=function(event){this._callbacks=this._callbacks||{};var args=[].slice.call(arguments,1),callbacks=this._callbacks[event];if(callbacks){callbacks=callbacks.slice(0);for(var i=0,len=callbacks.length;i<len;++i){callbacks[i].apply(this,args)}}return this};Emitter.prototype.listeners=function(event){this._callbacks=this._callbacks||{};return this._callbacks[event]||[]};Emitter.prototype.hasListeners=function(event){return!!this.listeners(event).length}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Component=__webpack_require__(16);var TimeStep=__webpack_require__(66);var DateUtil=__webpack_require__(36);var moment=__webpack_require__(9);function TimeAxis(body,options){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}};this.props={range:{start:0,end:0,minimumStep:0},lineTop:0};this.defaultOptions={orientation:{axis:\"bottom\"},showMinorLabels:true,showMajorLabels:true,maxMinorChars:7,format:TimeStep.FORMAT,moment:moment,timeAxis:null};this.options=util.extend({},this.defaultOptions);this.body=body;this._create();this.setOptions(options)}TimeAxis.prototype=new Component;TimeAxis.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"showMinorLabels\",\"showMajorLabels\",\"maxMinorChars\",\"hiddenDates\",\"timeAxis\",\"moment\",\"rtl\"],this.options,options);util.selectiveDeepExtend([\"format\"],this.options,options);if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.axis=options.orientation}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}if(\"locale\"in options){if(typeof moment.locale===\"function\"){moment.locale(options.locale)}else{moment.lang(options.locale)}}}};TimeAxis.prototype._create=function(){this.dom.foreground=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.foreground.className=\"vis-time-axis vis-foreground\";this.dom.background.className=\"vis-time-axis vis-background\"};TimeAxis.prototype.destroy=function(){if(this.dom.foreground.parentNode){this.dom.foreground.parentNode.removeChild(this.dom.foreground)}if(this.dom.background.parentNode){this.dom.background.parentNode.removeChild(this.dom.background)}this.body=null};TimeAxis.prototype.redraw=function(){var props=this.props;var foreground=this.dom.foreground;var background=this.dom.background;var parent=this.options.orientation.axis==\"top\"?this.body.dom.top:this.body.dom.bottom;var parentChanged=foreground.parentNode!==parent;this._calculateCharSize();var showMinorLabels=this.options.showMinorLabels&&this.options.orientation.axis!==\"none\";var showMajorLabels=this.options.showMajorLabels&&this.options.orientation.axis!==\"none\";props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.height=props.minorLabelHeight+props.majorLabelHeight;props.width=foreground.offsetWidth;props.minorLineHeight=this.body.domProps.root.height-props.majorLabelHeight-(this.options.orientation.axis==\"top\"?this.body.domProps.bottom.height:this.body.domProps.top.height);props.minorLineWidth=1;props.majorLineHeight=props.minorLineHeight+props.majorLabelHeight;props.majorLineWidth=1;var foregroundNextSibling=foreground.nextSibling;var backgroundNextSibling=background.nextSibling;foreground.parentNode&&foreground.parentNode.removeChild(foreground);background.parentNode&&background.parentNode.removeChild(background);foreground.style.height=this.props.height+\"px\";this._repaintLabels();if(foregroundNextSibling){parent.insertBefore(foreground,foregroundNextSibling)}else{parent.appendChild(foreground)}if(backgroundNextSibling){this.body.dom.backgroundVertical.insertBefore(background,backgroundNextSibling)}else{this.body.dom.backgroundVertical.appendChild(background)}return this._isResized()||parentChanged};TimeAxis.prototype._repaintLabels=function(){var orientation=this.options.orientation.axis;var start=util.convert(this.body.range.start,\"Number\");var end=util.convert(this.body.range.end,\"Number\");var timeLabelsize=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf();var minimumStep=timeLabelsize-DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,timeLabelsize);minimumStep-=this.body.util.toTime(0).valueOf();var step=new TimeStep(new Date(start),new Date(end),minimumStep,this.body.hiddenDates,this.options);step.setMoment(this.options.moment);if(this.options.format){step.setFormat(this.options.format)}if(this.options.timeAxis){step.setScale(this.options.timeAxis)}this.step=step;var dom=this.dom;dom.redundant.lines=dom.lines;dom.redundant.majorTexts=dom.majorTexts;dom.redundant.minorTexts=dom.minorTexts;dom.lines=[];dom.majorTexts=[];dom.minorTexts=[];var current;var next;var x;var xNext;var isMajor;var nextIsMajor;var showMinorGrid;var width=0,prevWidth;var line;var labelMinor;var xFirstMajorLabel=undefined;var count=0;var MAX=1e3;var className;step.start();next=step.getCurrent();xNext=this.body.util.toScreen(next);while(step.hasNext()&&count<MAX){count++;isMajor=step.isMajor();className=step.getClassName();labelMinor=step.getLabelMinor();current=next;x=xNext;step.next();next=step.getCurrent();nextIsMajor=step.isMajor();xNext=this.body.util.toScreen(next);prevWidth=width;width=xNext-x;switch(step.scale){case\"week\":showMinorGrid=true;break;default:showMinorGrid=width>=prevWidth*.4;break}if(this.options.showMinorLabels&&showMinorGrid){var label=this._repaintMinorText(x,labelMinor,orientation,className);label.style.width=width+\"px\"}if(isMajor&&this.options.showMajorLabels){if(x>0){if(xFirstMajorLabel==undefined){xFirstMajorLabel=x}label=this._repaintMajorText(x,step.getLabelMajor(),orientation,className)}line=this._repaintMajorLine(x,width,orientation,className)}else{if(showMinorGrid){line=this._repaintMinorLine(x,width,orientation,className)}else{if(line){line.style.width=parseInt(line.style.width)+width+\"px\"}}}}if(count===MAX&&!warnedForOverflow){console.warn(\"Something is wrong with the Timeline scale. Limited drawing of grid lines to \"+MAX+\" lines.\");warnedForOverflow=true}if(this.options.showMajorLabels){var leftTime=this.body.util.toTime(0),leftText=step.getLabelMajor(leftTime),widthText=leftText.length*(this.props.majorCharWidth||10)+10;if(xFirstMajorLabel==undefined||widthText<xFirstMajorLabel){this._repaintMajorText(0,leftText,orientation,className)}}util.forEach(this.dom.redundant,function(arr){while(arr.length){var elem=arr.pop();if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}})};TimeAxis.prototype._repaintMinorText=function(x,text,orientation,className){var label=this.dom.redundant.minorTexts.shift();if(!label){var content=document.createTextNode(\"\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}this.dom.minorTexts.push(label);label.innerHTML=text;label.style.top=orientation==\"top\"?this.props.majorLabelHeight+\"px\":\"0\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}label.className=\"vis-text vis-minor \"+className;return label};TimeAxis.prototype._repaintMajorText=function(x,text,orientation,className){var label=this.dom.redundant.majorTexts.shift();if(!label){var content=document.createElement(\"div\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}label.childNodes[0].innerHTML=text;label.className=\"vis-text vis-major \"+className;label.style.top=orientation==\"top\"?\"0\":this.props.minorLabelHeight+\"px\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}this.dom.majorTexts.push(label);return label};TimeAxis.prototype._repaintMinorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=props.majorLabelHeight+\"px\"}else{line.style.top=this.body.domProps.top.height+\"px\"}line.style.height=props.minorLineHeight+\"px\";if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-minor \"+className}else{line.style.left=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-minor \"+className}line.style.width=width+\"px\";return line};TimeAxis.prototype._repaintMajorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=\"0\"}else{line.style.top=this.body.domProps.top.height+\"px\"}if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-major \"+className}else{line.style.left=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-major \"+className}line.style.height=props.majorLineHeight+\"px\";line.style.width=width+\"px\";return line};TimeAxis.prototype._calculateCharSize=function(){if(!this.dom.measureCharMinor){this.dom.measureCharMinor=document.createElement(\"DIV\");this.dom.measureCharMinor.className=\"vis-text vis-minor vis-measure\";this.dom.measureCharMinor.style.position=\"absolute\";this.dom.measureCharMinor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMinor)}this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight;this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth;if(!this.dom.measureCharMajor){this.dom.measureCharMajor=document.createElement(\"DIV\");this.dom.measureCharMajor.className=\"vis-text vis-major vis-measure\";this.dom.measureCharMajor.style.position=\"absolute\";this.dom.measureCharMajor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMajor)}this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight;this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var warnedForOverflow=false;module.exports=TimeAxis},function(module,exports,__webpack_require__){\"use strict\";var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CustomTime(body,options){this.body=body;this.defaultOptions={moment:moment,locales:locales,locale:\"en\",id:undefined,title:undefined};this.options=util.extend({},this.defaultOptions);if(options&&options.time){this.customTime=options.time}else{this.customTime=new Date}this.eventParams={};this.setOptions(options);this._create()}CustomTime.prototype=new Component;CustomTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"moment\",\"locale\",\"locales\",\"id\"],this.options,options)}};CustomTime.prototype._create=function(){var bar=document.createElement(\"div\");bar[\"custom-time\"]=this;bar.className=\"vis-custom-time \"+(this.options.id||\"\");bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar;var drag=document.createElement(\"div\");drag.style.position=\"relative\";drag.style.top=\"0px\";drag.style.left=\"-10px\";drag.style.height=\"100%\";drag.style.width=\"20px\";function onMouseWheel(e){this.body.range._onMouseWheel(e)}if(drag.addEventListener){drag.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);drag.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{drag.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}bar.appendChild(drag);this.hammer=new Hammer(drag);this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL})};CustomTime.prototype.destroy=function(){this.hide();this.hammer.destroy();this.hammer=null;this.body=null};CustomTime.prototype.redraw=function(){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar)}var x=this.body.util.toScreen(this.customTime);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=this.options.title;if(title===undefined){title=locale.time+\": \"+this.options.moment(this.customTime).format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1)}else if(typeof title===\"function\"){title=title.call(this.customTime)}this.bar.style.left=x+\"px\";this.bar.title=title;return false};CustomTime.prototype.hide=function(){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}};CustomTime.prototype.setCustomTime=function(time){this.customTime=util.convert(time,\"Date\");this.redraw()};CustomTime.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())};CustomTime.prototype.setCustomTitle=function(title){this.options.title=title};CustomTime.prototype._onDragStart=function(event){this.eventParams.dragging=true;this.eventParams.customTime=this.customTime;event.stopPropagation()};CustomTime.prototype._onDrag=function(event){if(!this.eventParams.dragging)return;var x=this.body.util.toScreen(this.eventParams.customTime)+event.deltaX;var time=this.body.util.toTime(x);this.setCustomTime(time);this.body.emitter.emit(\"timechange\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.prototype._onDragEnd=function(event){if(!this.eventParams.dragging)return;this.body.emitter.emit(\"timechanged\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.customTimeFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"custom-time\")){return target[\"custom-time\"]}target=target.parentNode}return null};module.exports=CustomTime},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var Box=__webpack_require__(193)[\"default\"];var Circle=__webpack_require__(200)[\"default\"];var CircularImage=__webpack_require__(201)[\"default\"];var Database=__webpack_require__(202)[\"default\"];var Diamond=__webpack_require__(203)[\"default\"];var Dot=__webpack_require__(204)[\"default\"];var Ellipse=__webpack_require__(205)[\"default\"];var Icon=__webpack_require__(206)[\"default\"];var Image=__webpack_require__(207)[\"default\"];var Square=__webpack_require__(208)[\"default\"];var Hexagon=__webpack_require__(209)[\"default\"];var Star=__webpack_require__(210)[\"default\"];var Text=__webpack_require__(211)[\"default\"];var Triangle=__webpack_require__(212)[\"default\"];var TriangleDown=__webpack_require__(213)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var Node=function(){function Node(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Node);this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.edges=[];this.id=undefined;this.imagelist=imagelist;this.grouplist=grouplist;this.x=undefined;this.y=undefined;this.baseSize=this.options.size;this.baseFontSize=this.options.font.size;this.predefinedPosition=false;this.selected=false;this.hover=false;this.labelModule=new Label(this.body,this.options,false);this.setOptions(options)}(0,_createClass3[\"default\"])(Node,[{key:\"attachEdge\",value:function attachEdge(edge){if(this.edges.indexOf(edge)===-1){this.edges.push(edge)}}},{key:\"detachEdge\",value:function detachEdge(edge){var index=this.edges.indexOf(edge);if(index!=-1){this.edges.splice(index,1)}}},{key:\"setOptions\",value:function setOptions(options){var currentShape=this.options.shape;if(!options){return}if(options.id!==undefined){this.id=options.id}if(this.id===undefined){throw new Error(\"Node must have an id\")}Node.checkMass(options,this.id);if(options.x!==undefined){if(options.x===null){this.x=undefined;this.predefinedPosition=false}else{this.x=parseInt(options.x);this.predefinedPosition=true}}if(options.y!==undefined){if(options.y===null){this.y=undefined;this.predefinedPosition=false}else{this.y=parseInt(options.y);this.predefinedPosition=true}}if(options.size!==undefined){this.baseSize=options.size}if(options.value!==undefined){options.value=parseFloat(options.value)}Node.parseOptions(this.options,options,true,this.globalOptions,this.grouplist);var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"node\",pile);this._load_images();this.updateLabelModule(options);this.updateShape(currentShape);return options.hidden!==undefined||options.physics!==undefined}},{key:\"_load_images\",value:function _load_images(){if(this.options.shape!==\"circularImage\"&&this.options.shape!==\"image\"){return}if(this.options.image===undefined){throw new Error(\"Option image must be defined for node type '\"+this.options.shape+\"'\")}if(this.imagelist===undefined){throw new Error(\"Internal Error: No images provided\")}if(typeof this.options.image===\"string\"){this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}else{if(this.options.image.unselected===undefined){throw new Error(\"No unselected image provided\")}this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id);if(this.options.image.selected!==undefined){this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id)}else{this.imageObjAlt=undefined}}}},{key:\"getFormattingValues\",value:function getFormattingValues(){var values={color:this.options.color.background,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){values.borderWidth*=2;values.color=this.options.color.highlight.background;values.borderColor=this.options.color.highlight.border;values.shadow=this.options.shadow.enabled}else if(this.hover){values.color=this.options.color.hover.background;values.borderColor=this.options.color.hover.border;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){if(this.options.label===undefined||this.options.label===null){this.options.label=\"\"}Node.updateGroupOptions(this.options,options,this.grouplist);var currentGroup=this.grouplist.get(this.options.group,false);var pile=[options,this.options,currentGroup,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateShape\",value:function updateShape(currentShape){if(currentShape===this.options.shape&&this.shape){this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt)}else{switch(this.options.shape){case\"box\":this.shape=new Box(this.options,this.body,this.labelModule);break;case\"circle\":this.shape=new Circle(this.options,this.body,this.labelModule);break;case\"circularImage\":this.shape=new CircularImage(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"database\":this.shape=new Database(this.options,this.body,this.labelModule);break;case\"diamond\":this.shape=new Diamond(this.options,this.body,this.labelModule);break;case\"dot\":this.shape=new Dot(this.options,this.body,this.labelModule);break;case\"ellipse\":this.shape=new Ellipse(this.options,this.body,this.labelModule);break;case\"icon\":this.shape=new Icon(this.options,this.body,this.labelModule);break;case\"image\":this.shape=new Image(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"square\":this.shape=new Square(this.options,this.body,this.labelModule);break;case\"hexagon\":this.shape=new Hexagon(this.options,this.body,this.labelModule);break;case\"star\":this.shape=new Star(this.options,this.body,this.labelModule);break;case\"text\":this.shape=new Text(this.options,this.body,this.labelModule);break;case\"triangle\":this.shape=new Triangle(this.options,this.body,this.labelModule);break;case\"triangleDown\":this.shape=new TriangleDown(this.options,this.body,this.labelModule);break;default:this.shape=new Ellipse(this.options,this.body,this.labelModule);break}}this.needsRefresh()}},{key:\"select\",value:function select(){this.selected=true;this.needsRefresh()}},{key:\"unselect\",value:function unselect(){this.selected=false;this.needsRefresh()}},{key:\"needsRefresh\",value:function needsRefresh(){this.shape.refreshNeeded=true}},{key:\"getTitle\",value:function getTitle(){return this.options.title}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this.shape.distanceToBorder(ctx,angle)}},{key:\"isFixed\",value:function isFixed(){return this.options.fixed.x&&this.options.fixed.y}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"getLabelSize\",value:function getLabelSize(){return this.labelModule.size()}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var sizeDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.size=this.options.scaling.min+scale*sizeDiff}else{this.options.size=this.baseSize;this.options.font.size=this.baseFontSize}this.updateLabelModule()}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();this.shape.draw(ctx,this.x,this.y,this.selected,this.hover,values)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(ctx){this.shape.updateBoundingBox(this.x,this.y,ctx)}},{key:\"resize\",value:function resize(ctx){var values=this.getFormattingValues();this.shape.resize(ctx,this.selected,this.hover,values)}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){if(ComponentUtil.pointInRect(this.labelModule.getSize(),point)){ret.push({nodeId:this.id,labelId:0})}}if(ComponentUtil.pointInRect(this.shape.boundingBox,point)){ret.push({nodeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){return this.shape.left<obj.right&&this.shape.left+this.shape.width>obj.left&&this.shape.top<obj.bottom&&this.shape.top+this.shape.height>obj.top}},{key:\"isBoundingBoxOverlappingWith\",value:function isBoundingBoxOverlappingWith(obj){return this.shape.boundingBox.left<obj.right&&this.shape.boundingBox.right>obj.left&&this.shape.boundingBox.top<obj.bottom&&this.shape.boundingBox.bottom>obj.top}}],[{key:\"updateGroupOptions\",value:function updateGroupOptions(parentOptions,newOptions,groupList){if(groupList===undefined)return;var group=parentOptions.group;if(newOptions!==undefined&&newOptions.group!==undefined&&group!==newOptions.group){throw new Error(\"updateGroupOptions: group values in options don't match.\")}var hasGroup=typeof group===\"number\"||typeof group===\"string\"&&group!=\"\";if(!hasGroup)return;var groupObj=groupList.get(group);util.selectiveNotDeepExtend([\"font\"],parentOptions,groupObj);parentOptions.color=util.parseColor(parentOptions.color)}},{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var groupList=arguments[4];var fields=[\"color\",\"fixed\",\"shadow\"];util.selectiveNotDeepExtend(fields,parentOptions,newOptions,allowDeletion);Node.checkMass(newOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.color!==undefined&&newOptions.color!==null){var parsedColor=util.parseColor(newOptions.color);util.fillIfDefined(parentOptions.color,parsedColor)}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(newOptions.fixed!==undefined&&newOptions.fixed!==null){if(typeof newOptions.fixed===\"boolean\"){parentOptions.fixed.x=newOptions.fixed;parentOptions.fixed.y=newOptions.fixed}else{if(newOptions.fixed.x!==undefined&&typeof newOptions.fixed.x===\"boolean\"){parentOptions.fixed.x=newOptions.fixed.x}if(newOptions.fixed.y!==undefined&&typeof newOptions.fixed.y===\"boolean\"){parentOptions.fixed.y=newOptions.fixed.y}}}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}Node.updateGroupOptions(parentOptions,newOptions,groupList);if(newOptions.scaling!==undefined){util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}}},{key:\"checkMass\",value:function checkMass(options,id){if(options.mass!==undefined&&options.mass<=0){var strId=\"\";if(id!==undefined){strId=\" in node id: \"+id}console.log(\"%cNegative or zero mass disallowed\"+strId+\", setting mass to 1.\",printStyle);options.mass=1}}}]);return Node}();exports[\"default\"]=Node},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=function(){function ComponentUtil(){(0,_classCallCheck3[\"default\"])(this,ComponentUtil)}(0,_createClass3[\"default\"])(ComponentUtil,null,[{key:\"choosify\",value:function choosify(subOption,pile){var allowed=[\"node\",\"edge\",\"label\"];var value=true;var chosen=util.topMost(pile,\"chosen\");if(typeof chosen===\"boolean\"){value=chosen}else if((typeof chosen===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(chosen))===\"object\"){if(allowed.indexOf(subOption)===-1){throw new Error(\"choosify: subOption '\"+subOption+\"' should be one of \"+\"'\"+allowed.join(\"', '\")+\"'\")}var chosenEdge=util.topMost(pile,[\"chosen\",subOption]);if(typeof chosenEdge===\"boolean\"||typeof chosenEdge===\"function\"){value=chosenEdge}}return value}},{key:\"pointInRect\",value:function pointInRect(rect,point,rotationPoint){if(rect.width<=0||rect.height<=0){return false}if(rotationPoint!==undefined){var tmp={x:point.x-rotationPoint.x,y:point.y-rotationPoint.y};if(rotationPoint.angle!==0){var angle=-rotationPoint.angle;var tmp2={x:Math.cos(angle)*tmp.x-Math.sin(angle)*tmp.y,y:Math.sin(angle)*tmp.x+Math.cos(angle)*tmp.y};point=tmp2}else{point=tmp}}var right=rect.x+rect.width;var bottom=rect.y+rect.width;return rect.left<point.x&&right>point.x&&rect.top<point.y&&bottom>point.y}},{key:\"isValidLabel\",value:function isValidLabel(text){return typeof text===\"string\"&&text!==\"\"}}]);return ComponentUtil}();exports[\"default\"]=ComponentUtil},function(module,exports,__webpack_require__){__webpack_require__(125);var global=__webpack_require__(18);var hide=__webpack_require__(26);var Iterators=__webpack_require__(31);var TO_STRING_TAG=__webpack_require__(13)(\"toStringTag\");var DOMIterables=(\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,\"+\"DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,\"+\"MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,\"+\"SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,\"+\"TextTrackList,TouchList\").split(\",\");for(var i=0;i<DOMIterables.length;i++){var NAME=DOMIterables[i];var Collection=global[NAME];var proto=Collection&&Collection.prototype;if(proto&&!proto[TO_STRING_TAG])hide(proto,TO_STRING_TAG,NAME);Iterators[NAME]=Iterators.Array}},function(module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},function(module,exports){module.exports=function(it){if(it==undefined)throw TypeError(\"Can't call method on \"+it);return it}},function(module,exports){module.exports=true},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it,S){if(!isObject(it))return it;var fn,val;if(S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;if(typeof(fn=it.valueOf)==\"function\"&&!isObject(val=fn.call(it)))return val;if(!S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;throw TypeError(\"Can't convert object to primitive value\")}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var dPs=__webpack_require__(130);var enumBugKeys=__webpack_require__(58);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\")\n;var Empty=function(){};var PROTOTYPE=\"prototype\";var createDict=function(){var iframe=__webpack_require__(82)(\"iframe\");var i=enumBugKeys.length;var lt=\"<\";var gt=\">\";var iframeDocument;iframe.style.display=\"none\";__webpack_require__(134).appendChild(iframe);iframe.src=\"javascript:\";iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(lt+\"script\"+gt+\"document.F=Object\"+lt+\"/script\"+gt);iframeDocument.close();createDict=iframeDocument.F;while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];return createDict()};module.exports=Object.create||function create(O,Properties){var result;if(O!==null){Empty[PROTOTYPE]=anObject(O);result=new Empty;Empty[PROTOTYPE]=null;result[IE_PROTO]=O}else result=createDict();return Properties===undefined?result:dPs(result,Properties)}},function(module,exports){var ceil=Math.ceil;var floor=Math.floor;module.exports=function(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it)}},function(module,exports,__webpack_require__){var shared=__webpack_require__(57)(\"keys\");var uid=__webpack_require__(40);module.exports=function(key){return shared[key]||(shared[key]=uid(key))}},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var SHARED=\"__core-js_shared__\";var store=global[SHARED]||(global[SHARED]={});module.exports=function(key){return store[key]||(store[key]={})}},function(module,exports){module.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(module,exports,__webpack_require__){var def=__webpack_require__(20).f;var has=__webpack_require__(22);var TAG=__webpack_require__(13)(\"toStringTag\");module.exports=function(it,tag,stat){if(it&&!has(it=stat?it:it.prototype,TAG))def(it,TAG,{configurable:true,value:tag})}},function(module,exports,__webpack_require__){\"use strict\";var $at=__webpack_require__(135)(true);__webpack_require__(79)(String,\"String\",function(iterated){this._t=String(iterated);this._i=0},function(){var O=this._t;var index=this._i;var point;if(index>=O.length)return{value:undefined,done:true};point=$at(O,index);this._i+=point.length;return{value:point,done:false}})},function(module,exports,__webpack_require__){exports.f=__webpack_require__(13)},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var LIBRARY=__webpack_require__(52);var wksExt=__webpack_require__(61);var defineProperty=__webpack_require__(20).f;module.exports=function(name){var $Symbol=core.Symbol||(core.Symbol=LIBRARY?{}:global.Symbol||{});if(name.charAt(0)!=\"_\"&&!(name in $Symbol))defineProperty($Symbol,name,{value:wksExt.f(name)})}},function(module,exports){exports.f=Object.getOwnPropertySymbols},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var moment=__webpack_require__(9);var Component=__webpack_require__(16);var DateUtil=__webpack_require__(36);function Range(body,options){var now=moment().hours(0).minutes(0).seconds(0).milliseconds(0);var start=now.clone().add(-3,\"days\").valueOf();var end=now.clone().add(3,\"days\").valueOf();this.millisecondsPerPixelCache=undefined;if(options===undefined){this.start=start;this.end=end}else{this.start=options.start||start;this.end=options.end||end}this.rolling=false;this.body=body;this.deltaDifference=0;this.scaleOffset=0;this.startToFront=false;this.endToFront=true;this.defaultOptions={rtl:false,start:null,end:null,moment:moment,direction:\"horizontal\",moveable:true,zoomable:true,min:null,max:null,zoomMin:10,zoomMax:1e3*60*60*24*365*1e4,rollingMode:{follow:false,offset:.5}};this.options=util.extend({},this.defaultOptions);this.props={touch:{}};this.animationTimer=null;this.body.emitter.on(\"panstart\",this._onDragStart.bind(this));this.body.emitter.on(\"panmove\",this._onDrag.bind(this));this.body.emitter.on(\"panend\",this._onDragEnd.bind(this));this.body.emitter.on(\"mousewheel\",this._onMouseWheel.bind(this));this.body.emitter.on(\"touch\",this._onTouch.bind(this));this.body.emitter.on(\"pinch\",this._onPinch.bind(this));this.body.dom.rollingModeBtn.addEventListener(\"click\",this.startRolling.bind(this));this.setOptions(options)}Range.prototype=new Component;Range.prototype.setOptions=function(options){if(options){var fields=[\"animation\",\"direction\",\"min\",\"max\",\"zoomMin\",\"zoomMax\",\"moveable\",\"zoomable\",\"moment\",\"activate\",\"hiddenDates\",\"zoomKey\",\"rtl\",\"showCurrentTime\",\"rollingMode\",\"horizontalScroll\"];util.selectiveExtend(fields,this.options,options);if(options.rollingMode&&options.rollingMode.follow){this.startRolling()}if(\"start\"in options||\"end\"in options){this.setRange(options.start,options.end)}}};function validateDirection(direction){if(direction!=\"horizontal\"&&direction!=\"vertical\"){throw new TypeError('Unknown direction \"'+direction+'\". '+'Choose \"horizontal\" or \"vertical\".')}}Range.prototype.startRolling=function(){var me=this;function update(){me.stopRolling();me.rolling=true;var interval=me.end-me.start;var t=util.convert(new Date,\"Date\").valueOf();var start=t-interval*me.options.rollingMode.offset;var end=t+interval*(1-me.options.rollingMode.offset);var options={animation:false};me.setRange(start,end,options);var scale=me.conversion(me.body.domProps.center.width).scale;interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.body.dom.rollingModeBtn.style.visibility=\"hidden\";me.currentTimeTimer=setTimeout(update,interval)}update()};Range.prototype.stopRolling=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);this.rolling=false;this.body.dom.rollingModeBtn.style.visibility=\"visible\"}};Range.prototype.setRange=function(start,end,options,callback,frameCallback){if(!options){options={}}if(options.byUser!==true){options.byUser=false}var me=this;var finalStart=start!=undefined?util.convert(start,\"Date\").valueOf():null;var finalEnd=end!=undefined?util.convert(end,\"Date\").valueOf():null;this._cancelAnimation();this.millisecondsPerPixelCache=undefined;if(options.animation){var initStart=this.start;var initEnd=this.end;var duration=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"duration\"in options.animation?options.animation.duration:500;var easingName=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"easingFunction\"in options.animation?options.animation.easingFunction:\"easeInOutQuad\";var easingFunction=util.easingFunctions[easingName];if(!easingFunction){throw new Error(\"Unknown easing function \"+(0,_stringify2[\"default\"])(easingName)+\". \"+\"Choose from: \"+(0,_keys2[\"default\"])(util.easingFunctions).join(\", \"))}var initTime=(new Date).valueOf();var anyChanged=false;var next=function next(){if(!me.props.touch.dragging){var now=(new Date).valueOf();var time=now-initTime;var ease=easingFunction(time/duration);var done=time>duration;var s=done||finalStart===null?finalStart:initStart+(finalStart-initStart)*ease;var e=done||finalEnd===null?finalEnd:initEnd+(finalEnd-initEnd)*ease;changed=me._applyRange(s,e);DateUtil.updateHiddenDates(me.options.moment,me.body,me.options.hiddenDates);anyChanged=anyChanged||changed;var params={start:new Date(me.start),end:new Date(me.end),byUser:options.byUser,event:options.event};if(frameCallback){frameCallback(ease,changed,done)}if(changed){me.body.emitter.emit(\"rangechange\",params)}if(done){if(anyChanged){me.body.emitter.emit(\"rangechanged\",params);if(callback){return callback()}}}else{me.animationTimer=setTimeout(next,20)}}};return next()}else{var changed=this._applyRange(finalStart,finalEnd);DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(changed){var params={start:new Date(this.start),end:new Date(this.end),byUser:options.byUser,event:options.event};this.body.emitter.emit(\"rangechange\",params);clearTimeout(me.timeoutID);me.timeoutID=setTimeout(function(){me.body.emitter.emit(\"rangechanged\",params)},200);if(callback){return callback()}}}};Range.prototype.getMillisecondsPerPixel=function(){if(this.millisecondsPerPixelCache===undefined){this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth}return this.millisecondsPerPixelCache};Range.prototype._cancelAnimation=function(){if(this.animationTimer){clearTimeout(this.animationTimer);this.animationTimer=null}};Range.prototype._applyRange=function(start,end){var newStart=start!=null?util.convert(start,\"Date\").valueOf():this.start,newEnd=end!=null?util.convert(end,\"Date\").valueOf():this.end,max=this.options.max!=null?util.convert(this.options.max,\"Date\").valueOf():null,min=this.options.min!=null?util.convert(this.options.min,\"Date\").valueOf():null,diff;if(isNaN(newStart)||newStart===null){throw new Error('Invalid start \"'+start+'\"')}if(isNaN(newEnd)||newEnd===null){throw new Error('Invalid end \"'+end+'\"')}if(newEnd<newStart){newEnd=newStart}if(min!==null){if(newStart<min){diff=min-newStart;newStart+=diff;newEnd+=diff;if(max!=null){if(newEnd>max){newEnd=max}}}}if(max!==null){if(newEnd>max){diff=newEnd-max;newStart-=diff;newEnd-=diff;if(min!=null){if(newStart<min){newStart=min}}}}if(this.options.zoomMin!==null){var zoomMin=parseFloat(this.options.zoomMin);if(zoomMin<0){zoomMin=0}if(newEnd-newStart<zoomMin){var compensation=.5;if(this.end-this.start===zoomMin&&newStart>=this.start-compensation&&newEnd<=this.end){newStart=this.start;newEnd=this.end}else{diff=zoomMin-(newEnd-newStart);newStart-=diff/2;newEnd+=diff/2}}}if(this.options.zoomMax!==null){var zoomMax=parseFloat(this.options.zoomMax);if(zoomMax<0){zoomMax=0}if(newEnd-newStart>zoomMax){if(this.end-this.start===zoomMax&&newStart<this.start&&newEnd>this.end){newStart=this.start;newEnd=this.end}else{diff=newEnd-newStart-zoomMax;newStart+=diff/2;newEnd-=diff/2}}}var changed=this.start!=newStart||this.end!=newEnd;if(!(newStart>=this.start&&newStart<=this.end||newEnd>=this.start&&newEnd<=this.end)&&!(this.start>=newStart&&this.start<=newEnd||this.end>=newStart&&this.end<=newEnd)){this.body.emitter.emit(\"checkRangedItems\")}this.start=newStart;this.end=newEnd;return changed};Range.prototype.getRange=function(){return{start:this.start,end:this.end}};Range.prototype.conversion=function(width,totalHidden){return Range.conversion(this.start,this.end,width,totalHidden)};Range.conversion=function(start,end,width,totalHidden){if(totalHidden===undefined){totalHidden=0}if(width!=0&&end-start!=0){return{offset:start,scale:width/(end-start-totalHidden)}}else{return{offset:0,scale:1}}};Range.prototype._onDragStart=function(event){this.deltaDifference=0;this.previousDelta=0;if(!this.options.moveable)return;if(!this._isInsideRange(event))return;if(!this.props.touch.allowDragging)return;this.stopRolling();this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.dragging=true;if(this.body.dom.root){this.body.dom.root.style.cursor=\"move\"}};Range.prototype._onDrag=function(event){if(!event)return;if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;var direction=this.options.direction;validateDirection(direction);var delta=direction==\"horizontal\"?event.deltaX:event.deltaY;delta-=this.deltaDifference;var interval=this.props.touch.end-this.props.touch.start;var duration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);interval-=duration;var width=direction==\"horizontal\"?this.body.domProps.center.width:this.body.domProps.center.height;var diffRange;if(this.options.rtl){diffRange=delta/width*interval}else{diffRange=-delta/width*interval}var newStart=this.props.touch.start+diffRange;var newEnd=this.props.touch.end+diffRange;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,this.previousDelta-delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,this.previousDelta-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){this.deltaDifference+=delta;this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this._onDrag(event);return}this.previousDelta=delta;this._applyRange(newStart,newEnd);var startDate=new Date(this.start);var endDate=new Date(this.end);this.body.emitter.emit(\"rangechange\",{start:startDate,end:endDate,byUser:true,event:event});this.body.emitter.emit(\"panmove\")};Range.prototype._onDragEnd=function(event){if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;this.props.touch.dragging=false;if(this.body.dom.root){this.body.dom.root.style.cursor=\"auto\"}this.body.emitter.emit(\"rangechanged\",{start:new Date(this.start),end:new Date(this.end),byUser:true,event:event})};Range.prototype._onMouseWheel=function(event){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(this.options.zoomKey&&!event[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){return}if(!(this.options.zoomable&&this.options.moveable))return;if(!this._isInsideRange(event))return;if(delta){var scale;if(delta<0){scale=1-delta/5}else{scale=1/(1+delta/5)}var pointerDate;if(this.rolling){pointerDate=this.start+(this.end-this.start)*this.options.rollingMode.offset}else{var pointer=this.getPointer({x:event.clientX,y:event.clientY},this.body.dom.center);pointerDate=this._pointerToDate(pointer)}this.zoom(scale,pointerDate,delta,event);event.preventDefault()}};Range.prototype._onTouch=function(event){this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.allowDragging=true;this.props.touch.center=null;this.scaleOffset=0;this.deltaDifference=0;util.preventDefault(event)};Range.prototype._onPinch=function(event){if(!(this.options.zoomable&&this.options.moveable))return;util.preventDefault(event);this.props.touch.allowDragging=false;if(!this.props.touch.center){this.props.touch.center=this.getPointer(event.center,this.body.dom.center)}this.stopRolling();var scale=1/(event.scale+this.scaleOffset);var centerDate=this._pointerToDate(this.props.touch.center);var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,centerDate);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=centerDate-hiddenDurationBefore+(this.props.touch.start-(centerDate-hiddenDurationBefore))*scale;var newEnd=centerDate+hiddenDurationAfter+(this.props.touch.end-(centerDate+hiddenDurationAfter))*scale;this.startToFront=1-scale<=0;this.endToFront=scale-1<=0;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,1-scale,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,scale-1,true);if(safeStart!=newStart||safeEnd!=newEnd){this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this.scaleOffset=1-event.scale;newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype._isInsideRange=function(event){var clientX=event.center?event.center.x:event.clientX;var x;if(this.options.rtl){x=clientX-util.getAbsoluteLeft(this.body.dom.centerContainer)}else{x=util.getAbsoluteRight(this.body.dom.centerContainer)-clientX}var time=this.body.util.toTime(x);return time>=this.start&&time<=this.end};Range.prototype._pointerToDate=function(pointer){var conversion;var direction=this.options.direction;validateDirection(direction);if(direction==\"horizontal\"){return this.body.util.toTime(pointer.x).valueOf()}else{var height=this.body.domProps.center.height;conversion=this.conversion(height);return pointer.y/conversion.scale+conversion.offset}};Range.prototype.getPointer=function(touch,element){if(this.options.rtl){return{x:util.getAbsoluteRight(element)-touch.x,y:touch.y-util.getAbsoluteTop(element)}}else{return{x:touch.x-util.getAbsoluteLeft(element),y:touch.y-util.getAbsoluteTop(element)}}};Range.prototype.zoom=function(scale,center,delta,event){if(center==null){center=(this.start+this.end)/2}var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,center);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=center-hiddenDurationBefore+(this.start-(center-hiddenDurationBefore))*scale;var newEnd=center+hiddenDurationAfter+(this.end-(center+hiddenDurationAfter))*scale;this.startToFront=delta>0?false:true;this.endToFront=-delta>0?false:true;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype.move=function(delta){var diff=this.end-this.start;var newStart=this.start+diff*delta;var newEnd=this.end+diff*delta;this.start=newStart;this.end=newEnd};Range.prototype.moveTo=function(moveTo){var center=(this.start+this.end)/2;var diff=center-moveTo;var newStart=this.start-diff;var newEnd=this.end-diff;var options={animation:false,byUser:true,event:null};this.setRange(newStart,newEnd,options)};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var TimeAxis=__webpack_require__(45);var Activator=__webpack_require__(97);var DateUtil=__webpack_require__(36);var CustomTime=__webpack_require__(46);function Core(){}Emitter(Core.prototype);Core.prototype._create=function(container){this.dom={};this.dom.container=container;this.dom.root=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.backgroundVertical=document.createElement(\"div\");this.dom.backgroundHorizontal=document.createElement(\"div\");this.dom.centerContainer=document.createElement(\"div\");this.dom.leftContainer=document.createElement(\"div\");this.dom.rightContainer=document.createElement(\"div\");this.dom.center=document.createElement(\"div\");this.dom.left=document.createElement(\"div\");this.dom.right=document.createElement(\"div\");this.dom.top=document.createElement(\"div\");this.dom.bottom=document.createElement(\"div\");this.dom.shadowTop=document.createElement(\"div\");this.dom.shadowBottom=document.createElement(\"div\");this.dom.shadowTopLeft=document.createElement(\"div\");this.dom.shadowBottomLeft=document.createElement(\"div\");this.dom.shadowTopRight=document.createElement(\"div\");this.dom.shadowBottomRight=document.createElement(\"div\");this.dom.rollingModeBtn=document.createElement(\"div\");this.dom.root.className=\"vis-timeline\";this.dom.background.className=\"vis-panel vis-background\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical\";this.dom.backgroundHorizontal.className=\"vis-panel vis-background vis-horizontal\";this.dom.centerContainer.className=\"vis-panel vis-center\";this.dom.leftContainer.className=\"vis-panel vis-left\";this.dom.rightContainer.className=\"vis-panel vis-right\";this.dom.top.className=\"vis-panel vis-top\";this.dom.bottom.className=\"vis-panel vis-bottom\";this.dom.left.className=\"vis-content\";this.dom.center.className=\"vis-content\";this.dom.right.className=\"vis-content\";this.dom.shadowTop.className=\"vis-shadow vis-top\";this.dom.shadowBottom.className=\"vis-shadow vis-bottom\";this.dom.shadowTopLeft.className=\"vis-shadow vis-top\";this.dom.shadowBottomLeft.className=\"vis-shadow vis-bottom\";this.dom.shadowTopRight.className=\"vis-shadow vis-top\";this.dom.shadowBottomRight.className=\"vis-shadow vis-bottom\";this.dom.rollingModeBtn.className=\"vis-rolling-mode-btn\";this.dom.root.appendChild(this.dom.background);this.dom.root.appendChild(this.dom.backgroundVertical);this.dom.root.appendChild(this.dom.backgroundHorizontal);this.dom.root.appendChild(this.dom.centerContainer);this.dom.root.appendChild(this.dom.leftContainer);this.dom.root.appendChild(this.dom.rightContainer);this.dom.root.appendChild(this.dom.top);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.rollingModeBtn);this.dom.centerContainer.appendChild(this.dom.center);this.dom.leftContainer.appendChild(this.dom.left);this.dom.rightContainer.appendChild(this.dom.right);this.dom.centerContainer.appendChild(this.dom.shadowTop);this.dom.centerContainer.appendChild(this.dom.shadowBottom);this.dom.leftContainer.appendChild(this.dom.shadowTopLeft);this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft);this.dom.rightContainer.appendChild(this.dom.shadowTopRight);this.dom.rightContainer.appendChild(this.dom.shadowBottomRight);this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0};this.on(\"rangechange\",function(){if(this.initialDrawDone===true){this._redraw()}}.bind(this));this.on(\"rangechanged\",function(){if(!this.initialRangeChangeDone){this.initialRangeChangeDone=true}}.bind(this));this.on(\"touch\",this._onTouch.bind(this));this.on(\"panmove\",this._onDrag.bind(this));var me=this;this._origRedraw=this._redraw.bind(this);this._redraw=util.throttle(this._origRedraw);this.on(\"_change\",function(properties){if(me.itemSet&&me.itemSet.initialItemSetDrawn&&properties&&properties.queue==true){me._redraw()}else{me._origRedraw()}});this.hammer=new Hammer(this.dom.root);var pinchRecognizer=this.hammer.get(\"pinch\").set({enable:true});hammerUtil.disablePreventDefaultVertically(pinchRecognizer);this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.listeners={};var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(type){var listener=function listener(event){if(me.isActive()){me.emit(type,event)}};me.hammer.on(type,listener);me.listeners[type]=listener});hammerUtil.onTouch(this.hammer,function(event){me.emit(\"touch\",event)}.bind(this));hammerUtil.onRelease(this.hammer,function(event){me.emit(\"release\",event)}.bind(this));function onMouseWheel(event){if(this.isActive()){this.emit(\"mousewheel\",event)}var deltaX=0;var deltaY=0;if(\"detail\"in event){deltaY=event.detail*-1}if(\"wheelDelta\"in event){deltaY=event.wheelDelta}if(\"wheelDeltaY\"in event){deltaY=event.wheelDeltaY}if(\"wheelDeltaX\"in event){deltaX=event.wheelDeltaX*-1}if(\"axis\"in event&&event.axis===event.HORIZONTAL_AXIS){deltaX=deltaY*-1;deltaY=0}if(\"deltaY\"in event){deltaY=event.deltaY*-1}if(\"deltaX\"in event){deltaX=event.deltaX}if(!this.options.zoomKey||event[this.options.zoomKey])return;event.preventDefault();if(this.options.verticalScroll&&Math.abs(deltaY)>=Math.abs(deltaX)){var current=this.props.scrollTop;var adjusted=current+deltaY;if(this.isActive()){this._setScrollTop(adjusted);this._redraw();this.emit(\"scroll\",event)}}else if(this.options.horizontalScroll){var delta=Math.abs(deltaX)>=Math.abs(deltaY)?deltaX:deltaY;var diff=delta/120*(this.range.end-this.range.start)/20;var newStart=this.range.start+diff;var newEnd=this.range.end+diff;var options={animation:false,byUser:true,event:event};this.range.setRange(newStart,newEnd,options)}}if(this.dom.centerContainer.addEventListener){this.dom.centerContainer.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);this.dom.centerContainer.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{this.dom.centerContainer.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}function onMouseScrollSide(event){if(!me.options.verticalScroll)return;event.preventDefault();if(me.isActive()){var adjusted=-event.target.scrollTop;me._setScrollTop(adjusted);me._redraw();me.emit(\"scrollSide\",event)}}this.dom.left.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));this.dom.right.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));var itemAddedToTimeline=false;function handleDragOver(event){if(event.preventDefault){event.preventDefault()}if(!event.target.className.indexOf(\"vis\")>-1)return;if(itemAddedToTimeline)return;event.dataTransfer.dropEffect=\"move\";itemAddedToTimeline=true;return false}function handleDrop(event){if(event.preventDefault){event.preventDefault()}if(event.stopPropagation){event.stopPropagation()}try{var itemData=JSON.parse(event.dataTransfer.getData(\"text\"));if(!itemData||!itemData.content)return}catch(err){return false}itemAddedToTimeline=false;event.center={x:event.clientX,y:event.clientY};if(itemData.target!==\"item\"){me.itemSet._onAddItem(event)}else{me.itemSet._onDropObjectOnItem(event)}me.emit(\"drop\",me.getEventProperties(event));return false}this.dom.center.addEventListener(\"dragover\",handleDragOver.bind(this),false);this.dom.center.addEventListener(\"drop\",handleDrop.bind(this),false);this.customTimes=[];this.touch={};this.redrawCount=0;this.initialDrawDone=false;this.initialRangeChangeDone=false;if(!container)throw new Error(\"No container provided\");container.appendChild(this.dom.root)};Core.prototype.setOptions=function(options){if(options){var fields=[\"width\",\"height\",\"minHeight\",\"maxHeight\",\"autoResize\",\"start\",\"end\",\"clickToUse\",\"dataAttributes\",\"hiddenDates\",\"locale\",\"locales\",\"moment\",\"rtl\",\"zoomKey\",\"horizontalScroll\",\"verticalScroll\"];util.selectiveExtend(fields,this.options,options);this.dom.rollingModeBtn.style.visibility=\"hidden\";if(this.options.rtl){this.dom.container.style.direction=\"rtl\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical-rtl\"}if(this.options.verticalScroll){if(this.options.rtl){this.dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\"}else{this.dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\"}}if((0,_typeof3[\"default\"])(this.options.orientation)!==\"object\"){this.options.orientation={item:undefined,axis:undefined}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation={item:options.orientation,axis:options.orientation}}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"){if(\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}if(\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}}if(this.options.orientation.axis===\"both\"){if(!this.timeAxis2){var timeAxis2=this.timeAxis2=new TimeAxis(this.body);timeAxis2.setOptions=function(options){var _options=options?util.extend({},options):{};_options.orientation=\"top\";TimeAxis.prototype.setOptions.call(timeAxis2,_options)};this.components.push(timeAxis2)}}else{if(this.timeAxis2){var index=this.components.indexOf(this.timeAxis2);if(index!==-1){this.components.splice(index,1)}this.timeAxis2.destroy();this.timeAxis2=null}}if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}if(\"hiddenDates\"in this.options){DateUtil.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates)}if(\"clickToUse\"in options){if(options.clickToUse){if(!this.activator){this.activator=new Activator(this.dom.root)}}else{if(this.activator){this.activator.destroy();delete this.activator}}}if(\"showCustomTime\"in options){throw new Error(\"Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])\")}this._initAutoResize()}this.components.forEach(function(component){return component.setOptions(options)});if(\"configure\"in options){if(!this.configurator){this.configurator=this._createConfigurator()}this.configurator.setOptions(options.configure);var appliedOptions=util.deepExtend({},this.options);this.components.forEach(function(component){util.deepExtend(appliedOptions,component.options)});this.configurator.setModuleOptions({global:appliedOptions})}this._redraw()};Core.prototype.isActive=function(){return!this.activator||this.activator.active};Core.prototype.destroy=function(){this.setItems(null);this.setGroups(null);this.off();this._stopAutoResize();if(this.dom.root.parentNode){this.dom.root.parentNode.removeChild(this.dom.root)}this.dom=null;if(this.activator){this.activator.destroy();delete this.activator}for(var event in this.listeners){if(this.listeners.hasOwnProperty(event)){delete this.listeners[event]}}this.listeners=null;this.hammer=null;this.components.forEach(function(component){return component.destroy()});this.body=null};Core.prototype.setCustomTime=function(time,id){var customTimes=this.customTimes.filter(function(component){return id===component.options.id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){customTimes[0].setCustomTime(time)}};Core.prototype.getCustomTime=function(id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}return customTimes[0].getCustomTime()};Core.prototype.setCustomTimeTitle=function(title,id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){return customTimes[0].setCustomTitle(title)}};Core.prototype.getEventProperties=function(event){return{event:event}};Core.prototype.addCustomTime=function(time,id){var timestamp=time!==undefined?util.convert(time,\"Date\").valueOf():new Date;var exists=this.customTimes.some(function(customTime){return customTime.options.id===id});if(exists){throw new Error(\"A custom time with id \"+(0,_stringify2[\"default\"])(id)+\" already exists\")}var customTime=new CustomTime(this.body,util.extend({},this.options,{time:timestamp,id:id}));this.customTimes.push(customTime);this.components.push(customTime);this._redraw();return id};Core.prototype.removeCustomTime=function(id){var customTimes=this.customTimes.filter(function(bar){return bar.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}customTimes.forEach(function(customTime){this.customTimes.splice(this.customTimes.indexOf(customTime),1);this.components.splice(this.components.indexOf(customTime),1);customTime.destroy()}.bind(this))};Core.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]};Core.prototype.fit=function(options,callback){var range=this.getDataRange();if(range.min===null&&range.max===null){return}var interval=range.max-range.min;var min=new Date(range.min.valueOf()-interval*.01);var max=new Date(range.max.valueOf()+interval*.01);var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(min,max,{animation:animation},callback)};Core.prototype.getDataRange=function(){throw new Error(\"Cannot invoke abstract method getDataRange\")};Core.prototype.setWindow=function(start,end,options,callback){if(typeof arguments[2]==\"function\"){callback=arguments[2];options={}}var animation;var range;if(arguments.length==1){range=arguments[0];animation=range.animation!==undefined?range.animation:true;this.range.setRange(range.start,range.end,{animation:animation})}else if(arguments.length==2&&typeof arguments[1]==\"function\"){range=arguments[0];callback=arguments[1];animation=range.animation!==undefined?range.animation:true\n;this.range.setRange(range.start,range.end,{animation:animation},callback)}else{animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)}};Core.prototype.moveTo=function(time,options,callback){if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var interval=this.range.end-this.range.start;var t=util.convert(time,\"Date\").valueOf();var start=t-interval/2;var end=t+interval/2;var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)};Core.prototype.getWindow=function(){var range=this.range.getRange();return{start:new Date(range.start),end:new Date(range.end)}};Core.prototype.zoomIn=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newInterval=interval/(1+percentage);var distance=(interval-newInterval)/2;var newStart=start+distance;var newEnd=end-distance;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.zoomOut=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newStart=start-interval*percentage/2;var newEnd=end+interval*percentage/2;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.redraw=function(){this._redraw()};Core.prototype._redraw=function(){this.redrawCount++;var resized=false;var options=this.options;var props=this.props;var dom=this.dom;if(!dom||!dom.container||dom.root.offsetWidth==0)return;DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(options.orientation==\"top\"){util.addClassName(dom.root,\"vis-top\");util.removeClassName(dom.root,\"vis-bottom\")}else{util.removeClassName(dom.root,\"vis-top\");util.addClassName(dom.root,\"vis-bottom\")}dom.root.style.maxHeight=util.option.asSize(options.maxHeight,\"\");dom.root.style.minHeight=util.option.asSize(options.minHeight,\"\");dom.root.style.width=util.option.asSize(options.width,\"\");props.border.left=(dom.centerContainer.offsetWidth-dom.centerContainer.clientWidth)/2;props.border.right=props.border.left;props.border.top=(dom.centerContainer.offsetHeight-dom.centerContainer.clientHeight)/2;props.border.bottom=props.border.top;props.borderRootHeight=dom.root.offsetHeight-dom.root.clientHeight;props.borderRootWidth=dom.root.offsetWidth-dom.root.clientWidth;if(dom.centerContainer.clientHeight===0){props.border.left=props.border.top;props.border.right=props.border.left}if(dom.root.clientHeight===0){props.borderRootWidth=props.borderRootHeight}props.center.height=dom.center.offsetHeight;props.left.height=dom.left.offsetHeight;props.right.height=dom.right.offsetHeight;props.top.height=dom.top.clientHeight||-props.border.top;props.bottom.height=dom.bottom.clientHeight||-props.border.bottom;var contentHeight=Math.max(props.left.height,props.center.height,props.right.height);var autoHeight=props.top.height+contentHeight+props.bottom.height+props.borderRootHeight+props.border.top+props.border.bottom;dom.root.style.height=util.option.asSize(options.height,autoHeight+\"px\");props.root.height=dom.root.offsetHeight;props.background.height=props.root.height-props.borderRootHeight;var containerHeight=props.root.height-props.top.height-props.bottom.height-props.borderRootHeight;props.centerContainer.height=containerHeight;props.leftContainer.height=containerHeight;props.rightContainer.height=props.leftContainer.height;props.root.width=dom.root.offsetWidth;props.background.width=props.root.width-props.borderRootWidth;if(!this.initialDrawDone){props.scrollbarWidth=util.getScrollBarWidth()}if(options.verticalScroll){if(options.rtl){props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth+props.scrollbarWidth||-props.border.right}else{props.left.width=dom.leftContainer.clientWidth+props.scrollbarWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}}else{props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}this._setDOM();var offset=this._updateScrollTop();if(options.orientation.item!=\"top\"){offset+=Math.max(props.centerContainer.height-props.center.height-props.border.top-props.border.bottom,0)}dom.center.style.top=offset+\"px\";var visibilityTop=props.scrollTop==0?\"hidden\":\"\";var visibilityBottom=props.scrollTop==props.scrollTopMin?\"hidden\":\"\";dom.shadowTop.style.visibility=visibilityTop;dom.shadowBottom.style.visibility=visibilityBottom;dom.shadowTopLeft.style.visibility=visibilityTop;dom.shadowBottomLeft.style.visibility=visibilityBottom;dom.shadowTopRight.style.visibility=visibilityTop;dom.shadowBottomRight.style.visibility=visibilityBottom;if(options.verticalScroll){dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\";dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\";dom.shadowTopRight.style.visibility=\"hidden\";dom.shadowBottomRight.style.visibility=\"hidden\";dom.shadowTopLeft.style.visibility=\"hidden\";dom.shadowBottomLeft.style.visibility=\"hidden\";dom.left.style.top=\"0px\";dom.right.style.top=\"0px\"}if(!options.verticalScroll||props.center.height<props.centerContainer.height){dom.left.style.top=offset+\"px\";dom.right.style.top=offset+\"px\";dom.rightContainer.className=dom.rightContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");dom.leftContainer.className=dom.leftContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right;this._setDOM()}var contentsOverflow=props.center.height>props.centerContainer.height;this.hammer.get(\"pan\").set({direction:contentsOverflow?Hammer.DIRECTION_ALL:Hammer.DIRECTION_HORIZONTAL});this.components.forEach(function(component){resized=component.redraw()||resized});var MAX_REDRAW=5;if(resized){if(this.redrawCount<MAX_REDRAW){this.body.emitter.emit(\"_change\");return}else{console.log(\"WARNING: infinite loop in redraw?\")}}else{this.redrawCount=0}this.body.emitter.emit(\"changed\")};Core.prototype._setDOM=function(){var props=this.props;var dom=this.dom;props.leftContainer.width=props.left.width;props.rightContainer.width=props.right.width;var centerWidth=props.root.width-props.left.width-props.right.width-props.borderRootWidth;props.center.width=centerWidth;props.centerContainer.width=centerWidth;props.top.width=centerWidth;props.bottom.width=centerWidth;dom.background.style.height=props.background.height+\"px\";dom.backgroundVertical.style.height=props.background.height+\"px\";dom.backgroundHorizontal.style.height=props.centerContainer.height+\"px\";dom.centerContainer.style.height=props.centerContainer.height+\"px\";dom.leftContainer.style.height=props.leftContainer.height+\"px\";dom.rightContainer.style.height=props.rightContainer.height+\"px\";dom.background.style.width=props.background.width+\"px\";dom.backgroundVertical.style.width=props.centerContainer.width+\"px\";dom.backgroundHorizontal.style.width=props.background.width+\"px\";dom.centerContainer.style.width=props.center.width+\"px\";dom.top.style.width=props.top.width+\"px\";dom.bottom.style.width=props.bottom.width+\"px\";dom.background.style.left=\"0\";dom.background.style.top=\"0\";dom.backgroundVertical.style.left=props.left.width+props.border.left+\"px\";dom.backgroundVertical.style.top=\"0\";dom.backgroundHorizontal.style.left=\"0\";dom.backgroundHorizontal.style.top=props.top.height+\"px\";dom.centerContainer.style.left=props.left.width+\"px\";dom.centerContainer.style.top=props.top.height+\"px\";dom.leftContainer.style.left=\"0\";dom.leftContainer.style.top=props.top.height+\"px\";dom.rightContainer.style.left=props.left.width+props.center.width+\"px\";dom.rightContainer.style.top=props.top.height+\"px\";dom.top.style.left=props.left.width+\"px\";dom.top.style.top=\"0\";dom.bottom.style.left=props.left.width+\"px\";dom.bottom.style.top=props.top.height+props.centerContainer.height+\"px\";dom.center.style.left=\"0\";dom.left.style.left=\"0\";dom.right.style.left=\"0\"};Core.prototype.repaint=function(){throw new Error(\"Function repaint is deprecated. Use redraw instead.\")};Core.prototype.setCurrentTime=function(time){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}this.currentTime.setCurrentTime(time)};Core.prototype.getCurrentTime=function(){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}return this.currentTime.getCurrentTime()};Core.prototype._toTime=function(x){return DateUtil.toTime(this,x,this.props.center.width)};Core.prototype._toGlobalTime=function(x){return DateUtil.toTime(this,x,this.props.root.width)};Core.prototype._toScreen=function(time){return DateUtil.toScreen(this,time,this.props.center.width)};Core.prototype._toGlobalScreen=function(time){return DateUtil.toScreen(this,time,this.props.root.width)};Core.prototype._initAutoResize=function(){if(this.options.autoResize==true){this._startAutoResize()}else{this._stopAutoResize()}};Core.prototype._startAutoResize=function(){var me=this;this._stopAutoResize();this._onResize=function(){if(me.options.autoResize!=true){me._stopAutoResize();return}if(me.dom.root){if(me.dom.root.offsetWidth!=me.props.lastWidth||me.dom.root.offsetHeight!=me.props.lastHeight){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight;me.props.scrollbarWidth=util.getScrollBarWidth();me.body.emitter.emit(\"_change\")}}};util.addEventListener(window,\"resize\",this._onResize);if(me.dom.root){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight}this.watchTimer=setInterval(this._onResize,1e3)};Core.prototype._stopAutoResize=function(){if(this.watchTimer){clearInterval(this.watchTimer);this.watchTimer=undefined}if(this._onResize){util.removeEventListener(window,\"resize\",this._onResize);this._onResize=null}};Core.prototype._onTouch=function(event){this.touch.allowDragging=true;this.touch.initialScrollTop=this.props.scrollTop};Core.prototype._onPinch=function(event){this.touch.allowDragging=false};Core.prototype._onDrag=function(event){if(!event)return;if(!this.touch.allowDragging)return;var delta=event.deltaY;var oldScrollTop=this._getScrollTop();var newScrollTop=this._setScrollTop(this.touch.initialScrollTop+delta);if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}if(newScrollTop!=oldScrollTop){this.emit(\"verticalDrag\")}};Core.prototype._setScrollTop=function(scrollTop){this.props.scrollTop=scrollTop;this._updateScrollTop();return this.props.scrollTop};Core.prototype._updateScrollTop=function(){var scrollTopMin=Math.min(this.props.centerContainer.height-this.props.center.height,0);if(scrollTopMin!=this.props.scrollTopMin){if(this.options.orientation.item!=\"top\"){this.props.scrollTop+=scrollTopMin-this.props.scrollTopMin}this.props.scrollTopMin=scrollTopMin}if(this.props.scrollTop>0)this.props.scrollTop=0;if(this.props.scrollTop<scrollTopMin)this.props.scrollTop=scrollTopMin;if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}return this.props.scrollTop};Core.prototype._getScrollTop=function(){return this.props.scrollTop};Core.prototype._createConfigurator=function(){throw new Error(\"Cannot invoke abstract method _createConfigurator\")};module.exports=Core},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var DateUtil=__webpack_require__(36);var util=__webpack_require__(2);function TimeStep(start,end,minimumStep,hiddenDates,options){this.moment=moment;this.current=this.moment();this._start=this.moment();this._end=this.moment();this.autoScale=true;this.scale=\"day\";this.step=1;this.setRange(start,end,minimumStep);this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;if(Array.isArray(hiddenDates)){this.hiddenDates=hiddenDates}else if(hiddenDates!=undefined){this.hiddenDates=[hiddenDates]}else{this.hiddenDates=[]}this.format=TimeStep.FORMAT;this.options=options?options:{}}TimeStep.FORMAT={minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}};TimeStep.prototype.setMoment=function(moment){this.moment=moment;this.current=this.moment(this.current.valueOf());this._start=this.moment(this._start.valueOf());this._end=this.moment(this._end.valueOf())};TimeStep.prototype.setFormat=function(format){var defaultFormat=util.deepExtend({},TimeStep.FORMAT);this.format=util.deepExtend(defaultFormat,format)};TimeStep.prototype.setRange=function(start,end,minimumStep){if(!(start instanceof Date)||!(end instanceof Date)){throw\"No legal start or end date in method setRange\"}this._start=start!=undefined?this.moment(start.valueOf()):new Date;this._end=end!=undefined?this.moment(end.valueOf()):new Date;if(this.autoScale){this.setMinimumStep(minimumStep)}};TimeStep.prototype.start=function(){this.current=this._start.clone();this.roundToMinor()};TimeStep.prototype.roundToMinor=function(){if(this.scale==\"week\"){this.current.weekday(0)}switch(this.scale){case\"year\":this.current.year(this.step*Math.floor(this.current.year()/this.step));this.current.month(0);case\"month\":this.current.date(1);case\"week\":case\"day\":case\"weekday\":this.current.hours(0);case\"hour\":this.current.minutes(0);case\"minute\":this.current.seconds(0);case\"second\":this.current.milliseconds(0)}if(this.step!=1){switch(this.scale){case\"millisecond\":this.current.subtract(this.current.milliseconds()%this.step,\"milliseconds\");break;case\"second\":this.current.subtract(this.current.seconds()%this.step,\"seconds\");break;case\"minute\":this.current.subtract(this.current.minutes()%this.step,\"minutes\");break;case\"hour\":this.current.subtract(this.current.hours()%this.step,\"hours\");break;case\"weekday\":case\"day\":this.current.subtract((this.current.date()-1)%this.step,\"day\");break;case\"week\":this.current.subtract(this.current.week()%this.step,\"week\");break;case\"month\":this.current.subtract(this.current.month()%this.step,\"month\");break;case\"year\":this.current.subtract(this.current.year()%this.step,\"year\");break;default:break}}};TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()};TimeStep.prototype.next=function(){var prev=this.current.valueOf();switch(this.scale){case\"millisecond\":this.current.add(this.step,\"millisecond\");break;case\"second\":this.current.add(this.step,\"second\");break;case\"minute\":this.current.add(this.step,\"minute\");break;case\"hour\":this.current.add(this.step,\"hour\");if(this.current.month()<6){this.current.subtract(this.current.hours()%this.step,\"hour\")}else{if(this.current.hours()%this.step!==0){this.current.add(this.step-this.current.hours()%this.step,\"hour\")}}break;case\"weekday\":case\"day\":this.current.add(this.step,\"day\");break;case\"week\":if(this.current.weekday()!==0){this.current.weekday(0);this.current.add(this.step,\"week\")}else if(this.options.showMajorLabels===false){this.current.add(this.step,\"week\")}else{var nextWeek=this.current.clone();nextWeek.add(1,\"week\");if(nextWeek.isSame(this.current,\"month\")){this.current.add(this.step,\"week\")}else{this.current.add(this.step,\"week\");this.current.date(1)}}break;case\"month\":this.current.add(this.step,\"month\");break;case\"year\":this.current.add(this.step,\"year\");break;default:break}if(this.step!=1){switch(this.scale){case\"millisecond\":if(this.current.milliseconds()>0&&this.current.milliseconds()<this.step)this.current.milliseconds(0);break;case\"second\":if(this.current.seconds()>0&&this.current.seconds()<this.step)this.current.seconds(0);break;case\"minute\":if(this.current.minutes()>0&&this.current.minutes()<this.step)this.current.minutes(0);break;case\"hour\":if(this.current.hours()>0&&this.current.hours()<this.step)this.current.hours(0);break;case\"weekday\":case\"day\":if(this.current.date()<this.step+1)this.current.date(1);break;case\"week\":if(this.current.week()<this.step)this.current.week(1);break;case\"month\":if(this.current.month()<this.step)this.current.month(0);break;case\"year\":break;default:break}}if(this.current.valueOf()==prev){this.current=this._end.clone()}this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;DateUtil.stepOverHiddenDates(this.moment,this,prev)};TimeStep.prototype.getCurrent=function(){return this.current};TimeStep.prototype.setScale=function(params){if(params&&typeof params.scale==\"string\"){this.scale=params.scale;this.step=params.step>0?params.step:1;this.autoScale=false}};TimeStep.prototype.setAutoScale=function(enable){this.autoScale=enable};TimeStep.prototype.setMinimumStep=function(minimumStep){if(minimumStep==undefined){return}var stepYear=1e3*60*60*24*30*12;var stepMonth=1e3*60*60*24*30;var stepDay=1e3*60*60*24;var stepHour=1e3*60*60;var stepMinute=1e3*60;var stepSecond=1e3;var stepMillisecond=1;if(stepYear*1e3>minimumStep){this.scale=\"year\";this.step=1e3}if(stepYear*500>minimumStep){this.scale=\"year\";this.step=500}if(stepYear*100>minimumStep){this.scale=\"year\";this.step=100}if(stepYear*50>minimumStep){this.scale=\"year\";this.step=50}if(stepYear*10>minimumStep){this.scale=\"year\";this.step=10}if(stepYear*5>minimumStep){this.scale=\"year\";this.step=5}if(stepYear>minimumStep){this.scale=\"year\";this.step=1}if(stepMonth*3>minimumStep){this.scale=\"month\";this.step=3}if(stepMonth>minimumStep){this.scale=\"month\";this.step=1}if(stepDay*5>minimumStep){this.scale=\"day\";this.step=5}if(stepDay*2>minimumStep){this.scale=\"day\";this.step=2}if(stepDay>minimumStep){this.scale=\"day\";this.step=1}if(stepDay/2>minimumStep){this.scale=\"weekday\";this.step=1}if(stepHour*4>minimumStep){this.scale=\"hour\";this.step=4}if(stepHour>minimumStep){this.scale=\"hour\";this.step=1}if(stepMinute*15>minimumStep){this.scale=\"minute\";this.step=15}if(stepMinute*10>minimumStep){this.scale=\"minute\";this.step=10}if(stepMinute*5>minimumStep){this.scale=\"minute\";this.step=5}if(stepMinute>minimumStep){this.scale=\"minute\";this.step=1}if(stepSecond*15>minimumStep){this.scale=\"second\";this.step=15}if(stepSecond*10>minimumStep){this.scale=\"second\";this.step=10}if(stepSecond*5>minimumStep){this.scale=\"second\";this.step=5}if(stepSecond>minimumStep){this.scale=\"second\";this.step=1}if(stepMillisecond*200>minimumStep){this.scale=\"millisecond\";this.step=200}if(stepMillisecond*100>minimumStep){this.scale=\"millisecond\";this.step=100}if(stepMillisecond*50>minimumStep){this.scale=\"millisecond\";this.step=50}if(stepMillisecond*10>minimumStep){this.scale=\"millisecond\";this.step=10}if(stepMillisecond*5>minimumStep){this.scale=\"millisecond\";this.step=5}if(stepMillisecond>minimumStep){this.scale=\"millisecond\";this.step=1}};TimeStep.snap=function(date,scale,step){var clone=moment(date);if(scale==\"year\"){var year=clone.year()+Math.round(clone.month()/12);clone.year(Math.round(year/step)*step);clone.month(0);clone.date(0);clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"month\"){if(clone.date()>15){clone.date(1);clone.add(1,\"month\")}else{clone.date(1)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"week\"){if(clone.weekday()>2){clone.weekday(0);clone.add(1,\"week\")}else{clone.weekday(0)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"day\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/24)*24);break;default:clone.hours(Math.round(clone.hours()/12)*12);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"weekday\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/12)*12);break;default:clone.hours(Math.round(clone.hours()/6)*6);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"hour\"){switch(step){case 4:clone.minutes(Math.round(clone.minutes()/60)*60);break;default:clone.minutes(Math.round(clone.minutes()/30)*30);break}clone.seconds(0);clone.milliseconds(0)}else if(scale==\"minute\"){switch(step){case 15:case 10:clone.minutes(Math.round(clone.minutes()/5)*5);clone.seconds(0);break;case 5:clone.seconds(Math.round(clone.seconds()/60)*60);break;default:clone.seconds(Math.round(clone.seconds()/30)*30);break}clone.milliseconds(0)}else if(scale==\"second\"){switch(step){case 15:case 10:clone.seconds(Math.round(clone.seconds()/5)*5);clone.milliseconds(0);break;case 5:clone.milliseconds(Math.round(clone.milliseconds()/1e3)*1e3);break;default:clone.milliseconds(Math.round(clone.milliseconds()/500)*500);break}}else if(scale==\"millisecond\"){var _step=step>5?step/2:1;clone.milliseconds(Math.round(clone.milliseconds()/_step)*_step)}return clone};TimeStep.prototype.isMajor=function(){if(this.switchedYear==true){switch(this.scale){case\"year\":case\"month\":case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedMonth==true){switch(this.scale){case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedDay==true){switch(this.scale){case\"millisecond\":case\"second\":case\"minute\":case\"hour\":return true;default:return false}}var date=this.moment(this.current);switch(this.scale){case\"millisecond\":return date.milliseconds()==0;case\"second\":return date.seconds()==0;case\"minute\":return date.hours()==0&&date.minutes()==0;case\"hour\":return date.hours()==0;case\"weekday\":case\"day\":return date.date()==1;case\"week\":return date.date()==1;case\"month\":return date.month()==0;case\"year\":return false;default:return false}};TimeStep.prototype.getLabelMinor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.minorLabels===\"function\"){return this.format.minorLabels(date,this.scale,this.step)}var format=this.format.minorLabels[this.scale];switch(this.scale){case\"week\":if(this.isMajor()&&date.weekday()!==0){return\"\"}default:return format&&format.length>0?this.moment(date).format(format):\"\"}};TimeStep.prototype.getLabelMajor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.majorLabels===\"function\"){return this.format.majorLabels(date,this.scale,this.step)}var format=this.format.majorLabels[this.scale];return format&&format.length>0?this.moment(date).format(format):\"\"};TimeStep.prototype.getClassName=function(){var _moment=this.moment;var m=this.moment(this.current);var current=m.locale?m.locale(\"en\"):m.lang(\"en\");var step=this.step;var classNames=[];function even(value){return value/step%2==0?\" vis-even\":\" vis-odd\"}function today(date){if(date.isSame(new Date,\"day\")){return\" vis-today\"}if(date.isSame(_moment().add(1,\"day\"),\"day\")){return\" vis-tomorrow\"}if(date.isSame(_moment().add(-1,\"day\"),\"day\")){return\" vis-yesterday\"}return\"\"}function currentWeek(date){return date.isSame(new Date,\"week\")?\" vis-current-week\":\"\"}function currentMonth(date){return date.isSame(new Date,\"month\")?\" vis-current-month\":\"\"}function currentYear(date){return date.isSame(new Date,\"year\")?\" vis-current-year\":\"\"}switch(this.scale){case\"millisecond\":classNames.push(today(current));classNames.push(even(current.milliseconds()));break;case\"second\":classNames.push(today(current));classNames.push(even(current.seconds()));break;case\"minute\":classNames.push(today(current));classNames.push(even(current.minutes()));break;case\"hour\":classNames.push(\"vis-h\"+current.hours()+(this.step==4?\"-h\"+(current.hours()+4):\"\"));classNames.push(today(current));classNames.push(even(current.hours()));break;case\"weekday\":classNames.push(\"vis-\"+current.format(\"dddd\").toLowerCase());classNames.push(today(current));classNames.push(currentWeek(current));classNames.push(even(current.date()));break;case\"day\":classNames.push(\"vis-day\"+current.date());classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(today(current));classNames.push(currentMonth(current));classNames.push(this.step<=2?today(current):\"\");classNames.push(this.step<=2?\"vis-\"+current.format(\"dddd\").toLowerCase():\"\");classNames.push(even(current.date()-1));break;case\"week\":classNames.push(\"vis-week\"+current.format(\"w\"));classNames.push(currentWeek(current));classNames.push(even(current.week()));break;case\"month\":classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(currentMonth(current));classNames.push(even(current.month()));break;case\"year\":classNames.push(\"vis-year\"+current.year());classNames.push(currentYear(current));classNames.push(even(current.year()));break}return classNames.filter(String).join(\" \")};module.exports=TimeStep},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CurrentTime(body,options){this.body=body;this.defaultOptions={rtl:false,showCurrentTime:true,moment:moment,locales:locales,locale:\"en\"};this.options=util.extend({},this.defaultOptions);this.offset=0;this._create();this.setOptions(options)}CurrentTime.prototype=new Component;CurrentTime.prototype._create=function(){var bar=document.createElement(\"div\");bar.className=\"vis-current-time\";bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar};CurrentTime.prototype.destroy=function(){this.options.showCurrentTime=false;this.redraw();this.body=null};CurrentTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"rtl\",\"showCurrentTime\",\"moment\",\"locale\",\"locales\"],this.options,options)}};CurrentTime.prototype.redraw=function(){if(this.options.showCurrentTime){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar);this.start()}var now=this.options.moment((new Date).valueOf()+this.offset);var x=this.body.util.toScreen(now);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=locale.current+\" \"+locale.time+\": \"+now.format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1);if(this.options.rtl){this.bar.style.right=x+\"px\"}else{this.bar.style.left=x+\"px\"}this.bar.title=title}else{if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}this.stop()}return false};CurrentTime.prototype.start=function(){var me=this;function update(){me.stop();var scale=me.body.range.conversion(me.body.domProps.center.width).scale;var interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.redraw();me.body.emitter.emit(\"currentTimeTick\");me.currentTimeTimer=setTimeout(update,interval)}update()};CurrentTime.prototype.stop=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);delete this.currentTimeTimer}};CurrentTime.prototype.setCurrentTime=function(time){var t=util.convert(time,\"Date\").valueOf();var now=(new Date).valueOf();this.offset=t-now;this.redraw()};CurrentTime.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)};module.exports=CurrentTime},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var stack=__webpack_require__(100);function Group(groupId,data,itemSet){this.groupId=groupId;this.subgroups={};this.subgroupStack={};this.subgroupStackAll=false;this.doInnerStack=false;this.subgroupIndex=0;this.subgroupOrderer=data&&data.subgroupOrder;this.itemSet=itemSet;this.isVisible=null;this.stackDirty=true;if(data&&data.nestedGroups){this.nestedGroups=data.nestedGroups;if(data.showNested==false){this.showNested=false}else{this.showNested=true}}if(data&&data.subgroupStack){if(typeof data.subgroupStack===\"boolean\"){this.doInnerStack=data.subgroupStack;this.subgroupStackAll=data.subgroupStack}else{for(var key in data.subgroupStack){this.subgroupStack[key]=data.subgroupStack[key];this.doInnerStack=this.doInnerStack||data.subgroupStack[key]}}}this.nestedInGroup=null;this.dom={};this.props={label:{width:0,height:0}};this.className=null;this.items={};this.visibleItems=[];this.itemsInRange=[];this.orderedItems={byStart:[],byEnd:[]};this.checkRangedItems=false;var me=this;this.itemSet.body.emitter.on(\"checkRangedItems\",function(){me.checkRangedItems=true});this._create();this.setData(data)}Group.prototype._create=function(){var label=document.createElement(\"div\");if(this.itemSet.options.groupEditable.order){label.className=\"vis-label draggable\"}else{label.className=\"vis-label\"}this.dom.label=label;var inner=document.createElement(\"div\");inner.className=\"vis-inner\";label.appendChild(inner);this.dom.inner=inner;var foreground=document.createElement(\"div\");foreground.className=\"vis-group\";foreground[\"timeline-group\"]=this;this.dom.foreground=foreground;this.dom.background=document.createElement(\"div\");this.dom.background.className=\"vis-group\";this.dom.axis=document.createElement(\"div\");this.dom.axis.className=\"vis-group\";this.dom.marker=document.createElement(\"div\");this.dom.marker.style.visibility=\"hidden\";this.dom.marker.style.position=\"absolute\";this.dom.marker.innerHTML=\"\";this.dom.background.appendChild(this.dom.marker)};Group.prototype.setData=function(data){var content;var templateFunction;if(this.itemSet.options&&this.itemSet.options.groupTemplate){templateFunction=this.itemSet.options.groupTemplate.bind(this);content=templateFunction(data,this.dom.inner)}else{content=data&&data.content}if(content instanceof Element){this.dom.inner.appendChild(content);while(this.dom.inner.firstChild){this.dom.inner.removeChild(this.dom.inner.firstChild)}this.dom.inner.appendChild(content)}else if(content instanceof Object){templateFunction(data,this.dom.inner)}else if(content!==undefined&&content!==null){this.dom.inner.innerHTML=content}else{this.dom.inner.innerHTML=this.groupId||\"\"}this.dom.label.title=data&&data.title||\"\";if(!this.dom.inner.firstChild){util.addClassName(this.dom.inner,\"vis-hidden\")}else{util.removeClassName(this.dom.inner,\"vis-hidden\")}if(data&&data.nestedGroups){if(!this.nestedGroups||this.nestedGroups!=data.nestedGroups){this.nestedGroups=data.nestedGroups}if(data.showNested!==undefined||this.showNested===undefined){if(data.showNested==false){this.showNested=false}else{this.showNested=true}}util.addClassName(this.dom.label,\"vis-nesting-group\");var collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";if(this.showNested){util.removeClassName(this.dom.label,collapsedDirClassName);util.addClassName(this.dom.label,\"expanded\")}else{util.removeClassName(this.dom.label,\"expanded\");util.addClassName(this.dom.label,collapsedDirClassName)}}else if(this.nestedGroups){this.nestedGroups=null;collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";util.removeClassName(this.dom.label,collapsedDirClassName);util.removeClassName(this.dom.label,\"expanded\");util.removeClassName(this.dom.label,\"vis-nesting-group\")}if(data&&data.nestedInGroup){util.addClassName(this.dom.label,\"vis-nested-group\");if(this.itemSet.options&&this.itemSet.options.rtl){this.dom.inner.style.paddingRight=\"30px\"}else{\nthis.dom.inner.style.paddingLeft=\"30px\"}}var className=data&&data.className||null;if(className!=this.className){if(this.className){util.removeClassName(this.dom.label,this.className);util.removeClassName(this.dom.foreground,this.className);util.removeClassName(this.dom.background,this.className);util.removeClassName(this.dom.axis,this.className)}util.addClassName(this.dom.label,className);util.addClassName(this.dom.foreground,className);util.addClassName(this.dom.background,className);util.addClassName(this.dom.axis,className);this.className=className}if(this.style){util.removeCssText(this.dom.label,this.style);this.style=null}if(data&&data.style){util.addCssText(this.dom.label,data.style);this.style=data.style}};Group.prototype.getLabelWidth=function(){return this.props.label.width};Group.prototype._didMarkerHeightChange=function(){var markerHeight=this.dom.marker.clientHeight;if(markerHeight!=this.lastMarkerHeight){this.lastMarkerHeight=markerHeight;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){item.dirty=true;if(item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}return true}};Group.prototype._calculateGroupSizeAndPosition=function(){var offsetTop=this.dom.foreground.offsetTop;var offsetLeft=this.dom.foreground.offsetLeft;var offsetWidth=this.dom.foreground.offsetWidth;this.top=offsetTop;this.right=offsetLeft;this.width=offsetWidth};Group.prototype._redrawItems=function(forceRestack,lastIsVisible,margin,range){var restack=forceRestack||this.stackDirty||this.isVisible&&!lastIsVisible;if(restack){var visibleSubgroups={};var subgroup=null;if(typeof this.itemSet.options.order===\"function\"){var me=this;var limitSize=false;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){if(!item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length;me.visibleItems.push(item)}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.items,function(item){item.repositionX(limitSize)});if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)})}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{var customOrderedItems=this.orderedItems.byStart.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)});stack.stack(customOrderedItems,margin,true)}this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range)}else{this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);if(this.itemSet.options.stack){if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{stack.stack(this.visibleItems,margin,true)}}else{stack.nostack(this.visibleItems,margin,this.subgroups,this.itemSet.options.stackSubgroups)}}this.stackDirty=false}};Group.prototype._didResize=function(resized,height){resized=util.updateProperty(this,\"height\",height)||resized;var labelWidth=this.dom.inner.clientWidth;var labelHeight=this.dom.inner.clientHeight;resized=util.updateProperty(this.props.label,\"width\",labelWidth)||resized;resized=util.updateProperty(this.props.label,\"height\",labelHeight)||resized;return resized};Group.prototype._applyGroupHeight=function(height){this.dom.background.style.height=height+\"px\";this.dom.foreground.style.height=height+\"px\";this.dom.label.style.height=height+\"px\"};Group.prototype._updateItemsVerticalPosition=function(margin){for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin);if(!this.isVisible&&this.groupId!=\"__background__\"){if(item.displayed)item.hide()}}};Group.prototype.redraw=function(range,margin,forceRestack,returnQueue){var resized=false;var lastIsVisible=this.isVisible;var height;var queue=[function(){forceRestack=this._didMarkerHeightChange.bind(this)}.bind(this),this._updateSubGroupHeights.bind(this,margin),this._calculateGroupSizeAndPosition.bind(this),function(){this.isVisible=this._isGroupVisible.bind(this)(range,margin)}.bind(this),function(){this._redrawItems.bind(this)(forceRestack,lastIsVisible,margin,range)}.bind(this),this._updateSubgroupsSizes.bind(this),function(){height=this._calculateHeight.bind(this)(margin)}.bind(this),this._calculateGroupSizeAndPosition.bind(this),function(){resized=this._didResize.bind(this)(resized,height)}.bind(this),function(){this._applyGroupHeight.bind(this)(height)}.bind(this),function(){this._updateItemsVerticalPosition.bind(this)(margin)}.bind(this),function(){if(!this.isVisible&&this.height){resized=false}return resized}];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};Group.prototype._updateSubGroupHeights=function(margin){if((0,_keys2[\"default\"])(this.subgroups).length>0){var me=this;this.resetSubgroups();util.forEach(this.visibleItems,function(item){if(item.data.subgroup!==undefined){me.subgroups[item.data.subgroup].height=Math.max(me.subgroups[item.data.subgroup].height,item.height+margin.item.vertical);me.subgroups[item.data.subgroup].visible=true}})}};Group.prototype._isGroupVisible=function(range,margin){return this.top<=range.body.domProps.centerContainer.height-range.body.domProps.scrollTop+margin.axis&&this.top+this.height+margin.axis>=-range.body.domProps.scrollTop};Group.prototype._calculateHeight=function(margin){var height;var itemsInRange=this.visibleItems;if(itemsInRange.length>0){var min=itemsInRange[0].top;var max=itemsInRange[0].top+itemsInRange[0].height;util.forEach(itemsInRange,function(item){min=Math.min(min,item.top);max=Math.max(max,item.top+item.height)});if(min>margin.axis){var offset=min-margin.axis;max-=offset;util.forEach(itemsInRange,function(item){item.top-=offset})}height=max+margin.item.vertical/2}else{height=0}height=Math.max(height,this.props.label.height);return height};Group.prototype.show=function(){if(!this.dom.label.parentNode){this.itemSet.dom.labelSet.appendChild(this.dom.label)}if(!this.dom.foreground.parentNode){this.itemSet.dom.foreground.appendChild(this.dom.foreground)}if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}if(!this.dom.axis.parentNode){this.itemSet.dom.axis.appendChild(this.dom.axis)}};Group.prototype.hide=function(){var label=this.dom.label;if(label.parentNode){label.parentNode.removeChild(label)}var foreground=this.dom.foreground;if(foreground.parentNode){foreground.parentNode.removeChild(foreground)}var background=this.dom.background;if(background.parentNode){background.parentNode.removeChild(background)}var axis=this.dom.axis;if(axis.parentNode){axis.parentNode.removeChild(axis)}};Group.prototype.add=function(item){this.items[item.id]=item;item.setParent(this);this.stackDirty=true;if(item.data.subgroup!==undefined){this._addToSubgroup(item);this.orderSubgroups()}if(this.visibleItems.indexOf(item)==-1){var range=this.itemSet.body.range;this._checkIfVisible(item,this.visibleItems,range)}};Group.prototype._addToSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined&&this.subgroups[subgroupId]===undefined){this.subgroups[subgroupId]={height:0,top:0,start:item.data.start,end:item.data.end||item.data.start,visible:false,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[subgroupId]||false};this.subgroupIndex++}if(new Date(item.data.start)<new Date(this.subgroups[subgroupId].start)){this.subgroups[subgroupId].start=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(this.subgroups[subgroupId].end)){this.subgroups[subgroupId].end=itemEnd}this.subgroups[subgroupId].items.push(item)};Group.prototype._updateSubgroupsSizes=function(){var me=this;if(me.subgroups){for(var subgroup in me.subgroups){var initialEnd=me.subgroups[subgroup].items[0].data.end||me.subgroups[subgroup].items[0].data.start;var newStart=me.subgroups[subgroup].items[0].data.start;var newEnd=initialEnd-1;me.subgroups[subgroup].items.forEach(function(item){if(new Date(item.data.start)<new Date(newStart)){newStart=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(newEnd)){newEnd=itemEnd}});me.subgroups[subgroup].start=newStart;me.subgroups[subgroup].end=new Date(newEnd-1)}}};Group.prototype.orderSubgroups=function(){if(this.subgroupOrderer!==undefined){var sortArray=[];var subgroup;if(typeof this.subgroupOrderer==\"string\"){for(subgroup in this.subgroups){sortArray.push({subgroup:subgroup,sortField:this.subgroups[subgroup].items[0].data[this.subgroupOrderer]})}sortArray.sort(function(a,b){return a.sortField-b.sortField})}else if(typeof this.subgroupOrderer==\"function\"){for(subgroup in this.subgroups){sortArray.push(this.subgroups[subgroup].items[0].data)}sortArray.sort(this.subgroupOrderer)}if(sortArray.length>0){for(var i=0;i<sortArray.length;i++){this.subgroups[sortArray[i].subgroup].index=i}}}};Group.prototype.resetSubgroups=function(){for(var subgroup in this.subgroups){if(this.subgroups.hasOwnProperty(subgroup)){this.subgroups[subgroup].visible=false;this.subgroups[subgroup].height=0}}};Group.prototype.remove=function(item){delete this.items[item.id];item.setParent(null);this.stackDirty=true;var index=this.visibleItems.indexOf(item);if(index!=-1)this.visibleItems.splice(index,1);if(item.data.subgroup!==undefined){this._removeFromSubgroup(item);this.orderSubgroups()}};Group.prototype._removeFromSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined){var subgroup=this.subgroups[subgroupId];if(subgroup){var itemIndex=subgroup.items.indexOf(item);if(itemIndex>=0){subgroup.items.splice(itemIndex,1);if(!subgroup.items.length){delete this.subgroups[subgroupId]}else{this._updateSubgroupsSizes()}}}}};Group.prototype.removeFromDataSet=function(item){this.itemSet.removeItem(item.id)};Group.prototype.order=function(){var array=util.toArray(this.items);var startArray=[];var endArray=[];for(var i=0;i<array.length;i++){if(array[i].data.end!==undefined){endArray.push(array[i])}startArray.push(array[i])}this.orderedItems={byStart:startArray,byEnd:endArray};stack.orderByStart(this.orderedItems.byStart);stack.orderByEnd(this.orderedItems.byEnd)};Group.prototype._updateItemsInRange=function(orderedItems,oldVisibleItems,range){var visibleItems=[];var visibleItemsLookup={};var interval=(range.end-range.start)/4;var lowerBound=range.start-interval;var upperBound=range.end+interval;var searchFunction=function searchFunction(value){if(value<lowerBound){return-1}else if(value<=upperBound){return 0}else{return 1}};if(oldVisibleItems.length>0){for(var i=0;i<oldVisibleItems.length;i++){this._checkIfVisibleWithReference(oldVisibleItems[i],visibleItems,visibleItemsLookup,range)}}var initialPosByStart=util.binarySearchCustom(orderedItems.byStart,searchFunction,\"data\",\"start\");this._traceVisible(initialPosByStart,orderedItems.byStart,visibleItems,visibleItemsLookup,function(item){return item.data.start<lowerBound||item.data.start>upperBound});if(this.checkRangedItems==true){this.checkRangedItems=false;for(i=0;i<orderedItems.byEnd.length;i++){this._checkIfVisibleWithReference(orderedItems.byEnd[i],visibleItems,visibleItemsLookup,range)}}else{var initialPosByEnd=util.binarySearchCustom(orderedItems.byEnd,searchFunction,\"data\",\"end\");this._traceVisible(initialPosByEnd,orderedItems.byEnd,visibleItems,visibleItemsLookup,function(item){return item.data.end<lowerBound||item.data.end>upperBound})}var redrawQueue={};var redrawQueueLength=0;for(i=0;i<visibleItems.length;i++){var item=visibleItems[i];if(!item.displayed){var returnQueue=true;redrawQueue[i]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[i].length}}var needRedraw=redrawQueueLength>0;if(needRedraw){for(var j=0;j<redrawQueueLength;j++){util.forEach(redrawQueue,function(fns){fns[j]()})}}for(i=0;i<visibleItems.length;i++){visibleItems[i].repositionX()}return visibleItems};Group.prototype._traceVisible=function(initialPos,items,visibleItems,visibleItemsLookup,breakCondition){if(initialPos!=-1){var i,item;for(i=initialPos;i>=0;i--){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}for(i=initialPos+1;i<items.length;i++){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}}};Group.prototype._checkIfVisible=function(item,visibleItems,range){if(item.isVisible(range)){if(!item.displayed)item.show();item.repositionX();visibleItems.push(item)}else{if(item.displayed)item.hide()}};Group.prototype._checkIfVisibleWithReference=function(item,visibleItems,visibleItemsLookup,range){if(item.isVisible(range)){if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}else{if(item.displayed)item.hide()}};Group.prototype.changeSubgroup=function(item,oldSubgroup,newSubgroup){this._removeFromSubgroup(item,oldSubgroup);this._addToSubgroup(item,newSubgroup);this.orderSubgroups()};module.exports=Group},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Group=__webpack_require__(68);function BackgroundGroup(groupId,data,itemSet){Group.call(this,groupId,data,itemSet);this.width=0;this.height=0;this.top=0;this.left=0}BackgroundGroup.prototype=(0,_create2[\"default\"])(Group.prototype);BackgroundGroup.prototype.redraw=function(range,margin,forceRestack){var resized=false;this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);this.width=this.dom.background.offsetWidth;this.dom.background.style.height=\"0\";for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin)}return resized};BackgroundGroup.prototype.show=function(){if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}};module.exports=BackgroundGroup},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function RangeItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}RangeItem.prototype=new Item(null,null,null);RangeItem.prototype.baseClassName=\"vis-item vis-range\";RangeItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};RangeItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.visibleFrame=document.createElement(\"div\");this.dom.visibleFrame.className=\"vis-item-visible-frame\";this.dom.box.appendChild(this.dom.visibleFrame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dom.box[\"timeline-item\"]=this;this.dirty=true}};RangeItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.box)}this.displayed=true};RangeItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=this.baseClassName+className;this.dom.content.style.maxWidth=\"none\"}};RangeItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.frame).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}};RangeItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=sizes.box.height;this.dom.content.style.maxWidth=\"\";this.dirty=false};RangeItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDeleteButton(this.dom.box);this._repaintDragCenter();this._repaintDragLeft();this._repaintDragRight()};RangeItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};RangeItem.prototype.show=function(){if(!this.displayed){this.redraw()}};RangeItem.prototype.hide=function(){if(this.displayed){var box=this.dom.box;if(box.parentNode){box.parentNode.removeChild(box)}this.displayed=false}};RangeItem.prototype.repositionX=function(limitSize){var parentWidth=this.parent.width;var start=this.conversion.toScreen(this.data.start);var end=this.conversion.toScreen(this.data.end);var align=this.data.align===undefined?this.options.align:this.data.align;var contentStartPosition;var contentWidth;if(this.data.limitSize!==false&&(limitSize===undefined||limitSize===true)){if(start<-parentWidth){start=-parentWidth}if(end>2*parentWidth){end=2*parentWidth}}var boxWidth=Math.max(end-start+.5,1);if(this.overflow){if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth+this.props.content.width;contentWidth=this.props.content.width}else{if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth;contentWidth=Math.min(end-start,this.props.content.width)}if(this.options.rtl){this.dom.box.style.right=this.right+\"px\"}else{this.dom.box.style.left=this.left+\"px\"}this.dom.box.style.width=boxWidth+\"px\";switch(align){case\"left\":if(this.options.rtl){this.dom.content.style.right=\"0\"}else{this.dom.content.style.left=\"0\"}break;case\"right\":if(this.options.rtl){this.dom.content.style.right=Math.max(boxWidth-contentWidth,0)+\"px\"}else{this.dom.content.style.left=Math.max(boxWidth-contentWidth,0)+\"px\"}break;case\"center\":if(this.options.rtl){this.dom.content.style.right=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}else{this.dom.content.style.left=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}break;default:if(this.overflow){if(end>0){contentStartPosition=Math.max(-start,0)}else{contentStartPosition=-contentWidth}}else{if(start<0){contentStartPosition=-start}else{contentStartPosition=0}}if(this.options.rtl){this.dom.content.style.right=contentStartPosition+\"px\"}else{this.dom.content.style.left=contentStartPosition+\"px\";this.dom.content.style.width=\"calc(100% - \"+contentStartPosition+\"px)\"}}};RangeItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;if(orientation==\"top\"){box.style.top=this.top+\"px\"}else{box.style.top=this.parent.height-this.top-this.height+\"px\"}};RangeItem.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var dragLeft=document.createElement(\"div\");dragLeft.className=\"vis-drag-left\";dragLeft.dragLeftItem=this;this.dom.box.appendChild(dragLeft);this.dom.dragLeft=dragLeft}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragLeft){if(this.dom.dragLeft.parentNode){this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft)}this.dom.dragLeft=null}};RangeItem.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var dragRight=document.createElement(\"div\");dragRight.className=\"vis-drag-right\";dragRight.dragRightItem=this;this.dom.box.appendChild(dragRight);this.dom.dragRight=dragRight}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragRight){if(this.dom.dragRight.parentNode){this.dom.dragRight.parentNode.removeChild(this.dom.dragRight)}this.dom.dragRight=null}};module.exports=RangeItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ColorPicker=__webpack_require__(179)[\"default\"];var Configurator=function(){function Configurator(parentModule,defaultContainer,configureOptions){var pixelRatio=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;(0,_classCallCheck3[\"default\"])(this,Configurator);this.parent=parentModule;this.changedOptions=[];this.container=defaultContainer;this.allowCreation=false;this.options={};this.initialized=false;this.popupCounter=0;this.defaultOptions={enabled:false,filter:true,container:undefined,showButton:true};util.extend(this.options,this.defaultOptions);this.configureOptions=configureOptions;this.moduleOptions={};this.domElements=[];this.popupDiv={};this.popupLimit=5;this.popupHistory={};this.colorPicker=new ColorPicker(pixelRatio);this.wrapper=undefined}(0,_createClass3[\"default\"])(Configurator,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.popupHistory={};this._removePopup();var enabled=true;if(typeof options===\"string\"){this.options.filter=options}else if(options instanceof Array){this.options.filter=options.join()}else if((typeof options===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(options))===\"object\"){if(options.container!==undefined){this.options.container=options.container}if(options.filter!==undefined){this.options.filter=options.filter}if(options.showButton!==undefined){this.options.showButton=options.showButton}if(options.enabled!==undefined){enabled=options.enabled}}else if(typeof options===\"boolean\"){this.options.filter=true;enabled=options}else if(typeof options===\"function\"){this.options.filter=options;enabled=true}if(this.options.filter===false){enabled=false}this.options.enabled=enabled}this._clean()}},{key:\"setModuleOptions\",value:function setModuleOptions(moduleOptions){this.moduleOptions=moduleOptions;if(this.options.enabled===true){this._clean();if(this.options.container!==undefined){this.container=this.options.container}this._create()}}},{key:\"_create\",value:function _create(){var _this=this;this._clean();this.changedOptions=[];var filter=this.options.filter;var counter=0;var show=false;for(var option in this.configureOptions){if(this.configureOptions.hasOwnProperty(option)){this.allowCreation=false;show=false;if(typeof filter===\"function\"){show=filter(option,[]);show=show||this._handleObject(this.configureOptions[option],[option],true)}else if(filter===true||filter.indexOf(option)!==-1){show=true}if(show!==false){this.allowCreation=true;if(counter>0){this._makeItem([])}this._makeHeader(option);this._handleObject(this.configureOptions[option],[option])}counter++}}if(this.options.showButton===true){var generateButton=document.createElement(\"div\");generateButton.className=\"vis-configuration vis-config-button\";generateButton.innerHTML=\"generate options\";generateButton.onclick=function(){_this._printOptions()};generateButton.onmouseover=function(){generateButton.className=\"vis-configuration vis-config-button hover\"};generateButton.onmouseout=function(){generateButton.className=\"vis-configuration vis-config-button\"};this.optionsContainer=document.createElement(\"div\");this.optionsContainer.className=\"vis-configuration vis-config-option-container\";this.domElements.push(this.optionsContainer);this.domElements.push(generateButton)}this._push()}},{key:\"_push\",value:function _push(){this.wrapper=document.createElement(\"div\");this.wrapper.className=\"vis-configuration-wrapper\";this.container.appendChild(this.wrapper);for(var i=0;i<this.domElements.length;i++){this.wrapper.appendChild(this.domElements[i])}this._showPopupIfNeeded()}},{key:\"_clean\",value:function _clean(){for(var i=0;i<this.domElements.length;i++){this.wrapper.removeChild(this.domElements[i])}if(this.wrapper!==undefined){this.container.removeChild(this.wrapper);this.wrapper=undefined}this.domElements=[];this._removePopup()}},{key:\"_getValue\",value:function _getValue(path){var base=this.moduleOptions;for(var i=0;i<path.length;i++){if(base[path[i]]!==undefined){base=base[path[i]]}else{base=undefined;break}}return base}},{key:\"_makeItem\",value:function _makeItem(path){if(this.allowCreation===true){var item=document.createElement(\"div\");item.className=\"vis-configuration vis-config-item vis-config-s\"+path.length;for(var _len=arguments.length,domElements=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){domElements[_key-1]=arguments[_key]}domElements.forEach(function(element){item.appendChild(element)});this.domElements.push(item);return this.domElements.length}return 0}},{key:\"_makeHeader\",value:function _makeHeader(name){var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-header\";div.innerHTML=name;this._makeItem([],div)}},{key:\"_makeLabel\",value:function _makeLabel(name,path){var objectLabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-label vis-config-s\"+path.length;if(objectLabel===true){div.innerHTML=\"<i><b>\"+name+\":</b></i>\"}else{div.innerHTML=name+\":\"}return div}},{key:\"_makeDropdown\",value:function _makeDropdown(arr,value,path){var select=document.createElement(\"select\");select.className=\"vis-configuration vis-config-select\";var selectedValue=0;if(value!==undefined){if(arr.indexOf(value)!==-1){selectedValue=arr.indexOf(value)}}for(var i=0;i<arr.length;i++){var option=document.createElement(\"option\");option.value=arr[i];if(i===selectedValue){option.selected=\"selected\"}option.innerHTML=arr[i];select.appendChild(option)}var me=this;select.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,select)}},{key:\"_makeRange\",value:function _makeRange(arr,value,path){var defaultValue=arr[0];var min=arr[1];var max=arr[2];var step=arr[3];var range=document.createElement(\"input\");range.className=\"vis-configuration vis-config-range\";try{range.type=\"range\";range.min=min;range.max=max}catch(err){}range.step=step;var popupString=\"\";var popupValue=0;if(value!==undefined){var factor=1.2;if(value<0&&value*factor<min){range.min=Math.ceil(value*factor);popupValue=range.min;popupString=\"range increased\"}else if(value/factor<min){range.min=Math.ceil(value/factor);popupValue=range.min;popupString=\"range increased\"}if(value*factor>max&&max!==1){range.max=Math.ceil(value*factor);popupValue=range.max;popupString=\"range increased\"}range.value=value}else{range.value=defaultValue}var input=document.createElement(\"input\");input.className=\"vis-configuration vis-config-rangeinput\";input.value=range.value;var me=this;range.onchange=function(){input.value=this.value;me._update(Number(this.value),path)};range.oninput=function(){input.value=this.value};var label=this._makeLabel(path[path.length-1],path);var itemIndex=this._makeItem(path,label,range,input);if(popupString!==\"\"&&this.popupHistory[itemIndex]!==popupValue){this.popupHistory[itemIndex]=popupValue;this._setupPopup(popupString,itemIndex)}}},{key:\"_setupPopup\",value:function _setupPopup(string,index){var _this2=this;if(this.initialized===true&&this.allowCreation===true&&this.popupCounter<this.popupLimit){var div=document.createElement(\"div\");div.id=\"vis-configuration-popup\";div.className=\"vis-configuration-popup\";div.innerHTML=string;div.onclick=function(){_this2._removePopup()};this.popupCounter+=1;this.popupDiv={html:div,index:index}}}},{key:\"_removePopup\",value:function _removePopup(){if(this.popupDiv.html!==undefined){this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);clearTimeout(this.popupDiv.hideTimeout);clearTimeout(this.popupDiv.deleteTimeout);this.popupDiv={}}}},{key:\"_showPopupIfNeeded\",value:function _showPopupIfNeeded(){var _this3=this;if(this.popupDiv.html!==undefined){var correspondingElement=this.domElements[this.popupDiv.index];var rect=correspondingElement.getBoundingClientRect();this.popupDiv.html.style.left=rect.left+\"px\";this.popupDiv.html.style.top=rect.top-30+\"px\";document.body.appendChild(this.popupDiv.html);this.popupDiv.hideTimeout=setTimeout(function(){_this3.popupDiv.html.style.opacity=0},1500);this.popupDiv.deleteTimeout=setTimeout(function(){_this3._removePopup()},1800)}}},{key:\"_makeCheckbox\",value:function _makeCheckbox(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"checkbox\";checkbox.className=\"vis-configuration vis-config-checkbox\";checkbox.checked=defaultValue;if(value!==undefined){checkbox.checked=value;if(value!==defaultValue){if((typeof defaultValue===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(defaultValue))===\"object\"){if(value!==defaultValue.enabled){this.changedOptions.push({path:path,value:value})}}else{this.changedOptions.push({path:path,value:value})}}}var me=this;checkbox.onchange=function(){me._update(this.checked,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeTextInput\",value:function _makeTextInput(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"text\";checkbox.className=\"vis-configuration vis-config-text\";checkbox.value=value;if(value!==defaultValue){this.changedOptions.push({path:path,value:value})}var me=this;checkbox.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeColorField\",value:function _makeColorField(arr,value,path){var _this4=this;var defaultColor=arr[1];var div=document.createElement(\"div\");value=value===undefined?defaultColor:value;if(value!==\"none\"){div.className=\"vis-configuration vis-config-colorBlock\";div.style.backgroundColor=value}else{div.className=\"vis-configuration vis-config-colorBlock none\"}value=value===undefined?defaultColor:value;div.onclick=function(){_this4._showColorPicker(value,div,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,div)}},{key:\"_showColorPicker\",value:function _showColorPicker(value,div,path){var _this5=this;div.onclick=function(){};this.colorPicker.insertTo(div);this.colorPicker.show();this.colorPicker.setColor(value);this.colorPicker.setUpdateCallback(function(color){\nvar colorString=\"rgba(\"+color.r+\",\"+color.g+\",\"+color.b+\",\"+color.a+\")\";div.style.backgroundColor=colorString;_this5._update(colorString,path)});this.colorPicker.setCloseCallback(function(){div.onclick=function(){_this5._showColorPicker(value,div,path)}})}},{key:\"_handleObject\",value:function _handleObject(obj){var path=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var checkOnly=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var show=false;var filter=this.options.filter;var visibleInSet=false;for(var subObj in obj){if(obj.hasOwnProperty(subObj)){show=true;var item=obj[subObj];var newPath=util.copyAndExtendArray(path,subObj);if(typeof filter===\"function\"){show=filter(subObj,path);if(show===false){if(!(item instanceof Array)&&typeof item!==\"string\"&&typeof item!==\"boolean\"&&item instanceof Object){this.allowCreation=false;show=this._handleObject(item,newPath,true);this.allowCreation=checkOnly===false}}}if(show!==false){visibleInSet=true;var value=this._getValue(newPath);if(item instanceof Array){this._handleArray(item,value,newPath)}else if(typeof item===\"string\"){this._makeTextInput(item,value,newPath)}else if(typeof item===\"boolean\"){this._makeCheckbox(item,value,newPath)}else if(item instanceof Object){var draw=true;if(path.indexOf(\"physics\")!==-1){if(this.moduleOptions.physics.solver!==subObj){draw=false}}if(draw===true){if(item.enabled!==undefined){var enabledPath=util.copyAndExtendArray(newPath,\"enabled\");var enabledValue=this._getValue(enabledPath);if(enabledValue===true){var label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}else{this._makeCheckbox(item,enabledValue,newPath)}}else{var _label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,_label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}}}else{console.error(\"dont know how to handle\",item,subObj,newPath)}}}}return visibleInSet}},{key:\"_handleArray\",value:function _handleArray(arr,value,path){if(typeof arr[0]===\"string\"&&arr[0]===\"color\"){this._makeColorField(arr,value,path);if(arr[1]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"string\"){this._makeDropdown(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"number\"){this._makeRange(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:Number(value)})}}}},{key:\"_update\",value:function _update(value,path){var options=this._constructOptions(value,path);if(this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit){this.parent.body.emitter.emit(\"configChange\",options)}this.initialized=true;this.parent.setOptions(options)}},{key:\"_constructOptions\",value:function _constructOptions(value,path){var optionsObj=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var pointer=optionsObj;value=value===\"true\"?true:value;value=value===\"false\"?false:value;for(var i=0;i<path.length;i++){if(path[i]!==\"global\"){if(pointer[path[i]]===undefined){pointer[path[i]]={}}if(i!==path.length-1){pointer=pointer[path[i]]}else{pointer[path[i]]=value}}}return optionsObj}},{key:\"_printOptions\",value:function _printOptions(){var options=this.getOptions();this.optionsContainer.innerHTML=\"<pre>var options = \"+(0,_stringify2[\"default\"])(options,null,2)+\"</pre>\"}},{key:\"getOptions\",value:function getOptions(){var options={};for(var i=0;i<this.changedOptions.length;i++){this._constructOptions(this.changedOptions[i].value,this.changedOptions[i].path,options)}return options}}]);return Configurator}();exports[\"default\"]=Configurator},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DOMutil=__webpack_require__(14);function Points(groupId,options){}Points.draw=function(dataset,group,framework,offset){offset=offset||0;var callback=getCallback(framework,group);for(var i=0;i<dataset.length;i++){if(!callback){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group),framework.svgElements,framework.svg,dataset[i].label)}else{var callbackResult=callback(dataset[i],group);if(callbackResult===true||(typeof callbackResult===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(callbackResult))===\"object\"){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group,callbackResult),framework.svgElements,framework.svg,dataset[i].label)}}}};Points.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");DOMutil.drawPoint(x+.5*iconWidth,y,getGroupTemplate(group),framework.svgElements,framework.svg)};function getGroupTemplate(group,callbackResult){callbackResult=typeof callbackResult===\"undefined\"?{}:callbackResult;return{style:callbackResult.style||group.options.drawPoints.style,styles:callbackResult.styles||group.options.drawPoints.styles,size:callbackResult.size||group.options.drawPoints.size,className:callbackResult.className||group.className}}function getCallback(framework,group){var callback=undefined;if(framework.options&&framework.options.drawPoints&&framework.options.drawPoints.onRender&&typeof framework.options.drawPoints.onRender==\"function\"){callback=framework.options.drawPoints.onRender}if(group.group.options&&group.group.options.drawPoints&&group.group.options.drawPoints.onRender&&typeof group.group.options.drawPoints.onRender==\"function\"){callback=group.group.options.drawPoints.onRender}return callback}module.exports=Points},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircleImageBase=function(_NodeBase){(0,_inherits3[\"default\"])(CircleImageBase,_NodeBase);function CircleImageBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CircleImageBase);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircleImageBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CircleImageBase)).call(this,options,body,labelModule));_this.labelOffset=0;_this.selected=false;return _this}(0,_createClass3[\"default\"])(CircleImageBase,[{key:\"setOptions\",value:function setOptions(options,imageObj,imageObjAlt){this.options=options;if(!(imageObj===undefined&&imageObjAlt===undefined)){this.setImages(imageObj,imageObjAlt)}}},{key:\"setImages\",value:function setImages(imageObj,imageObjAlt){if(imageObjAlt&&this.selected){this.imageObj=imageObjAlt;this.imageObjAlt=imageObj}else{this.imageObj=imageObj;this.imageObjAlt=imageObjAlt}}},{key:\"switchImages\",value:function switchImages(selected){var selection_changed=selected&&!this.selected||!selected&&this.selected;this.selected=selected;if(this.imageObjAlt!==undefined&&selection_changed){var imageTmp=this.imageObj;this.imageObj=this.imageObjAlt;this.imageObjAlt=imageTmp}}},{key:\"_resizeImage\",value:function _resizeImage(){var width,height;if(this.options.shapeProperties.useImageSize===false){var ratio_width=1;var ratio_height=1;if(this.imageObj.width&&this.imageObj.height){if(this.imageObj.width>this.imageObj.height){ratio_width=this.imageObj.width/this.imageObj.height}else{ratio_height=this.imageObj.height/this.imageObj.width}}width=this.options.size*2*ratio_width;height=this.options.size*2*ratio_height}else{width=this.imageObj.width;height=this.imageObj.height}this.width=width;this.height=height;this.radius=.5*this.width}},{key:\"_drawRawCircle\",value:function _drawRawCircle(ctx,x,y,values){this.initContextForDraw(ctx,values);ctx.circle(x,y,values.size);this.performFill(ctx,values)}},{key:\"_drawImageAtPosition\",value:function _drawImageAtPosition(ctx,values){if(this.imageObj.width!=0){ctx.globalAlpha=1;this.enableShadow(ctx,values);var factor=1;if(this.options.shapeProperties.interpolation===true){factor=this.imageObj.width/this.width/this.body.view.scale}this.imageObj.drawImageAtPosition(ctx,factor,this.left,this.top,this.width,this.height);this.disableShadow(ctx,values)}}},{key:\"_drawImageLabel\",value:function _drawImageLabel(ctx,x,y,selected,hover){var yLabel;var offset=0;if(this.height!==undefined){offset=this.height*.5;var labelDimensions=this.labelModule.getTextSize(ctx,selected,hover);if(labelDimensions.lineCount>=1){offset+=labelDimensions.height/2}}yLabel=y+offset;if(this.options.label){this.labelOffset=offset}this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}}]);return CircleImageBase}(_NodeBase3[\"default\"]);exports[\"default\"]=CircleImageBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var CubicBezierEdge=__webpack_require__(215)[\"default\"];var BezierEdgeDynamic=__webpack_require__(217)[\"default\"];var BezierEdgeStatic=__webpack_require__(218)[\"default\"];var StraightEdge=__webpack_require__(219)[\"default\"];var Edge=function(){function Edge(options,body,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Edge);if(body===undefined){throw new Error(\"No body provided\")}this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.id=undefined;this.fromId=undefined;this.toId=undefined;this.selected=false;this.hover=false;this.labelDirty=true;this.baseWidth=this.options.width;this.baseFontSize=this.options.font.size;this.from=undefined;this.to=undefined;this.edgeType=undefined;this.connected=false;this.labelModule=new Label(this.body,this.options,true);this.setOptions(options)}(0,_createClass3[\"default\"])(Edge,[{key:\"setOptions\",value:function setOptions(options){if(!options){return}Edge.parseOptions(this.options,options,true,this.globalOptions);if(options.id!==undefined){this.id=options.id}if(options.from!==undefined){this.fromId=options.from}if(options.to!==undefined){this.toId=options.to}if(options.title!==undefined){this.title=options.title}if(options.value!==undefined){options.value=parseFloat(options.value)}var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"edge\",pile);this.updateLabelModule(options);var dataChanged=this.updateEdgeType();this._setInteractionWidths();this.connect();if(options.hidden!==undefined||options.physics!==undefined){dataChanged=true}return dataChanged}},{key:\"getFormattingValues\",value:function getFormattingValues(){var toArrow=this.options.arrows.to===true||this.options.arrows.to.enabled===true;var fromArrow=this.options.arrows.from===true||this.options.arrows.from.enabled===true;var middleArrow=this.options.arrows.middle===true||this.options.arrows.middle.enabled===true;var inheritsColor=this.options.color.inherit;var values={toArrow:toArrow,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:middleArrow,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:fromArrow,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:inheritsColor?undefined:this.options.color.color,inheritsColor:inheritsColor,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){var selectedWidth=this.options.selectionWidth;if(typeof selectedWidth===\"function\"){values.width=selectedWidth(values.width)}else if(typeof selectedWidth===\"number\"){values.width+=selectedWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.highlight;values.shadow=this.options.shadow.enabled}else if(this.hover){var hoverWidth=this.options.hoverWidth;if(typeof hoverWidth===\"function\"){values.width=hoverWidth(values.width)}else if(typeof hoverWidth===\"number\"){values.width+=hoverWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.hover;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.color!==undefined){values.inheritsColor=false}if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled;values.width=Math.max(values.width,.3/this.body.view.scale)}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){var pile=[options,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateEdgeType\",value:function updateEdgeType(){var smooth=this.options.smooth;var dataChanged=false;var changeInType=true;if(this.edgeType!==undefined){if(this.edgeType instanceof BezierEdgeDynamic&&smooth.enabled===true&&smooth.type===\"dynamic\"||this.edgeType instanceof CubicBezierEdge&&smooth.enabled===true&&smooth.type===\"cubicBezier\"||this.edgeType instanceof BezierEdgeStatic&&smooth.enabled===true&&smooth.type!==\"dynamic\"&&smooth.type!==\"cubicBezier\"||this.edgeType instanceof StraightEdge&&smooth.type.enabled===false){changeInType=false}if(changeInType===true){dataChanged=this.cleanup()}}if(changeInType===true){if(smooth.enabled===true){if(smooth.type===\"dynamic\"){dataChanged=true;this.edgeType=new BezierEdgeDynamic(this.options,this.body,this.labelModule)}else if(smooth.type===\"cubicBezier\"){this.edgeType=new CubicBezierEdge(this.options,this.body,this.labelModule)}else{this.edgeType=new BezierEdgeStatic(this.options,this.body,this.labelModule)}}else{this.edgeType=new StraightEdge(this.options,this.body,this.labelModule)}}else{this.edgeType.setOptions(this.options)}return dataChanged}},{key:\"connect\",value:function connect(){this.disconnect();this.from=this.body.nodes[this.fromId]||undefined;this.to=this.body.nodes[this.toId]||undefined;this.connected=this.from!==undefined&&this.to!==undefined;if(this.connected===true){this.from.attachEdge(this);this.to.attachEdge(this)}else{if(this.from){this.from.detachEdge(this)}if(this.to){this.to.detachEdge(this)}}this.edgeType.connect()}},{key:\"disconnect\",value:function disconnect(){if(this.from){this.from.detachEdge(this);this.from=undefined}if(this.to){this.to.detachEdge(this);this.to=undefined}this.connected=false}},{key:\"getTitle\",value:function getTitle(){return this.title}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var widthDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.width=this.options.scaling.min+scale*widthDiff}else{this.options.width=this.baseWidth;this.options.font.size=this.baseFontSize}this._setInteractionWidths();this.updateLabelModule()}},{key:\"_setInteractionWidths\",value:function _setInteractionWidths(){if(typeof this.options.hoverWidth===\"function\"){this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width)}else{this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width}if(typeof this.options.selectionWidth===\"function\"){this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width)}else{this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();if(values.hidden){return}var viaNode=this.edgeType.getViaNode();var arrowData={};this.edgeType.fromPoint=this.edgeType.from;this.edgeType.toPoint=this.edgeType.to;if(values.fromArrow){arrowData.from=this.edgeType.getArrowData(ctx,\"from\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.fromPoint=arrowData.from.core}if(values.toArrow){arrowData.to=this.edgeType.getArrowData(ctx,\"to\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.toPoint=arrowData.to.core}if(values.middleArrow){arrowData.middle=this.edgeType.getArrowData(ctx,\"middle\",viaNode,this.selected,this.hover,values)}this.edgeType.drawLine(ctx,values,this.selected,this.hover,viaNode);this.drawArrows(ctx,arrowData,values);this.drawLabel(ctx,viaNode)}},{key:\"drawArrows\",value:function drawArrows(ctx,arrowData,values){if(values.fromArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.from)}if(values.middleArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.middle)}if(values.toArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.to)}}},{key:\"drawLabel\",value:function drawLabel(ctx,viaNode){if(this.options.label!==undefined){var node1=this.from;var node2=this.to;if(this.labelModule.differentState(this.selected,this.hover)){this.labelModule.getTextSize(ctx,this.selected,this.hover)}if(node1.id!=node2.id){this.labelModule.pointToSelf=false;var point=this.edgeType.getPoint(.5,viaNode);ctx.save();var rotationPoint=this._getRotation(ctx);if(rotationPoint.angle!=0){ctx.translate(rotationPoint.x,rotationPoint.y);ctx.rotate(rotationPoint.angle)}this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover);ctx.restore()}else{this.labelModule.pointToSelf=true;var x,y;var radius=this.options.selfReferenceSize;if(node1.shape.width>node1.shape.height){x=node1.x+node1.shape.width*.5;y=node1.y-radius}else{x=node1.x+radius;y=node1.y-node1.shape.height*.5}point=this._pointOnCircle(x,y,radius,.125);this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover)}}}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){var rotationPoint=this._getRotation();if(ComponentUtil.pointInRect(this.labelModule.getSize(),point,rotationPoint)){ret.push({edgeId:this.id,labelId:0})}}var obj={left:point.x,top:point.y};if(this.isOverlappingWith(obj)){ret.push({edgeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){if(this.connected){var distMax=10;var xFrom=this.from.x;var yFrom=this.from.y;var xTo=this.to.x;var yTo=this.to.y;var xObj=obj.left;var yObj=obj.top;var dist=this.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,xObj,yObj);return dist<distMax}else{return false}}},{key:\"_getRotation\",value:function _getRotation(ctx){var viaNode=this.edgeType.getViaNode();var point=this.edgeType.getPoint(.5,viaNode);if(ctx!==undefined){this.labelModule.calculateLabelSize(ctx,this.selected,this.hover,point.x,point.y)}var ret={x:point.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()){return ret}if(this.options.font.align===\"horizontal\"){return ret}var dy=this.from.y-this.to.y;var dx=this.from.x-this.to.x;var angle=Math.atan2(dy,dx);if(angle<-1&&dx<0||angle>0&&dx<0){angle+=Math.PI}ret.angle=angle;return ret}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"select\",value:function select(){this.selected=true}},{key:\"unselect\",value:function unselect(){this.selected=false}},{key:\"cleanup\",value:function cleanup(){return this.edgeType.cleanup()}},{key:\"remove\",value:function remove(){this.cleanup();this.disconnect();delete this.body.edges[this.id]}},{key:\"endPointsValid\",value:function endPointsValid(){return this.body.nodes[this.fromId]!==undefined&&this.body.nodes[this.toId]!==undefined}}],[{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var copyFromGlobals=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var fields=[\"arrowStrikethrough\",\"id\",\"from\",\"hidden\",\"hoverWidth\",\"labelHighlightBold\",\"length\",\"line\",\"opacity\",\"physics\",\"scaling\",\"selectionWidth\",\"selfReferenceSize\",\"to\",\"title\",\"value\",\"width\",\"font\",\"chosen\",\"widthConstraint\"];util.selectiveDeepExtend(fields,parentOptions,newOptions,allowDeletion);if(ComponentUtil.isValidLabel(newOptions.label)){parentOptions.label=newOptions.label}else{parentOptions.label=undefined}util.mergeOptions(parentOptions,newOptions,\"smooth\",globalOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.dashes!==undefined&&newOptions.dashes!==null){parentOptions.dashes=newOptions.dashes}else if(allowDeletion===true&&newOptions.dashes===null){parentOptions.dashes=(0,_create2[\"default\"])(globalOptions.dashes)}if(newOptions.scaling!==undefined&&newOptions.scaling!==null){if(newOptions.scaling.min!==undefined){parentOptions.scaling.min=newOptions.scaling.min}if(newOptions.scaling.max!==undefined){parentOptions.scaling.max=newOptions.scaling.max}util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}else if(allowDeletion===true&&newOptions.scaling===null){parentOptions.scaling=(0,_create2[\"default\"])(globalOptions.scaling)}if(newOptions.arrows!==undefined&&newOptions.arrows!==null){if(typeof newOptions.arrows===\"string\"){var arrows=newOptions.arrows.toLowerCase();parentOptions.arrows.to.enabled=arrows.indexOf(\"to\")!=-1;parentOptions.arrows.middle.enabled=arrows.indexOf(\"middle\")!=-1;parentOptions.arrows.from.enabled=arrows.indexOf(\"from\")!=-1}else if((0,_typeof3[\"default\"])(newOptions.arrows)===\"object\"){util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"to\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"middle\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"from\",globalOptions.arrows)}else{throw new Error(\"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\"+(0,_stringify2[\"default\"])(newOptions.arrows))}}else if(allowDeletion===true&&newOptions.arrows===null){parentOptions.arrows=(0,_create2[\"default\"])(globalOptions.arrows)}if(newOptions.color!==undefined&&newOptions.color!==null){var fromColor=newOptions.color;var toColor=parentOptions.color;if(copyFromGlobals){util.deepExtend(toColor,globalOptions.color,false,allowDeletion)}else{for(var i in toColor){if(toColor.hasOwnProperty(i)){delete toColor[i]}}}if(util.isString(toColor)){toColor.color=toColor;toColor.highlight=toColor;toColor.hover=toColor;toColor.inherit=false;if(fromColor.opacity===undefined){toColor.opacity=1}}else{var colorsDefined=false;if(fromColor.color!==undefined){toColor.color=fromColor.color;colorsDefined=true}if(fromColor.highlight!==undefined){toColor.highlight=fromColor.highlight;colorsDefined=true}if(fromColor.hover!==undefined){toColor.hover=fromColor.hover;colorsDefined=true}if(fromColor.inherit!==undefined){toColor.inherit=fromColor.inherit}if(fromColor.opacity!==undefined){toColor.opacity=Math.min(1,Math.max(0,fromColor.opacity))}if(colorsDefined===true){toColor.inherit=false}else{if(toColor.inherit===undefined){toColor.inherit=\"from\"}}}}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}}}]);return Edge}();exports[\"default\"]=Edge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeBase=function(_EdgeBase){(0,_inherits3[\"default\"])(BezierEdgeBase,_EdgeBase);function BezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeBase,[{key:\"_findBorderPositionBezier\",value:function _findBorderPositionBezier(nearNode,ctx){var viaNode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this._getViaCoordinates();var maxIterations=10;var iteration=0;var low=0;var high=1;var pos,angle,distanceToBorder,distanceToPoint,difference;var threshold=.2;var node=this.to;var from=false;if(nearNode.id===this.from.id){node=this.from;from=true}while(low<=high&&iteration<maxIterations){var middle=(low+high)*.5;pos=this.getPoint(middle,viaNode);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference<0){if(from===false){low=middle}else{high=middle}}else{if(from===false){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;for(i=1;i<10;i++){t=.1*i;x=Math.pow(1-t,2)*x1+2*t*(1-t)*via.x+Math.pow(t,2)*x2;y=Math.pow(1-t,2)*y1+2*t*(1-t)*via.y+Math.pow(t,2)*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}},{key:\"_bezierCurve\",value:function _bezierCurve(ctx,values,viaNode1,viaNode2){var hasNode1=viaNode1!==undefined&&viaNode1.x!==undefined;var hasNode2=viaNode2!==undefined&&viaNode2.x!==undefined;ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);if(hasNode1&&hasNode2){ctx.bezierCurveTo(viaNode1.x,viaNode1.y,viaNode2.x,viaNode2.y,this.toPoint.x,this.toPoint.y)}else if(hasNode1){ctx.quadraticCurveTo(viaNode1.x,viaNode1.y,this.toPoint.x,this.toPoint.y)}else{ctx.lineTo(this.toPoint.x,this.toPoint.y)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}}]);return BezierEdgeBase}(_EdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=function(){function NetworkUtil(){(0,_classCallCheck3[\"default\"])(this,NetworkUtil)}(0,_createClass3[\"default\"])(NetworkUtil,null,[{key:\"getRange\",value:function getRange(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.shape.boundingBox.left){minX=node.shape.boundingBox.left}if(maxX<node.shape.boundingBox.right){maxX=node.shape.boundingBox.right}if(minY>node.shape.boundingBox.top){minY=node.shape.boundingBox.top}if(maxY<node.shape.boundingBox.bottom){maxY=node.shape.boundingBox.bottom}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"getRangeCore\",value:function getRangeCore(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.x){minX=node.x}if(maxX<node.x){maxX=node.x}if(minY>node.y){minY=node.y}if(maxY<node.y){maxY=node.y}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"findCenter\",value:function findCenter(range){return{x:.5*(range.maxX+range.minX),y:.5*(range.maxY+range.minY)}}},{key:\"cloneOptions\",value:function cloneOptions(item,type){var clonedOptions={};if(type===undefined||type===\"node\"){util.deepExtend(clonedOptions,item.options,true);clonedOptions.x=item.x;clonedOptions.y=item.y;clonedOptions.amountOfConnections=item.edges.length}else{util.deepExtend(clonedOptions,item.options,true)}return clonedOptions}}]);return NetworkUtil}();exports[\"default\"]=NetworkUtil},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(124),__esModule:true}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(it){return cof(it)==\"String\"?it.split(\"\"):Object(it)}},function(module,exports,__webpack_require__){\"use strict\";var LIBRARY=__webpack_require__(52);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var hide=__webpack_require__(26);var has=__webpack_require__(22);var Iterators=__webpack_require__(31);var $iterCreate=__webpack_require__(129);var setToStringTag=__webpack_require__(59);var getPrototypeOf=__webpack_require__(85);var ITERATOR=__webpack_require__(13)(\"iterator\");var BUGGY=!([].keys&&\"next\"in[].keys())\n;var FF_ITERATOR=\"@@iterator\";var KEYS=\"keys\";var VALUES=\"values\";var returnThis=function(){return this};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var getMethod=function(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case KEYS:return function keys(){return new Constructor(this,kind)};case VALUES:return function values(){return new Constructor(this,kind)}}return function entries(){return new Constructor(this,kind)}};var TAG=NAME+\" Iterator\";var DEF_VALUES=DEFAULT==VALUES;var VALUES_BUG=false;var proto=Base.prototype;var $native=proto[ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT];var $default=$native||getMethod(DEFAULT);var $entries=DEFAULT?!DEF_VALUES?$default:getMethod(\"entries\"):undefined;var $anyNative=NAME==\"Array\"?proto.entries||$native:$native;var methods,key,IteratorPrototype;if($anyNative){IteratorPrototype=getPrototypeOf($anyNative.call(new Base));if(IteratorPrototype!==Object.prototype&&IteratorPrototype.next){setToStringTag(IteratorPrototype,TAG,true);if(!LIBRARY&&!has(IteratorPrototype,ITERATOR))hide(IteratorPrototype,ITERATOR,returnThis)}}if(DEF_VALUES&&$native&&$native.name!==VALUES){VALUES_BUG=true;$default=function values(){return $native.call(this)}}if((!LIBRARY||FORCED)&&(BUGGY||VALUES_BUG||!proto[ITERATOR])){hide(proto,ITERATOR,$default)}Iterators[NAME]=$default;Iterators[TAG]=returnThis;if(DEFAULT){methods={values:DEF_VALUES?$default:getMethod(VALUES),keys:IS_SET?$default:getMethod(KEYS),entries:$entries};if(FORCED)for(key in methods){if(!(key in proto))redefine(proto,key,methods[key])}else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods)}return methods}},function(module,exports,__webpack_require__){var aFunction=__webpack_require__(128);module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(21)&&!__webpack_require__(28)(function(){return Object.defineProperty(__webpack_require__(82)(\"div\"),\"a\",{get:function(){return 7}}).a!=7})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var document=__webpack_require__(18).document;var is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{}}},function(module,exports,__webpack_require__){module.exports=__webpack_require__(26)},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toIObject=__webpack_require__(25);var arrayIndexOf=__webpack_require__(131)(false);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");module.exports=function(object,names){var O=toIObject(object);var i=0;var result=[];var key;for(key in O)if(key!=IE_PROTO)has(O,key)&&result.push(key);while(names.length>i)if(has(O,key=names[i++])){~arrayIndexOf(result,key)||result.push(key)}return result}},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toObject=__webpack_require__(41);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");var ObjectProto=Object.prototype;module.exports=Object.getPrototypeOf||function(O){O=toObject(O);if(has(O,IE_PROTO))return O[IE_PROTO];if(typeof O.constructor==\"function\"&&O instanceof O.constructor){return O.constructor.prototype}return O instanceof Object?ObjectProto:null}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);var TAG=__webpack_require__(13)(\"toStringTag\");var ARG=cof(function(){return arguments}())==\"Arguments\";var tryGet=function(it,key){try{return it[key]}catch(e){}};module.exports=function(it){var O,T,B;return it===undefined?\"Undefined\":it===null?\"Null\":typeof(T=tryGet(O=Object(it),TAG))==\"string\"?T:ARG?cof(O):(B=cof(O))==\"Object\"&&typeof O.callee==\"function\"?\"Arguments\":B}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);var core=__webpack_require__(7);var fails=__webpack_require__(28);module.exports=function(KEY,exec){var fn=(core.Object||{})[KEY]||Object[KEY];var exp={};exp[KEY]=exec(fn);$export($export.S+$export.F*fails(function(){fn(1)}),\"Object\",exp)}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var hiddenKeys=__webpack_require__(58).concat(\"length\",\"prototype\");exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return $keys(O,hiddenKeys)}},function(module,exports,__webpack_require__){var pIE=__webpack_require__(42);var createDesc=__webpack_require__(39);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var has=__webpack_require__(22);var IE8_DOM_DEFINE=__webpack_require__(81);var gOPD=Object.getOwnPropertyDescriptor;exports.f=__webpack_require__(21)?gOPD:function getOwnPropertyDescriptor(O,P){O=toIObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return gOPD(O,P)}catch(e){}if(has(O,P))return createDesc(!pIE.f.call(O,P),O[P])}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(162),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";function Point2d(x,y){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0}module.exports=Point2d},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Slider(container,options){if(container===undefined){throw new Error(\"No container element defined\")}this.container=container;this.visible=options&&options.visible!=undefined?options.visible:true;if(this.visible){this.frame=document.createElement(\"DIV\");this.frame.style.width=\"100%\";this.frame.style.position=\"relative\";this.container.appendChild(this.frame);this.frame.prev=document.createElement(\"INPUT\");this.frame.prev.type=\"BUTTON\";this.frame.prev.value=\"Prev\";this.frame.appendChild(this.frame.prev);this.frame.play=document.createElement(\"INPUT\");this.frame.play.type=\"BUTTON\";this.frame.play.value=\"Play\";this.frame.appendChild(this.frame.play);this.frame.next=document.createElement(\"INPUT\");this.frame.next.type=\"BUTTON\";this.frame.next.value=\"Next\";this.frame.appendChild(this.frame.next);this.frame.bar=document.createElement(\"INPUT\");this.frame.bar.type=\"BUTTON\";this.frame.bar.style.position=\"absolute\";this.frame.bar.style.border=\"1px solid red\";this.frame.bar.style.width=\"100px\";this.frame.bar.style.height=\"6px\";this.frame.bar.style.borderRadius=\"2px\";this.frame.bar.style.MozBorderRadius=\"2px\";this.frame.bar.style.border=\"1px solid #7F7F7F\";this.frame.bar.style.backgroundColor=\"#E5E5E5\";this.frame.appendChild(this.frame.bar);this.frame.slide=document.createElement(\"INPUT\");this.frame.slide.type=\"BUTTON\";this.frame.slide.style.margin=\"0px\";this.frame.slide.value=\" \";this.frame.slide.style.position=\"relative\";this.frame.slide.style.left=\"-100px\";this.frame.appendChild(this.frame.slide);var me=this;this.frame.slide.onmousedown=function(event){me._onMouseDown(event)};this.frame.prev.onclick=function(event){me.prev(event)};this.frame.play.onclick=function(event){me.togglePlay(event)};this.frame.next.onclick=function(event){me.next(event)}}this.onChangeCallback=undefined;this.values=[];this.index=undefined;this.playTimeout=undefined;this.playInterval=1e3;this.playLoop=true}Slider.prototype.prev=function(){var index=this.getIndex();if(index>0){index--;this.setIndex(index)}};Slider.prototype.next=function(){var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}};Slider.prototype.playNext=function(){var start=new Date;var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}else if(this.playLoop){index=0;this.setIndex(index)}var end=new Date;var diff=end-start;var interval=Math.max(this.playInterval-diff,0);var me=this;this.playTimeout=setTimeout(function(){me.playNext()},interval)};Slider.prototype.togglePlay=function(){if(this.playTimeout===undefined){this.play()}else{this.stop()}};Slider.prototype.play=function(){if(this.playTimeout)return;this.playNext();if(this.frame){this.frame.play.value=\"Stop\"}};Slider.prototype.stop=function(){clearInterval(this.playTimeout);this.playTimeout=undefined;if(this.frame){this.frame.play.value=\"Play\"}};Slider.prototype.setOnChangeCallback=function(callback){this.onChangeCallback=callback};Slider.prototype.setPlayInterval=function(interval){this.playInterval=interval};Slider.prototype.getPlayInterval=function(){return this.playInterval};Slider.prototype.setPlayLoop=function(doLoop){this.playLoop=doLoop};Slider.prototype.onChange=function(){if(this.onChangeCallback!==undefined){this.onChangeCallback()}};Slider.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+\"px\";this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+\"px\";var left=this.indexToLeft(this.index);this.frame.slide.style.left=left+\"px\"}};Slider.prototype.setValues=function(values){this.values=values;if(this.values.length>0)this.setIndex(0);else this.index=undefined};Slider.prototype.setIndex=function(index){if(index<this.values.length){this.index=index;this.redraw();this.onChange()}else{throw new Error(\"Index out of range\")}};Slider.prototype.getIndex=function(){return this.index};Slider.prototype.get=function(){return this.values[this.index]};Slider.prototype._onMouseDown=function(event){var leftButtonDown=event.which?event.which===1:event.button===1;if(!leftButtonDown)return;this.startClientX=event.clientX;this.startSlideX=parseFloat(this.frame.slide.style.left);this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",this.onmousemove);util.addEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Slider.prototype.leftToIndex=function(left){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=left-3;var index=Math.round(x/width*(this.values.length-1));if(index<0)index=0;if(index>this.values.length-1)index=this.values.length-1;return index};Slider.prototype.indexToLeft=function(index){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=index/(this.values.length-1)*width;var left=x+3;return left};Slider.prototype._onMouseMove=function(event){var diff=event.clientX-this.startClientX;var x=this.startSlideX+diff;var index=this.leftToIndex(x);this.setIndex(index);util.preventDefault()};Slider.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault()};module.exports=Slider},function(module,exports,__webpack_require__){\"use strict\";function StepNumber(start,end,step,prettyStep){this._start=0;this._end=0;this._step=1;this.prettyStep=true;this.precision=5;this._current=0;this.setRange(start,end,step,prettyStep)}StepNumber.prototype.isNumeric=function(n){return!isNaN(parseFloat(n))&&isFinite(n)};StepNumber.prototype.setRange=function(start,end,step,prettyStep){if(!this.isNumeric(start)){throw new Error(\"Parameter 'start' is not numeric; value: \"+start)}if(!this.isNumeric(end)){throw new Error(\"Parameter 'end' is not numeric; value: \"+start)}if(!this.isNumeric(step)){throw new Error(\"Parameter 'step' is not numeric; value: \"+start)}this._start=start?start:0;this._end=end?end:0;this.setStep(step,prettyStep)};StepNumber.prototype.setStep=function(step,prettyStep){if(step===undefined||step<=0)return;if(prettyStep!==undefined)this.prettyStep=prettyStep;if(this.prettyStep===true)this._step=StepNumber.calculatePrettyStep(step);else this._step=step};StepNumber.calculatePrettyStep=function(step){var log10=function log10(x){return Math.log(x)/Math.LN10};var step1=Math.pow(10,Math.round(log10(step))),step2=2*Math.pow(10,Math.round(log10(step/2))),step5=5*Math.pow(10,Math.round(log10(step/5)));var prettyStep=step1;if(Math.abs(step2-step)<=Math.abs(prettyStep-step))prettyStep=step2;if(Math.abs(step5-step)<=Math.abs(prettyStep-step))prettyStep=step5;if(prettyStep<=0){prettyStep=1}return prettyStep};StepNumber.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))};StepNumber.prototype.getStep=function(){return this._step};StepNumber.prototype.start=function(checkFirst){if(checkFirst===undefined){checkFirst=false}this._current=this._start-this._start%this._step;if(checkFirst){if(this.getCurrent()<this._start){this.next()}}};StepNumber.prototype.next=function(){this._current+=this._step};StepNumber.prototype.end=function(){return this._current>this._end};module.exports=StepNumber},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Camera=__webpack_require__(95);var Point3d=__webpack_require__(34);var STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9};var STYLENAME={dot:STYLE.DOT,\"dot-line\":STYLE.DOTLINE,\"dot-color\":STYLE.DOTCOLOR,\"dot-size\":STYLE.DOTSIZE,line:STYLE.LINE,grid:STYLE.GRID,surface:STYLE.SURFACE,bar:STYLE.BAR,\"bar-color\":STYLE.BARCOLOR,\"bar-size\":STYLE.BARSIZE};var OPTIONKEYS=[\"width\",\"height\",\"filterLabel\",\"legendLabel\",\"xLabel\",\"yLabel\",\"zLabel\",\"xValueLabel\",\"yValueLabel\",\"zValueLabel\",\"showXAxis\",\"showYAxis\",\"showZAxis\",\"showGrid\",\"showPerspective\",\"showShadow\",\"keepAspectRatio\",\"verticalRatio\",\"dotSizeRatio\",\"dotSizeMinFraction\",\"dotSizeMaxFraction\",\"showAnimationControls\",\"animationInterval\",\"animationPreload\",\"animationAutoStart\",\"axisColor\",\"gridColor\",\"xCenter\",\"yCenter\"];var PREFIXEDOPTIONKEYS=[\"xBarWidth\",\"yBarWidth\",\"valueMin\",\"valueMax\",\"xMin\",\"xMax\",\"xStep\",\"yMin\",\"yMax\",\"yStep\",\"zMin\",\"zMax\",\"zStep\"];var DEFAULTS=undefined;function isEmpty(obj){for(var prop in obj){if(obj.hasOwnProperty(prop))return false}return true}function capitalize(str){if(str===undefined||str===\"\"||typeof str!=\"string\"){return str}return str.charAt(0).toUpperCase()+str.slice(1)}function prefixFieldName(prefix,fieldName){if(prefix===undefined||prefix===\"\"){return fieldName}return prefix+capitalize(fieldName)}function forceCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function safeCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];if(src[srcKey]===undefined)continue;dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function setDefaults(src,dst){if(src===undefined||isEmpty(src)){throw new Error(\"No DEFAULTS passed\")}if(dst===undefined){throw new Error(\"No dst passed\")}DEFAULTS=src;forceCopy(src,dst,OPTIONKEYS);forceCopy(src,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(src,dst);dst.margin=10;dst.showGrayBottom=false;dst.showTooltip=false;dst.onclick_callback=null;dst.eye=new Point3d(0,0,-1)}function setOptions(options,dst){if(options===undefined){return}if(dst===undefined){throw new Error(\"No dst passed\")}if(DEFAULTS===undefined||isEmpty(DEFAULTS)){throw new Error(\"DEFAULTS not set for module Settings\")}safeCopy(options,dst,OPTIONKEYS);safeCopy(options,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(options,dst)}function setSpecialSettings(src,dst){if(src.backgroundColor!==undefined){setBackgroundColor(src.backgroundColor,dst)}setDataColor(src.dataColor,dst);setStyle(src.style,dst);setShowLegend(src.showLegend,dst);setCameraPosition(src.cameraPosition,dst);if(src.tooltip!==undefined){dst.showTooltip=src.tooltip}if(src.onclick!=undefined){dst.onclick_callback=src.onclick}if(src.tooltipStyle!==undefined){util.selectiveDeepExtend([\"tooltipStyle\"],dst,src)}}function setShowLegend(showLegend,dst){if(showLegend===undefined){var isAutoByDefault=DEFAULTS.showLegend===undefined;if(isAutoByDefault){var isLegendGraphStyle=dst.style===STYLE.DOTCOLOR||dst.style===STYLE.DOTSIZE;dst.showLegend=isLegendGraphStyle}else{}}else{dst.showLegend=showLegend}}function getStyleNumberByName(styleName){var number=STYLENAME[styleName];if(number===undefined){return-1}return number}function checkStyleNumber(style){var valid=false;for(var n in STYLE){if(STYLE[n]===style){valid=true;break}}return valid}function setStyle(style,dst){if(style===undefined){return}var styleNumber;if(typeof style===\"string\"){styleNumber=getStyleNumberByName(style);if(styleNumber===-1){throw new Error(\"Style '\"+style+\"' is invalid\")}}else{if(!checkStyleNumber(style)){throw new Error(\"Style '\"+style+\"' is invalid\")}styleNumber=style}dst.style=styleNumber}function setBackgroundColor(backgroundColor,dst){var fill=\"white\";var stroke=\"gray\";var strokeWidth=1;if(typeof backgroundColor===\"string\"){fill=backgroundColor;stroke=\"none\";strokeWidth=0}else if((typeof backgroundColor===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(backgroundColor))===\"object\"){if(backgroundColor.fill!==undefined)fill=backgroundColor.fill;if(backgroundColor.stroke!==undefined)stroke=backgroundColor.stroke;if(backgroundColor.strokeWidth!==undefined)strokeWidth=backgroundColor.strokeWidth}else{throw new Error(\"Unsupported type of backgroundColor\")}dst.frame.style.backgroundColor=fill;dst.frame.style.borderColor=stroke;dst.frame.style.borderWidth=strokeWidth+\"px\";dst.frame.style.borderStyle=\"solid\"}function setDataColor(dataColor,dst){if(dataColor===undefined){return}if(dst.dataColor===undefined){dst.dataColor={}}if(typeof dataColor===\"string\"){dst.dataColor.fill=dataColor;dst.dataColor.stroke=dataColor}else{if(dataColor.fill){dst.dataColor.fill=dataColor.fill}if(dataColor.stroke){dst.dataColor.stroke=dataColor.stroke}if(dataColor.strokeWidth!==undefined){dst.dataColor.strokeWidth=dataColor.strokeWidth}}}function setCameraPosition(cameraPosition,dst){var camPos=cameraPosition;if(camPos===undefined){return}if(dst.camera===undefined){dst.camera=new Camera}dst.camera.setArmRotation(camPos.horizontal,camPos.vertical);dst.camera.setArmLength(camPos.distance)}module.exports.STYLE=STYLE;module.exports.setDefaults=setDefaults;module.exports.setOptions=setOptions;module.exports.setCameraPosition=setCameraPosition},function(module,exports,__webpack_require__){\"use strict\";var _sign=__webpack_require__(165);var _sign2=_interopRequireDefault(_sign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Point3d=__webpack_require__(34);function Camera(){this.armLocation=new Point3d;this.armRotation={};this.armRotation.horizontal=0;this.armRotation.vertical=0;this.armLength=1.7;this.cameraOffset=new Point3d;this.offsetMultiplier=.6;this.cameraLocation=new Point3d;this.cameraRotation=new Point3d(.5*Math.PI,0,0);this.calculateCameraOrientation()}Camera.prototype.setOffset=function(x,y){var abs=Math.abs,sign=_sign2[\"default\"],mul=this.offsetMultiplier,border=this.armLength*mul;if(abs(x)>border){x=sign(x)*border}if(abs(y)>border){y=sign(y)*border}this.cameraOffset.x=x;this.cameraOffset.y=y;this.calculateCameraOrientation()};Camera.prototype.getOffset=function(){return this.cameraOffset};Camera.prototype.setArmLocation=function(x,y,z){this.armLocation.x=x;this.armLocation.y=y;this.armLocation.z=z;this.calculateCameraOrientation()};Camera.prototype.setArmRotation=function(horizontal,vertical){if(horizontal!==undefined){this.armRotation.horizontal=horizontal}if(vertical!==undefined){this.armRotation.vertical=vertical;if(this.armRotation.vertical<0)this.armRotation.vertical=0;if(this.armRotation.vertical>.5*Math.PI)this.armRotation.vertical=.5*Math.PI}if(horizontal!==undefined||vertical!==undefined){this.calculateCameraOrientation()}};Camera.prototype.getArmRotation=function(){var rot={};rot.horizontal=this.armRotation.horizontal;rot.vertical=this.armRotation.vertical;return rot};Camera.prototype.setArmLength=function(length){if(length===undefined)return;this.armLength=length;if(this.armLength<.71)this.armLength=.71;if(this.armLength>5)this.armLength=5;this.setOffset(this.cameraOffset.x,this.cameraOffset.y);this.calculateCameraOrientation()};Camera.prototype.getArmLength=function(){return this.armLength};Camera.prototype.getCameraLocation=function(){return this.cameraLocation};Camera.prototype.getCameraRotation=function(){return this.cameraRotation};Camera.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical);this.cameraRotation.x=Math.PI/2-this.armRotation.vertical;this.cameraRotation.y=0;this.cameraRotation.z=-this.armRotation.horizontal;var xa=this.cameraRotation.x;var za=this.cameraRotation.z;var dx=this.cameraOffset.x;var dy=this.cameraOffset.y;var sin=Math.sin,cos=Math.cos;this.cameraLocation.x=this.cameraLocation.x+dx*cos(za)+dy*-sin(za)*cos(xa);this.cameraLocation.y=this.cameraLocation.y+dx*sin(za)+dy*cos(za)*cos(xa);this.cameraLocation.z=this.cameraLocation.z+dy*sin(xa)};module.exports=Camera},function(module,exports,__webpack_require__){\"use strict\";var DataView=__webpack_require__(12);function Filter(dataGroup,column,graph){this.dataGroup=dataGroup;this.column=column;this.graph=graph;this.index=undefined;this.value=undefined;this.values=dataGroup.getDistinctValues(this.column);if(this.values.length>0){this.selectValue(0)}this.dataPoints=[];this.loaded=false;this.onLoadCallback=undefined;if(graph.animationPreload){this.loaded=false;this.loadInBackground()}else{this.loaded=true}}Filter.prototype.isLoaded=function(){return this.loaded};Filter.prototype.getLoadedProgress=function(){var len=this.values.length;var i=0;while(this.dataPoints[i]){i++}return Math.round(i/len*100)};Filter.prototype.getLabel=function(){return this.graph.filterLabel};Filter.prototype.getColumn=function(){return this.column};Filter.prototype.getSelectedValue=function(){if(this.index===undefined)return undefined;return this.values[this.index]};Filter.prototype.getValues=function(){return this.values};Filter.prototype.getValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");return this.values[index]};Filter.prototype._getDataPoints=function(index){if(index===undefined)index=this.index;if(index===undefined)return[];var dataPoints;if(this.dataPoints[index]){dataPoints=this.dataPoints[index]}else{var f={};f.column=this.column;f.value=this.values[index];var dataView=new DataView(this.dataGroup.getDataSet(),{filter:function filter(item){return item[f.column]==f.value}}).get();dataPoints=this.dataGroup._getDataPoints(dataView);this.dataPoints[index]=dataPoints}return dataPoints};Filter.prototype.setOnLoadCallback=function(callback){this.onLoadCallback=callback};Filter.prototype.selectValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");this.index=index;this.value=this.values[index]};Filter.prototype.loadInBackground=function(index){if(index===undefined)index=0;var frame=this.graph.frame;if(index<this.values.length){if(frame.progress===undefined){frame.progress=document.createElement(\"DIV\");frame.progress.style.position=\"absolute\";frame.progress.style.color=\"gray\";frame.appendChild(frame.progress)}var progress=this.getLoadedProgress();frame.progress.innerHTML=\"Loading animation... \"+progress+\"%\";frame.progress.style.bottom=60+\"px\";frame.progress.style.left=10+\"px\";var me=this;setTimeout(function(){me.loadInBackground(index+1)},10);this.loaded=false}else{this.loaded=true;if(frame.progress!==undefined){frame.removeChild(frame.progress);frame.progress=undefined}if(this.onLoadCallback)this.onLoadCallback()}};module.exports=Filter},function(module,exports,__webpack_require__){\"use strict\";var keycharm=__webpack_require__(35);var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var util=__webpack_require__(2);function Activator(container){this.active=false;this.dom={container:container};this.dom.overlay=document.createElement(\"div\");this.dom.overlay.className=\"vis-overlay\";this.dom.container.appendChild(this.dom.overlay);this.hammer=Hammer(this.dom.overlay);this.hammer.on(\"tap\",this._onTapOverlay.bind(this));var me=this;var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(event){me.hammer.on(event,function(event){event.stopPropagation()})});if(document&&document.body){this.onClick=function(event){if(!_hasParent(event.target,container)){me.deactivate()}};document.body.addEventListener(\"click\",this.onClick)}if(this.keycharm!==undefined){this.keycharm.destroy()}this.keycharm=keycharm();this.escListener=this.deactivate.bind(this)}Emitter(Activator.prototype);Activator.current=null;Activator.prototype.destroy=function(){this.deactivate();this.dom.overlay.parentNode.removeChild(this.dom.overlay);if(this.onClick){document.body.removeEventListener(\"click\",this.onClick)}this.hammer.destroy();this.hammer=null};Activator.prototype.activate=function(){if(Activator.current){Activator.current.deactivate()}Activator.current=this;this.active=true;this.dom.overlay.style.display=\"none\";util.addClassName(this.dom.container,\"vis-active\");this.emit(\"change\");this.emit(\"activate\");this.keycharm.bind(\"esc\",this.escListener)};Activator.prototype.deactivate=function(){this.active=false;this.dom.overlay.style.display=\"\";util.removeClassName(this.dom.container,\"vis-active\");this.keycharm.unbind(\"esc\",this.escListener);this.emit(\"change\");this.emit(\"deactivate\")};Activator.prototype._onTapOverlay=function(event){this.activate();event.stopPropagation()};function _hasParent(element,parent){while(element){if(element===parent){return true}element=element.parentNode}return false}module.exports=Activator},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={current:\"current\",time:\"time\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"it\"]={current:\"attuale\",time:\"tempo\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"it_CH\"]=exports[\"it\"];exports[\"nl\"]={current:\"huidige\",time:\"tijd\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"de\"]={current:\"Aktuelle\",time:\"Zeit\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"fr\"]={current:\"actuel\",time:\"heure\"};exports[\"fr_FR\"]=exports[\"fr\"];exports[\"fr_CA\"]=exports[\"fr\"];exports[\"fr_BE\"]=exports[\"fr\"];exports[\"es\"]={current:\"corriente\",time:\"hora\"};exports[\"es_ES\"]=exports[\"es\"]},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var TimeStep=__webpack_require__(66);var Component=__webpack_require__(16);var Group=__webpack_require__(68);var BackgroundGroup=__webpack_require__(69);var BoxItem=__webpack_require__(101);var PointItem=__webpack_require__(102);var RangeItem=__webpack_require__(70);var BackgroundItem=__webpack_require__(103);var Popup=__webpack_require__(104)[\"default\"];var UNGROUPED=\"__ungrouped__\";var BACKGROUND=\"__background__\";function ItemSet(body,options){this.body=body;this.defaultOptions={type:null,orientation:{item:\"bottom\"},align:\"auto\",stack:true,stackSubgroups:true,groupOrderSwap:function groupOrderSwap(fromGroup,toGroup,groups){var targetOrder=toGroup.order;toGroup.order=fromGroup.order;fromGroup.order=targetOrder},groupOrder:\"order\",selectable:true,multiselect:false,itemsAlwaysDraggable:{item:false,range:false},editable:{updateTime:false,updateGroup:false,add:false,remove:false,overrideItems:false},groupEditable:{order:false,add:false,remove:false},snap:TimeStep.snap,onDropObjectOnItem:function onDropObjectOnItem(objectData,item,callback){callback(item)},onAdd:function onAdd(item,callback){callback(item)},onUpdate:function onUpdate(item,callback){callback(item)},onMove:function onMove(item,callback){callback(item)},onRemove:function onRemove(item,callback){callback(item)},onMoving:function onMoving(item,callback){callback(item)},onAddGroup:function onAddGroup(item,callback){callback(item)},onMoveGroup:function onMoveGroup(item,callback){callback(item)},onRemoveGroup:function onRemoveGroup(item,callback){callback(item)},margin:{item:{horizontal:10,vertical:10},axis:20},showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false};this.options=util.extend({},this.defaultOptions);this.options.rtl=options.rtl;this.itemOptions={type:{start:\"Date\",end:\"Date\"}};this.conversion={toScreen:body.util.toScreen,toTime:body.util.toTime};this.dom={};this.props={};this.hammer=null;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items);if(me.groupsData&&me.groupsData.length>0){var groupsData=me.groupsData.getDataSet();groupsData.get().forEach(function(groupData){if(groupData.nestedGroups){if(groupData.showNested!=false){groupData.showNested=true}var updatedGroups=[];groupData.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);if(!updatedNestedGroup){return}updatedNestedGroup.nestedInGroup=groupData.id;if(groupData.showNested==false){updatedNestedGroup.visible=false}updatedGroups=updatedGroups.concat(updatedNestedGroup)});groupsData.update(updatedGroups,senderId)}})}},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.groups={};this.groupIds=[];this.selection=[];this.popup=null;this.touchParams={};this.groupTouchParams={};this._create();this.setOptions(options)}ItemSet.prototype=new Component;ItemSet.types={background:BackgroundItem,box:BoxItem,range:RangeItem,point:PointItem};ItemSet.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-itemset\";frame[\"timeline-itemset\"]=this;this.dom.frame=frame;var background=document.createElement(\"div\");background.className=\"vis-background\";frame.appendChild(background);this.dom.background=background;var foreground=document.createElement(\"div\");foreground.className=\"vis-foreground\";frame.appendChild(foreground);this.dom.foreground=foreground;var axis=document.createElement(\"div\");axis.className=\"vis-axis\";this.dom.axis=axis;var labelSet=document.createElement(\"div\");labelSet.className=\"vis-labelset\";this.dom.labelSet=labelSet;this._updateUngrouped();var backgroundGroup=new BackgroundGroup(BACKGROUND,null,this);backgroundGroup.show();this.groups[BACKGROUND]=backgroundGroup;this.hammer=new Hammer(this.body.dom.centerContainer);this.hammer.on(\"hammer.input\",function(event){if(event.isFirst){this._onTouch(event)}}.bind(this));this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.hammer.on(\"tap\",this._onSelectItem.bind(this));this.hammer.on(\"press\",this._onMultiSelectItem.bind(this));this.hammer.on(\"doubletap\",this._onAddItem.bind(this));if(this.options.rtl){\nthis.groupHammer=new Hammer(this.body.dom.rightContainer)}else{this.groupHammer=new Hammer(this.body.dom.leftContainer)}this.groupHammer.on(\"tap\",this._onGroupClick.bind(this));this.groupHammer.on(\"panstart\",this._onGroupDragStart.bind(this));this.groupHammer.on(\"panmove\",this._onGroupDrag.bind(this));this.groupHammer.on(\"panend\",this._onGroupDragEnd.bind(this));this.groupHammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_VERTICAL});this.body.dom.centerContainer.addEventListener(\"mouseover\",this._onMouseOver.bind(this));this.body.dom.centerContainer.addEventListener(\"mouseout\",this._onMouseOut.bind(this));this.body.dom.centerContainer.addEventListener(\"mousemove\",this._onMouseMove.bind(this));this.body.dom.centerContainer.addEventListener(\"contextmenu\",this._onDragEnd.bind(this));this.body.dom.centerContainer.addEventListener(\"mousewheel\",this._onMouseWheel.bind(this));this.show()};ItemSet.prototype.setOptions=function(options){if(options){var fields=[\"type\",\"rtl\",\"align\",\"order\",\"stack\",\"stackSubgroups\",\"selectable\",\"multiselect\",\"multiselectPerGroup\",\"groupOrder\",\"dataAttributes\",\"template\",\"groupTemplate\",\"visibleFrameTemplate\",\"hide\",\"snap\",\"groupOrderSwap\",\"showTooltips\",\"tooltip\",\"tooltipOnItemUpdateTime\"];util.selectiveExtend(fields,this.options,options);if(\"itemsAlwaysDraggable\"in options){if(typeof options.itemsAlwaysDraggable===\"boolean\"){this.options.itemsAlwaysDraggable.item=options.itemsAlwaysDraggable;this.options.itemsAlwaysDraggable.range=false}else if((0,_typeof3[\"default\"])(options.itemsAlwaysDraggable)===\"object\"){util.selectiveExtend([\"item\",\"range\"],this.options.itemsAlwaysDraggable,options.itemsAlwaysDraggable);if(!this.options.itemsAlwaysDraggable.item){this.options.itemsAlwaysDraggable.range=false}}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.item=options.orientation===\"top\"?\"top\":\"bottom\"}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}}if(\"margin\"in options){if(typeof options.margin===\"number\"){this.options.margin.axis=options.margin;this.options.margin.item.horizontal=options.margin;this.options.margin.item.vertical=options.margin}else if((0,_typeof3[\"default\"])(options.margin)===\"object\"){util.selectiveExtend([\"axis\"],this.options.margin,options.margin);if(\"item\"in options.margin){if(typeof options.margin.item===\"number\"){this.options.margin.item.horizontal=options.margin.item;this.options.margin.item.vertical=options.margin.item}else if((0,_typeof3[\"default\"])(options.margin.item)===\"object\"){util.selectiveExtend([\"horizontal\",\"vertical\"],this.options.margin.item,options.margin.item)}}}}if(\"editable\"in options){if(typeof options.editable===\"boolean\"){this.options.editable.updateTime=options.editable;this.options.editable.updateGroup=options.editable;this.options.editable.add=options.editable;this.options.editable.remove=options.editable;this.options.editable.overrideItems=false}else if((0,_typeof3[\"default\"])(options.editable)===\"object\"){util.selectiveExtend([\"updateTime\",\"updateGroup\",\"add\",\"remove\",\"overrideItems\"],this.options.editable,options.editable)}}if(\"groupEditable\"in options){if(typeof options.groupEditable===\"boolean\"){this.options.groupEditable.order=options.groupEditable;this.options.groupEditable.add=options.groupEditable;this.options.groupEditable.remove=options.groupEditable}else if((0,_typeof3[\"default\"])(options.groupEditable)===\"object\"){util.selectiveExtend([\"order\",\"add\",\"remove\"],this.options.groupEditable,options.groupEditable)}}var addCallback=function(name){var fn=options[name];if(fn){if(!(fn instanceof Function)){throw new Error(\"option \"+name+\" must be a function \"+name+\"(item, callback)\")}this.options[name]=fn}}.bind(this);[\"onDropObjectOnItem\",\"onAdd\",\"onUpdate\",\"onRemove\",\"onMove\",\"onMoving\",\"onAddGroup\",\"onMoveGroup\",\"onRemoveGroup\"].forEach(addCallback);this.markDirty()}};ItemSet.prototype.markDirty=function(options){this.groupIds=[];if(options&&options.refreshItems){util.forEach(this.items,function(item){item.dirty=true;if(item.displayed)item.redraw()})}};ItemSet.prototype.destroy=function(){this.hide();this.setItems(null);this.setGroups(null);this.hammer=null;this.body=null;this.conversion=null};ItemSet.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.axis.parentNode){this.dom.axis.parentNode.removeChild(this.dom.axis)}if(this.dom.labelSet.parentNode){this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)}};ItemSet.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}if(!this.dom.axis.parentNode){this.body.dom.backgroundVertical.appendChild(this.dom.axis)}if(!this.dom.labelSet.parentNode){if(this.options.rtl){this.body.dom.right.appendChild(this.dom.labelSet)}else{this.body.dom.left.appendChild(this.dom.labelSet)}}};ItemSet.prototype.setSelection=function(ids){var i,ii,id,item;if(ids==undefined)ids=[];if(!Array.isArray(ids))ids=[ids];for(i=0,ii=this.selection.length;i<ii;i++){id=this.selection[i];item=this.items[id];if(item)item.unselect()}this.selection=[];for(i=0,ii=ids.length;i<ii;i++){id=ids[i];item=this.items[id];if(item){this.selection.push(id);item.select()}}};ItemSet.prototype.getSelection=function(){return this.selection.concat([])};ItemSet.prototype.getVisibleItems=function(){var range=this.body.range.getRange();var right,left;if(this.options.rtl){right=this.body.util.toScreen(range.start);left=this.body.util.toScreen(range.end)}else{left=this.body.util.toScreen(range.start);right=this.body.util.toScreen(range.end)}var ids=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];var rawVisibleItems=group.isVisible?group.visibleItems:[];for(var i=0;i<rawVisibleItems.length;i++){var item=rawVisibleItems[i];if(this.options.rtl){if(item.right<left&&item.right+item.width>right){ids.push(item.id)}}else{if(item.left<right&&item.left+item.width>left){ids.push(item.id)}}}}}return ids};ItemSet.prototype._deselect=function(id){var selection=this.selection;for(var i=0,ii=selection.length;i<ii;i++){if(selection[i]==id){selection.splice(i,1);break}}};ItemSet.prototype.redraw=function(){var margin=this.options.margin,range=this.body.range,asSize=util.option.asSize,options=this.options,orientation=options.orientation.item,resized=false,frame=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top;if(this.options.rtl){this.props.right=this.body.domProps.right.width+this.body.domProps.border.right}else{this.props.left=this.body.domProps.left.width+this.body.domProps.border.left}frame.className=\"vis-itemset\";resized=this._orderGroups()||resized;var visibleInterval=range.end-range.start;var zoomed=visibleInterval!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;var scrolled=range.start!=this.lastRangeStart;var changedStackOption=options.stack!=this.lastStack;var changedStackSubgroupsOption=options.stackSubgroups!=this.lastStackSubgroups;var forceRestack=zoomed||scrolled||changedStackOption||changedStackSubgroupsOption;this.lastVisibleInterval=visibleInterval;this.lastRangeStart=range.start;this.lastStack=options.stack;this.lastStackSubgroups=options.stackSubgroups;this.props.lastWidth=this.props.width;var firstGroup=this._firstGroup();var firstMargin={item:margin.item,axis:margin.axis};var nonFirstMargin={item:margin.item,axis:margin.item.vertical/2};var height=0;var minHeight=margin.axis+margin.item.vertical;this.groups[BACKGROUND].redraw(range,nonFirstMargin,forceRestack);var redrawQueue={};var redrawQueueLength=0;util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupMargin=group==firstGroup?firstMargin:nonFirstMargin;var returnQueue=true;redrawQueue[key]=group.redraw(range,groupMargin,forceRestack,returnQueue);redrawQueueLength=redrawQueue[key].length});var needRedraw=redrawQueueLength>0;if(needRedraw){var redrawResults={};for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns,key){redrawResults[key]=fns[i]()})}util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupResized=redrawResults[key];resized=groupResized||resized;height+=group.height});height=Math.max(height,minHeight)}height=Math.max(height,minHeight);frame.style.height=asSize(height);this.props.width=frame.offsetWidth;this.props.height=height;this.dom.axis.style.top=asSize(orientation==\"top\"?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height);if(this.options.rtl){this.dom.axis.style.right=\"0\"}else{this.dom.axis.style.left=\"0\"}this.initialItemSetDrawn=true;resized=this._isResized()||resized;return resized};ItemSet.prototype._firstGroup=function(){var firstGroupIndex=this.options.orientation.item==\"top\"?0:this.groupIds.length-1;var firstGroupId=this.groupIds[firstGroupIndex];var firstGroup=this.groups[firstGroupId]||this.groups[UNGROUPED];return firstGroup||null};ItemSet.prototype._updateUngrouped=function(){var ungrouped=this.groups[UNGROUPED];var item,itemId;if(this.groupsData){if(ungrouped){ungrouped.hide();delete this.groups[UNGROUPED];for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];item.parent&&item.parent.remove(item);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];group&&group.add(item)||item.hide()}}}}else{if(!ungrouped){var id=null;var data=null;ungrouped=new Group(id,data,this);this.groups[UNGROUPED]=ungrouped;for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];ungrouped.add(item)}}ungrouped.show()}}};ItemSet.prototype.getLabelSet=function(){return this.dom.labelSet};ItemSet.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids);this._updateUngrouped()}this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getItems=function(){return this.itemsData};ItemSet.prototype.setGroups=function(groups){var me=this,ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;this._onRemoveGroups(ids)}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}groupsData.get().forEach(function(group){if(group.nestedGroups){group.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);updatedNestedGroup.nestedInGroup=group.id;if(group.showNested==false){updatedNestedGroup.visible=false}groupsData.update(updatedNestedGroup)})}});var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}this._updateUngrouped();this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getGroups=function(){return this.groupsData};ItemSet.prototype.removeItem=function(id){var item=this.itemsData.get(id),dataset=this.itemsData.getDataSet();if(item){this.options.onRemove(item,function(item){if(item){dataset.remove(id)}})}};ItemSet.prototype._getType=function(itemData){return itemData.type||this.options.type||(itemData.end?\"range\":\"box\")};ItemSet.prototype._getGroupId=function(itemData){var type=this._getType(itemData);if(type==\"background\"&&itemData.group==undefined){return BACKGROUND}else{return this.groupsData?itemData.group:UNGROUPED}};ItemSet.prototype._onUpdate=function(ids){var me=this;ids.forEach(function(id){var itemData=me.itemsData.get(id,me.itemOptions);var item=me.items[id];var type=itemData?me._getType(itemData):null;var constructor=ItemSet.types[type];var selected;if(item){if(!constructor||!(item instanceof constructor)){selected=item.selected;me._removeItem(item);item=null}else{me._updateItem(item,itemData)}}if(!item&&itemData){if(constructor){item=new constructor(itemData,me.conversion,me.options);item.id=id;me._addItem(item);if(selected){this.selection.push(id);item.select()}}else if(type==\"rangeoverflow\"){throw new TypeError('Item type \"rangeoverflow\" is deprecated. Use css styling instead: '+\".vis-item.vis-range .vis-item-content {overflow: visible;}\")}else{throw new TypeError('Unknown item type \"'+type+'\"')}}}.bind(this));this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onAdd=ItemSet.prototype._onUpdate;ItemSet.prototype._onRemove=function(ids){var count=0;var me=this;ids.forEach(function(id){var item=me.items[id];if(item){count++;me._removeItem(item)}});if(count){this._order();this.body.emitter.emit(\"_change\",{queue:true})}};ItemSet.prototype._order=function(){util.forEach(this.groups,function(group){group.order()})};ItemSet.prototype._onUpdateGroups=function(ids){this._onAddGroups(ids)};ItemSet.prototype._onAddGroups=function(ids){var me=this;ids.forEach(function(id){var groupData=me.groupsData.get(id);var group=me.groups[id];if(!group){if(id==UNGROUPED||id==BACKGROUND){throw new Error(\"Illegal group id. \"+id+\" is a reserved id.\")}var groupOptions=(0,_create2[\"default\"])(me.options);util.extend(groupOptions,{height:null});group=new Group(id,groupData,me);me.groups[id]=group;for(var itemId in me.items){if(me.items.hasOwnProperty(itemId)){var item=me.items[itemId];if(item.data.group==id){group.add(item)}}}group.order();group.show()}else{group.setData(groupData)}});this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onRemoveGroups=function(ids){var groups=this.groups;ids.forEach(function(id){var group=groups[id];if(group){group.hide();delete groups[id]}});this.markDirty();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._orderGroups=function(){if(this.groupsData){var groupIds=this.groupsData.getIds({order:this.options.groupOrder});groupIds=this._orderNestedGroups(groupIds);var changed=!util.equalArray(groupIds,this.groupIds);if(changed){var groups=this.groups;groupIds.forEach(function(groupId){groups[groupId].hide()});groupIds.forEach(function(groupId){groups[groupId].show()});this.groupIds=groupIds}return changed}else{return false}};ItemSet.prototype._orderNestedGroups=function(groupIds){var newGroupIdsOrder=[];groupIds.forEach(function(groupId){var groupData=this.groupsData.get(groupId);if(!groupData.nestedInGroup){newGroupIdsOrder.push(groupId)}if(groupData.nestedGroups){var nestedGroups=this.groupsData.get({filter:function filter(nestedGroup){return nestedGroup.nestedInGroup==groupId},order:this.options.groupOrder});var nestedGroupIds=nestedGroups.map(function(nestedGroup){return nestedGroup.id});newGroupIdsOrder=newGroupIdsOrder.concat(nestedGroupIds)}},this);return newGroupIdsOrder};ItemSet.prototype._addItem=function(item){this.items[item.id]=item;var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}if(group)group.add(item)};ItemSet.prototype._updateItem=function(item,itemData){item.setData(itemData);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}};ItemSet.prototype._removeItem=function(item){item.hide();delete this.items[item.id];var index=this.selection.indexOf(item.id);if(index!=-1)this.selection.splice(index,1);item.parent&&item.parent.remove(item)};ItemSet.prototype._constructByEndArray=function(array){var endArray=[];for(var i=0;i<array.length;i++){if(array[i]instanceof RangeItem){endArray.push(array[i])}}return endArray};ItemSet.prototype._onTouch=function(event){this.touchParams.item=this.itemFromTarget(event);this.touchParams.dragLeftItem=event.target.dragLeftItem||false;this.touchParams.dragRightItem=event.target.dragRightItem||false;this.touchParams.itemProps=null};ItemSet.prototype._getGroupIndex=function(groupId){for(var i=0;i<this.groupIds.length;i++){if(groupId==this.groupIds[i])return i}};ItemSet.prototype._onDragStart=function(event){if(this.touchParams.itemIsDragging){return}var item=this.touchParams.item||null;var me=this;var props;if(item&&(item.selected||this.options.itemsAlwaysDraggable.item)){if(this.options.editable.overrideItems&&!this.options.editable.updateTime&&!this.options.editable.updateGroup){return}if(item.editable!=null&&!item.editable.updateTime&&!item.editable.updateGroup&&!this.options.editable.overrideItems){return}var dragLeftItem=this.touchParams.dragLeftItem;var dragRightItem=this.touchParams.dragRightItem;this.touchParams.itemIsDragging=true;this.touchParams.selectedItem=item;if(dragLeftItem){props={item:dragLeftItem,initialX:event.center.x,dragLeft:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(dragRightItem){props={item:dragRightItem,initialX:event.center.x,dragRight:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}else{if(this.groupIds.length<1){this.redraw()}var baseGroupIndex=this._getGroupIndex(item.data.group);var itemsToDrag=this.options.itemsAlwaysDraggable.item&&!item.selected?[item.id]:this.getSelection();this.touchParams.itemProps=itemsToDrag.map(function(id){var item=me.items[id];var groupIndex=me._getGroupIndex(item.data.group);return{item:item,initialX:event.center.x,groupOffset:baseGroupIndex-groupIndex,data:this._cloneItemData(item.data)}}.bind(this))}event.stopPropagation()}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}};ItemSet.prototype._onDragStartAddItem=function(event){var xAbs;var x;var snap=this.options.snap||null;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x+10}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs-10}var time=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var start=snap?snap(time,scale,step):time;var end=start;var itemData={type:\"range\",start:start,end:end,content:\"new item\"};var id=util.randomUUID();itemData[this.itemsData._fieldId]=id;var group=this.groupFromTarget(event);if(group){itemData.group=group.groupId}var newItem=new RangeItem(itemData,this.conversion,this.options);newItem.id=id;newItem.data=this._cloneItemData(itemData);this._addItem(newItem);this.touchParams.selectedItem=newItem;var props={item:newItem,initialX:event.center.x,data:newItem.data};if(this.options.rtl){props.dragLeft=true}else{props.dragRight=true}this.touchParams.itemProps=[props];event.stopPropagation()};ItemSet.prototype._onDrag=function(event){if(this.touchParams.itemProps){event.stopPropagation();var me=this;var snap=this.options.snap||null;var xOffset;if(this.options.rtl){xOffset=this.body.dom.root.offsetLeft+this.body.domProps.right.width}else{xOffset=this.body.dom.root.offsetLeft+this.body.domProps.left.width}var scale=this.body.util.getScale();var step=this.body.util.getStep();var selectedItem=this.touchParams.selectedItem;var updateGroupAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateGroup||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateGroup;var newGroupBase=null;if(updateGroupAllowed&&selectedItem){if(selectedItem.data.group!=undefined){var group=me.groupFromTarget(event);if(group){newGroupBase=this._getGroupIndex(group.groupId)}}}this.touchParams.itemProps.forEach(function(props){var current=me.body.util.toTime(event.center.x-xOffset);var initial=me.body.util.toTime(props.initialX-xOffset);var offset;var initialStart;var initialEnd;var start;var end;if(this.options.rtl){offset=-(current-initial)}else{offset=current-initial}var itemData=this._cloneItemData(props.item.data);if(props.item.editable!=null&&!props.item.editable.updateTime&&!props.item.editable.updateGroup&&!me.options.editable.overrideItems){return}var updateTimeAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateTime||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateTime;if(updateTimeAllowed){if(props.dragLeft){if(this.options.rtl){if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}}else if(props.dragRight){if(this.options.rtl){if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}else{if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\").valueOf();start=new Date(initialStart+offset);if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");var duration=initialEnd.valueOf()-initialStart.valueOf();itemData.start=snap?snap(start,scale,step):start;itemData.end=new Date(itemData.start.valueOf()+duration)}else{itemData.start=snap?snap(start,scale,step):start}}}}if(updateGroupAllowed&&!props.dragLeft&&!props.dragRight&&newGroupBase!=null){if(itemData.group!=undefined){var newOffset=newGroupBase-props.groupOffset;newOffset=Math.max(0,newOffset);newOffset=Math.min(me.groupIds.length-1,newOffset);itemData.group=me.groupIds[newOffset]}}itemData=this._cloneItemData(itemData);me.options.onMoving(itemData,function(itemData){if(itemData){props.item.setData(this._cloneItemData(itemData,\"Date\"))}}.bind(this))}.bind(this));this.body.emitter.emit(\"_change\")}};ItemSet.prototype._moveToGroup=function(item,groupId){var group=this.groups[groupId];if(group&&group.groupId!=item.data.group){var oldGroup=item.parent;oldGroup.remove(item);oldGroup.order();item.data.group=group.groupId;group.add(item);group.order()}};ItemSet.prototype._onDragEnd=function(event){this.touchParams.itemIsDragging=false;if(this.touchParams.itemProps){event.stopPropagation();var me=this;var dataset=this.itemsData.getDataSet();var itemProps=this.touchParams.itemProps;this.touchParams.itemProps=null;itemProps.forEach(function(props){var id=props.item.id;var exists=me.itemsData.get(id,me.itemOptions)!=null;if(!exists){me.options.onAdd(props.item.data,function(itemData){me._removeItem(props.item);if(itemData){me.itemsData.getDataSet().add(itemData)}me.body.emitter.emit(\"_change\")})}else{var itemData=this._cloneItemData(props.item.data);me.options.onMove(itemData,function(itemData){if(itemData){itemData[dataset._fieldId]=id;dataset.update(itemData)}else{props.item.setData(props.data);me.body.emitter.emit(\"_change\")}})}}.bind(this))}};ItemSet.prototype._onGroupClick=function(event){var group=this.groupFromTarget(event);if(!group||!group.nestedGroups)return;var groupsData=this.groupsData.getDataSet();var nestingGroup=groupsData.get(group.groupId);if(nestingGroup.showNested==undefined){nestingGroup.showNested=true}nestingGroup.showNested=!nestingGroup.showNested;var nestedGroups=groupsData.get(group.nestedGroups).map(function(nestedGroup){nestedGroup.visible=nestingGroup.showNested;return nestedGroup});groupsData.update(nestedGroups.concat(nestingGroup));if(nestingGroup.showNested){util.removeClassName(group.dom.label,\"collapsed\");util.addClassName(group.dom.label,\"expanded\")}else{util.removeClassName(group.dom.label,\"expanded\");var collapsedDirClassName=this.options.rtl?\"collapsed-rtl\":\"collapsed\";util.addClassName(group.dom.label,collapsedDirClassName)}};ItemSet.prototype._onGroupDragStart=function(event){if(this.options.groupEditable.order){this.groupTouchParams.group=this.groupFromTarget(event);if(this.groupTouchParams.group){event.stopPropagation();this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})}}};ItemSet.prototype._onGroupDrag=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}var group=this.groupFromTarget(event);if(group&&group.height!=this.groupTouchParams.group.height){var movingUp=group.top<this.groupTouchParams.group.top;var clientY=event.center?event.center.y:event.clientY;var targetGroupTop=util.getAbsoluteTop(group.dom.foreground);var draggedGroupHeight=this.groupTouchParams.group.height;if(movingUp){if(targetGroupTop+draggedGroupHeight<clientY){return}}else{var targetGroupHeight=group.height;if(targetGroupTop+targetGroupHeight-draggedGroupHeight>clientY){return}}}if(group&&group!=this.groupTouchParams.group){var targetGroup=groupsData.get(group.groupId);var draggedGroup=groupsData.get(this.groupTouchParams.group.groupId);if(draggedGroup&&targetGroup){this.options.groupOrderSwap(draggedGroup,targetGroup,groupsData);groupsData.update(draggedGroup);groupsData.update(targetGroup)}var newOrder=groupsData.getIds({order:this.options.groupOrder});if(!util.equalArray(newOrder,this.groupTouchParams.originalOrder)){var origOrder=this.groupTouchParams.originalOrder;var draggedId=this.groupTouchParams.group.groupId;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;var newOffset=0;var orgOffset=0;while(curPos<numGroups){while(curPos+newOffset<numGroups&&curPos+orgOffset<numGroups&&newOrder[curPos+newOffset]==origOrder[curPos+orgOffset]){curPos++}if(curPos+newOffset>=numGroups){break}if(newOrder[curPos+newOffset]==draggedId){newOffset=1}else if(origOrder[curPos+orgOffset]==draggedId){orgOffset=1}else{var slippedPosition=newOrder.indexOf(origOrder[curPos+orgOffset]);var switchGroup=groupsData.get(newOrder[curPos+newOffset]);var shouldBeGroup=groupsData.get(origOrder[curPos+orgOffset]);this.options.groupOrderSwap(switchGroup,shouldBeGroup,groupsData);groupsData.update(switchGroup);groupsData.update(shouldBeGroup);var switchGroupId=newOrder[curPos+newOffset];newOrder[curPos+newOffset]=origOrder[curPos+orgOffset];newOrder[slippedPosition]=switchGroupId;curPos++}}}}}};ItemSet.prototype._onGroupDragEnd=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var me=this;var id=me.groupTouchParams.group.groupId;var dataset=me.groupsData.getDataSet();var groupData=util.extend({},dataset.get(id));me.options.onMoveGroup(groupData,function(groupData){if(groupData){groupData[dataset._fieldId]=id;dataset.update(groupData)}else{var newOrder=dataset.getIds({order:me.options.groupOrder});if(!util.equalArray(newOrder,me.groupTouchParams.originalOrder)){var origOrder=me.groupTouchParams.originalOrder;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;while(curPos<numGroups){while(curPos<numGroups&&newOrder[curPos]==origOrder[curPos]){curPos++}if(curPos>=numGroups){break}var slippedPosition=newOrder.indexOf(origOrder[curPos]);var switchGroup=dataset.get(newOrder[curPos]);var shouldBeGroup=dataset.get(origOrder[curPos]);me.options.groupOrderSwap(switchGroup,shouldBeGroup,dataset);dataset.update(switchGroup);dataset.update(shouldBeGroup);var switchGroupId=newOrder[curPos];newOrder[curPos]=origOrder[curPos];newOrder[slippedPosition]=switchGroupId;curPos++}}}});me.body.emitter.emit(\"groupDragged\",{groupId:id})}};ItemSet.prototype._onSelectItem=function(event){if(!this.options.selectable)return;var ctrlKey=event.srcEvent&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey);var shiftKey=event.srcEvent&&event.srcEvent.shiftKey;if(ctrlKey||shiftKey){this._onMultiSelectItem(event);return}var oldSelection=this.getSelection();var item=this.itemFromTarget(event);var selection=item?[item.id]:[];this.setSelection(selection);var newSelection=this.getSelection();if(newSelection.length>0||oldSelection.length>0){this.body.emitter.emit(\"select\",{items:newSelection,event:event})}};ItemSet.prototype._onMouseOver=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}var title=item.getTitle();if(this.options.showTooltips&&title){if(this.popup==null){this.popup=new Popup(this.body.dom.root,this.options.tooltip.overflowMethod||\"flip\")}this.popup.setText(title);var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}else{if(this.popup!=null){this.popup.hide()}}this.body.emitter.emit(\"itemover\",{item:item.id,event:event})};ItemSet.prototype._onMouseOut=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}if(this.popup!=null){this.popup.hide()}this.body.emitter.emit(\"itemout\",{item:item.id,event:event})};ItemSet.prototype._onMouseMove=function(event){var item=this.itemFromTarget(event);if(!item)return;if(this.options.showTooltips&&this.options.tooltip.followMouse){if(this.popup){if(!this.popup.hidden){var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}}}};ItemSet.prototype._onMouseWheel=function(event){if(this.touchParams.itemIsDragging){this._onDragEnd(event)}};ItemSet.prototype._onUpdateItem=function(item){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;if(item){var itemData=me.itemsData.get(item.id);this.options.onUpdate(itemData,function(itemData){if(itemData){me.itemsData.getDataSet().update(itemData)}})}};ItemSet.prototype._onDropObjectOnItem=function(event){var item=this.itemFromTarget(event);var objectData=JSON.parse(event.dataTransfer.getData(\"text\"));this.options.onDropObjectOnItem(objectData,item)};ItemSet.prototype._onAddItem=function(event){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;var snap=this.options.snap||null;var xAbs;var x;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs}var start=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var end;var newItemData;if(event.type==\"drop\"){newItemData=JSON.parse(event.dataTransfer.getData(\"text\"));newItemData.content=newItemData.content?newItemData.content:\"new item\";newItemData.start=newItemData.start?newItemData.start:snap?snap(start,scale,step):start;newItemData.type=newItemData.type||\"box\";newItemData[this.itemsData._fieldId]=newItemData.id||util.randomUUID();if(newItemData.type==\"range\"&&!newItemData.end){end=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}else{newItemData={start:snap?snap(start,scale,step):start,content:\"new item\"};newItemData[this.itemsData._fieldId]=util.randomUUID();if(this.options.type===\"range\"){\nend=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}var group=this.groupFromTarget(event);if(group){newItemData.group=group.groupId}newItemData=this._cloneItemData(newItemData);this.options.onAdd(newItemData,function(item){if(item){me.itemsData.getDataSet().add(item);if(event.type==\"drop\"){me.setSelection([item.id])}}})};ItemSet.prototype._onMultiSelectItem=function(event){if(!this.options.selectable)return;var item=this.itemFromTarget(event);if(item){var selection=this.options.multiselect?this.getSelection():[];var shiftKey=event.srcEvent&&event.srcEvent.shiftKey||false;if(shiftKey&&this.options.multiselect){var itemGroup=this.itemsData.get(item.id).group;var lastSelectedGroup=undefined;if(this.options.multiselectPerGroup){if(selection.length>0){lastSelectedGroup=this.itemsData.get(selection[0]).group}}if(!this.options.multiselectPerGroup||lastSelectedGroup==undefined||lastSelectedGroup==itemGroup){selection.push(item.id)}var range=ItemSet._getItemRange(this.itemsData.get(selection,this.itemOptions));if(!this.options.multiselectPerGroup||lastSelectedGroup==itemGroup){selection=[];for(var id in this.items){if(this.items.hasOwnProperty(id)){var _item=this.items[id];var start=_item.data.start;var end=_item.data.end!==undefined?_item.data.end:start;if(start>=range.min&&end<=range.max&&(!this.options.multiselectPerGroup||lastSelectedGroup==this.itemsData.get(_item.id).group)&&!(_item instanceof BackgroundItem)){selection.push(_item.id)}}}}}else{var index=selection.indexOf(item.id);if(index==-1){selection.push(item.id)}else{selection.splice(index,1)}}this.setSelection(selection);this.body.emitter.emit(\"select\",{items:this.getSelection(),event:event})}};ItemSet._getItemRange=function(itemsData){var max=null;var min=null;itemsData.forEach(function(data){if(min==null||data.start<min){min=data.start}if(data.end!=undefined){if(max==null||data.end>max){max=data.end}}else{if(max==null||data.start>max){max=data.start}}});return{min:min,max:max}};ItemSet.prototype.itemFromElement=function(element){var cur=element;while(cur){if(cur.hasOwnProperty(\"timeline-item\")){return cur[\"timeline-item\"]}cur=cur.parentNode}return null};ItemSet.prototype.itemFromTarget=function(event){return this.itemFromElement(event.target)};ItemSet.prototype.itemFromRelatedTarget=function(event){return this.itemFromElement(event.relatedTarget)};ItemSet.prototype.groupFromTarget=function(event){var clientY=event.center?event.center.y:event.clientY;var groupIds=this.groupIds;if(groupIds.length<=0&&this.groupsData){groupIds=this.groupsData.getIds({order:this.options.groupOrder})}for(var i=0;i<groupIds.length;i++){var groupId=groupIds[i];var group=this.groups[groupId];var foreground=group.dom.foreground;var top=util.getAbsoluteTop(foreground);if(clientY>top&&clientY<top+foreground.offsetHeight){return group}if(this.options.orientation.item===\"top\"){if(i===this.groupIds.length-1&&clientY>top){return group}}else{if(i===0&&clientY<top+foreground.offset){return group}}}return null};ItemSet.itemSetFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"timeline-itemset\")){return target[\"timeline-itemset\"]}target=target.parentNode}return null};ItemSet.prototype._cloneItemData=function(itemData,type){var clone=util.extend({},itemData);if(!type){type=this.itemsData.getDataSet()._options.type}if(clone.start!=undefined){clone.start=util.convert(clone.start,type&&type.start||\"Date\")}if(clone.end!=undefined){clone.end=util.convert(clone.end,type&&type.end||\"Date\")}return clone};module.exports=ItemSet},function(module,exports,__webpack_require__){\"use strict\";var EPSILON=.001;exports.orderByStart=function(items){items.sort(function(a,b){return a.data.start-b.data.start})};exports.orderByEnd=function(items){items.sort(function(a,b){var aTime=\"end\"in a.data?a.data.end:a.data.start,bTime=\"end\"in b.data?b.data.end:b.data.start;return aTime-bTime})};exports.stack=function(items,margin,force){if(force){for(var i=0;i<items.length;i++){items[i].top=null}}for(var i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=margin.axis;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&other.stack&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}}while(collidingItem)}}};exports.substack=function(items,margin,subgroup){for(var i=0;i<items.length;i++){items[i].top=null}var subgroupHeight=subgroup.height;for(i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=item.baseTop;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}if(item.top+item.height>subgroupHeight){subgroupHeight=item.top+item.height}}while(collidingItem)}}subgroup.height=subgroupHeight-subgroup.top+.5*margin.item.vertical};exports.nostack=function(items,margin,subgroups,stackSubgroups){for(var i=0;i<items.length;i++){if(items[i].data.subgroup==undefined){items[i].top=margin.item.vertical}else if(items[i].data.subgroup!==undefined&&stackSubgroups){var newTop=0;for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){if(subgroups[subgroup].visible==true&&subgroups[subgroup].index<subgroups[items[i].data.subgroup].index){newTop+=subgroups[subgroup].height;subgroups[items[i].data.subgroup].top=newTop}}}items[i].top=newTop+.5*margin.item.vertical}}if(!stackSubgroups){exports.stackSubgroups(items,margin,subgroups)}};exports.stackSubgroups=function(items,margin,subgroups){for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){subgroups[subgroup].top=0;do{var collidingItem=null;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].top!==null&&otherSubgroup!==subgroup&&subgroups[subgroup].index>subgroups[otherSubgroup].index&&exports.collisionByTimes(subgroups[subgroup],subgroups[otherSubgroup])){collidingItem=subgroups[otherSubgroup];break}}if(collidingItem!=null){subgroups[subgroup].top=collidingItem.top+collidingItem.height}}while(collidingItem)}}for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical}}};exports.stackSubgroupsWithInnerStack=function(subgroupItems,margin,subgroups){var doSubStack=false;var subgroupOrder=[];for(var subgroup in subgroups){if(subgroups[subgroup].hasOwnProperty(\"index\")){subgroupOrder[subgroups[subgroup].index]=subgroup}else{subgroupOrder.push(subgroup)}}for(var j=0;j<subgroupOrder.length;j++){subgroup=subgroupOrder[j];if(subgroups.hasOwnProperty(subgroup)){doSubStack=doSubStack||subgroups[subgroup].stack;subgroups[subgroup].top=0;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].visible&&subgroups[subgroup].index>subgroups[otherSubgroup].index){subgroups[subgroup].top+=subgroups[otherSubgroup].height}}var items=subgroupItems[subgroup];for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical;if(subgroups[subgroup].stack){items[i].baseTop=items[i].top}}}if(doSubStack&&subgroups[subgroup].stack){exports.substack(subgroupItems[subgroup],margin,subgroups[subgroup])}}}};exports.collision=function(a,b,margin,rtl){if(rtl){return a.right-margin.horizontal+EPSILON<b.right+b.width&&a.right+a.width+margin.horizontal-EPSILON>b.right&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}else{return a.left-margin.horizontal+EPSILON<b.left+b.width&&a.left+a.width+margin.horizontal-EPSILON>b.left&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}};exports.collisionByTimes=function(a,b){return a.start<=b.start&&a.end>=b.start&&a.top<b.top+b.height&&a.top+a.height>b.top||b.start<=a.start&&b.end>=a.start&&b.top<a.top+a.height&&b.top+b.height>a.top}},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function BoxItem(data,conversion,options){this.props={dot:{width:0,height:0},line:{width:0,height:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}BoxItem.prototype=new Item(null,null,null);BoxItem.prototype.isVisible=function(range){var isVisible;var align=this.options.align;var widthInMs=this.width*range.getMillisecondsPerPixel();if(align==\"right\"){isVisible=this.data.start.getTime()>range.start&&this.data.start.getTime()-widthInMs<range.end}else if(align==\"left\"){isVisible=this.data.start.getTime()+widthInMs>range.start&&this.data.start.getTime()<range.end}else{isVisible=this.data.start.getTime()+widthInMs/2>range.start&&this.data.start.getTime()-widthInMs/2<range.end}return isVisible};BoxItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"DIV\");this.dom.content=document.createElement(\"DIV\");this.dom.content.className=\"vis-item-content\";this.dom.box.appendChild(this.dom.content);this.dom.line=document.createElement(\"DIV\");this.dom.line.className=\"vis-line\";this.dom.dot=document.createElement(\"DIV\");this.dom.dot.className=\"vis-dot\";this.dom.box[\"timeline-item\"]=this;this.dirty=true}};BoxItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground)throw new Error(\"Cannot redraw item: parent has no foreground container element\");foreground.appendChild(this.dom.box)}if(!this.dom.line.parentNode){var background=this.parent.dom.background;if(!background)throw new Error(\"Cannot redraw item: parent has no background container element\");background.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var axis=this.parent.dom.axis;if(!background)throw new Error(\"Cannot redraw item: parent has no axis container element\");axis.appendChild(this.dom.dot)}this.displayed=true};BoxItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=\"vis-item vis-box\"+className;this.dom.line.className=\"vis-item vis-line\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};BoxItem.prototype._getDomComponentsSizes=function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},dot:{height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},line:{width:this.dom.line.offsetWidth},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}};BoxItem.prototype._updateDomComponentsSizes=function(sizes){if(this.options.rtl){this.dom.box.style.right=\"0px\"}else{this.dom.box.style.left=\"0px\"}this.props.dot.height=sizes.dot.height;this.props.dot.width=sizes.dot.width;this.props.line.width=sizes.line.width;this.width=sizes.box.width;this.height=sizes.box.height;if(this.options.rtl){this.dom.box.style.right=sizes.previous.right}else{this.dom.box.style.left=sizes.previous.left}this.dirty=false};BoxItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDragCenter();this._repaintDeleteButton(this.dom.box)};BoxItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BoxItem.prototype.show=function(){if(!this.displayed){this.redraw()}};BoxItem.prototype.hide=function(){if(this.displayed){var dom=this.dom;if(dom.box.parentNode)dom.box.parentNode.removeChild(dom.box);if(dom.line.parentNode)dom.line.parentNode.removeChild(dom.line);if(dom.dot.parentNode)dom.dot.parentNode.removeChild(dom.dot);this.displayed=false}};BoxItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);var align=this.options.align;if(align==\"right\"){if(this.options.rtl){this.right=start-this.width;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start-this.width;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width+\"px\";this.dom.dot.style.left=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}}else if(align==\"left\"){if(this.options.rtl){this.right=start;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start+\"px\";this.dom.dot.style.right=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start+\"px\";this.dom.dot.style.left=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}}else{if(this.options.rtl){this.right=start-this.width/2;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.dot.width/2+\"px\"}else{this.left=start-this.width/2;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width/2+\"px\";this.dom.dot.style.left=start-this.props.dot.width/2+\"px\"}}};BoxItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;var line=this.dom.line;var dot=this.dom.dot;if(orientation==\"top\"){box.style.top=(this.top||0)+\"px\";line.style.top=\"0\";line.style.height=this.parent.top+this.top+1+\"px\";line.style.bottom=\"\"}else{var itemSetHeight=this.parent.itemSet.props.height;var lineHeight=itemSetHeight-this.parent.top-this.parent.height+this.top;box.style.top=(this.parent.height-this.top-this.height||0)+\"px\";line.style.top=itemSetHeight-lineHeight+\"px\";line.style.bottom=\"0\"}dot.style.top=-this.props.dot.height/2+\"px\"};BoxItem.prototype.getWidthLeft=function(){return this.width/2};BoxItem.prototype.getWidthRight=function(){return this.width/2};module.exports=BoxItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function PointItem(data,conversion,options){this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}PointItem.prototype=new Item(null,null,null);PointItem.prototype.isVisible=function(range){var widthInMs=this.width*range.getMillisecondsPerPixel();return this.data.start.getTime()+widthInMs>range.start&&this.data.start<range.end};PointItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.point=document.createElement(\"div\");this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.point.appendChild(this.dom.content);this.dom.dot=document.createElement(\"div\");this.dom.point.appendChild(this.dom.dot);this.dom.point[\"timeline-item\"]=this;this.dirty=true}};PointItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.point.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.point)}this.displayed=true};PointItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.point);this._updateStyle(this.dom.point);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.point.className=\"vis-item vis-point\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};PointItem.prototype._getDomComponentsSizes=function(){return{dot:{width:this.dom.dot.offsetWidth,height:this.dom.dot.offsetHeight},content:{width:this.dom.content.offsetWidth,height:this.dom.content.offsetHeight},point:{width:this.dom.point.offsetWidth,height:this.dom.point.offsetHeight}}};PointItem.prototype._updateDomComponentsSizes=function(sizes){this.props.dot.width=sizes.dot.width;this.props.dot.height=sizes.dot.height;this.props.content.height=sizes.content.height;if(this.options.rtl){this.dom.content.style.marginRight=2*this.props.dot.width+\"px\"}else{this.dom.content.style.marginLeft=2*this.props.dot.width+\"px\"}this.width=sizes.point.width;this.height=sizes.point.height;this.dom.dot.style.top=(this.height-this.props.dot.height)/2+\"px\";if(this.options.rtl){this.dom.dot.style.right=this.props.dot.width/2+\"px\"}else{this.dom.dot.style.left=this.props.dot.width/2+\"px\"}this.dirty=false};PointItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.point);this._repaintDragCenter();this._repaintDeleteButton(this.dom.point)};PointItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};PointItem.prototype.show=function(){if(!this.displayed){this.redraw()}};PointItem.prototype.hide=function(){if(this.displayed){if(this.dom.point.parentNode){this.dom.point.parentNode.removeChild(this.dom.point)}this.displayed=false}};PointItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);if(this.options.rtl){this.right=start-this.props.dot.width;this.dom.point.style.right=this.right+\"px\"}else{this.left=start-this.props.dot.width;this.dom.point.style.left=this.left+\"px\"}};PointItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var point=this.dom.point;if(orientation==\"top\"){point.style.top=this.top+\"px\"}else{point.style.top=this.parent.height-this.top-this.height+\"px\"}};PointItem.prototype.getWidthLeft=function(){return this.props.dot.width};PointItem.prototype.getWidthRight=function(){return this.props.dot.width};module.exports=PointItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);var BackgroundGroup=__webpack_require__(69);var RangeItem=__webpack_require__(70);function BackgroundItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}BackgroundItem.prototype=new Item(null,null,null);BackgroundItem.prototype.baseClassName=\"vis-item vis-background\";BackgroundItem.prototype.stack=false;BackgroundItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};BackgroundItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dirty=true}};BackgroundItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var background=this.parent.dom.background;if(!background){throw new Error(\"Cannot redraw item: parent has no background container element\")}background.appendChild(this.dom.box)}this.displayed=true};BackgroundItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.content);this._updateStyle(this.dom.box);var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\");this.dom.box.className=this.baseClassName+className}};BackgroundItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.content).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth}}};BackgroundItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=0;this.dirty=false};BackgroundItem.prototype._repaintDomAdditionals=function(){};BackgroundItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BackgroundItem.prototype.show=RangeItem.prototype.show;BackgroundItem.prototype.hide=RangeItem.prototype.hide;BackgroundItem.prototype.repositionX=RangeItem.prototype.repositionX;BackgroundItem.prototype.repositionY=function(margin){var height;var orientation=this.options.orientation.item;if(this.data.subgroup!==undefined){var itemSubgroup=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[itemSubgroup].height+\"px\";if(orientation==\"top\"){this.dom.box.style.top=this.parent.top+this.parent.subgroups[itemSubgroup].top+\"px\"}else{this.dom.box.style.top=this.parent.top+this.parent.height-this.parent.subgroups[itemSubgroup].top-this.parent.subgroups[itemSubgroup].height+\"px\"}this.dom.box.style.bottom=\"\"}else{if(this.parent instanceof BackgroundGroup){height=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height);this.dom.box.style.bottom=orientation==\"bottom\"?\"0\":\"\";this.dom.box.style.top=orientation==\"top\"?\"0\":\"\"}else{height=this.parent.height;this.dom.box.style.top=this.parent.top+\"px\";this.dom.box.style.bottom=\"\"}}this.dom.box.style.height=height+\"px\"};module.exports=BackgroundItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Popup=function(){function Popup(container,overflowMethod){(0,_classCallCheck3[\"default\"])(this,Popup);this.container=container;this.overflowMethod=overflowMethod||\"cap\";this.x=0;this.y=0;this.padding=5;this.hidden=false;this.frame=document.createElement(\"div\");this.frame.className=\"vis-tooltip\";this.container.appendChild(this.frame)}(0,_createClass3[\"default\"])(Popup,[{key:\"setPosition\",value:function setPosition(x,y){this.x=parseInt(x);this.y=parseInt(y)}},{key:\"setText\",value:function setText(content){if(content instanceof Element){this.frame.innerHTML=\"\";this.frame.appendChild(content)}else{this.frame.innerHTML=content}}},{key:\"show\",value:function show(doShow){if(doShow===undefined){doShow=true}if(doShow===true){var height=this.frame.clientHeight;var width=this.frame.clientWidth;var maxHeight=this.frame.parentNode.clientHeight;var maxWidth=this.frame.parentNode.clientWidth;var left=0,top=0;if(this.overflowMethod==\"flip\"){var isLeft=false,isTop=true;if(this.y-height<this.padding){isTop=false}if(this.x+width>maxWidth-this.padding){isLeft=true}if(isLeft){left=this.x-width}else{left=this.x}if(isTop){top=this.y-height}else{top=this.y}}else{top=this.y-height;if(top+height+this.padding>maxHeight){top=maxHeight-height-this.padding}if(top<this.padding){top=this.padding}left=this.x;if(left+width+this.padding>maxWidth){left=maxWidth-width-this.padding}if(left<this.padding){left=this.padding}}this.frame.style.left=left+\"px\";this.frame.style.top=top+\"px\";this.frame.style.visibility=\"visible\";this.hidden=false}else{this.hide()}}},{key:\"hide\",value:function hide(){this.hidden=true;this.frame.style.left=\"0\";this.frame.style.top=\"0\";this.frame.style.visibility=\"hidden\"}},{key:\"destroy\",value:function destroy(){this.frame.parentNode.removeChild(this.frame)}}]);return Popup}();exports[\"default\"]=Popup},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},align:{string:string},rtl:{boolean:bool,undefined:\"undefined\"},rollingMode:{follow:{boolean:bool},offset:{number:number,undefined:\"undefined\"},__type__:{object:object}},verticalScroll:{boolean:bool,undefined:\"undefined\"},horizontalScroll:{boolean:bool,undefined:\"undefined\"},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},dataAttributes:{string:string,array:array},editable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},updateGroup:{boolean:bool,undefined:\"undefined\"},updateTime:{boolean:bool,undefined:\"undefined\"},overrideItems:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},__type__:{object:object}},moment:{function:\"function\"},groupOrder:{string:string,function:\"function\"},groupEditable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},order:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},groupOrderSwap:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},itemsAlwaysDraggable:{item:{boolean:bool,undefined:\"undefined\"},range:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},limitSize:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},margin:{axis:{number:number},item:{horizontal:{number:number,undefined:\"undefined\"},vertical:{number:number,undefined:\"undefined\"},__type__:{object:object,number:number}},__type__:{object:object,number:number}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},multiselectPerGroup:{boolean:bool},onAdd:{function:\"function\"},onDropObjectOnItem:{function:\"function\"},onUpdate:{function:\"function\"},onMove:{function:\"function\"},onMoving:{function:\"function\"},onRemove:{function:\"function\"},onAddGroup:{function:\"function\"},onMoveGroup:{function:\"function\"},onRemoveGroup:{function:\"function\"},onInitialDrawComplete:{function:\"function\"},order:{function:\"function\"},orientation:{axis:{string:string,undefined:\"undefined\"},item:{string:string,undefined:\"undefined\"},__type__:{string:string,object:object}},selectable:{boolean:bool},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},stack:{boolean:bool},stackSubgroups:{boolean:bool},snap:{function:\"function\",null:\"null\"},start:{date:date,number:number,string:string,moment:moment},template:{function:\"function\"},groupTemplate:{function:\"function\"},visibleFrameTemplate:{string:string,function:\"function\"},showTooltips:{boolean:bool},tooltip:{followMouse:{boolean:bool},overflowMethod:{string:[\"cap\",\"flip\"]},__type__:{object:object}},tooltipOnItemUpdateTime:{template:{function:\"function\"},__type__:{boolean:bool,object:object}},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},type:{string:string},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},__type__:{object:object}};var configureOptions={global:{align:[\"center\",\"left\",\"right\"],direction:false,autoResize:true,clickToUse:false,editable:{add:false,remove:false,updateGroup:false,updateTime:false},end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},groupsDraggable:false,height:\"\",locale:\"\",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:false,multiselect:false,multiselectPerGroup:false,orientation:{axis:[\"both\",\"bottom\",\"top\"],item:[\"bottom\",\"top\"]},selectable:true,showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,stack:true,stackSubgroups:true,start:\"\",showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false,type:[\"box\",\"point\",\"range\",\"background\"],width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Component=__webpack_require__(16);var DataAxis=__webpack_require__(107);var GraphGroup=__webpack_require__(109);var Legend=__webpack_require__(112);var Bars=__webpack_require__(110)\n;var Lines=__webpack_require__(111);var Points=__webpack_require__(72);var UNGROUPED=\"__ungrouped__\";function LineGraph(body,options){this.id=util.randomUUID();this.body=body;this.defaultOptions={yAxisOrientation:\"left\",defaultGroup:\"default\",sort:true,sampling:true,stack:false,graphHeight:\"400px\",shaded:{enabled:false,orientation:\"bottom\"},style:\"line\",barChart:{width:50,sideBySide:false,align:\"center\"},interpolation:{enabled:true,parametrization:\"centripetal\",alpha:.5},drawPoints:{enabled:true,size:6,style:\"square\"},dataAxis:{},legend:{},groups:{visibility:{}}};this.options=util.extend({},this.defaultOptions);this.dom={};this.props={};this.hammer=null;this.groups={};this.abortedGraphUpdate=false;this.updateSVGheight=false;this.updateSVGheightOnResize=false;this.forceGraphUpdate=true;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items)},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.selection=[];this.lastStart=this.body.range.start;this.touchParams={};this.svgElements={};this.setOptions(options);this.groupsUsingDefaultStyles=[0];this.body.emitter.on(\"rangechanged\",function(){me.lastStart=me.body.range.start;me.svg.style.left=util.option.asSize(-me.props.width);me.forceGraphUpdate=true;me.redraw.call(me)});this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}LineGraph.prototype=new Component;LineGraph.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-line-graph\";this.dom.frame=frame;this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"relative\";this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\";this.svg.style.display=\"block\";frame.appendChild(this.svg);this.options.dataAxis.orientation=\"left\";this.yAxisLeft=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);this.options.dataAxis.orientation=\"right\";this.yAxisRight=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);delete this.options.dataAxis.orientation;this.legendLeft=new Legend(this.body,this.options.legend,\"left\",this.options.groups);this.legendRight=new Legend(this.body,this.options.legend,\"right\",this.options.groups);this.show()};LineGraph.prototype.setOptions=function(options){if(options){var fields=[\"sampling\",\"defaultGroup\",\"stack\",\"height\",\"graphHeight\",\"yAxisOrientation\",\"style\",\"barChart\",\"dataAxis\",\"sort\",\"groups\"];if(options.graphHeight===undefined&&options.height!==undefined){this.updateSVGheight=true;this.updateSVGheightOnResize=true}else if(this.body.domProps.centerContainer.height!==undefined&&options.graphHeight!==undefined){if(parseInt((options.graphHeight+\"\").replace(\"px\",\"\"))<this.body.domProps.centerContainer.height){this.updateSVGheight=true}}util.selectiveDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");util.mergeOptions(this.options,options,\"legend\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}if(this.yAxisLeft){if(options.dataAxis!==undefined){this.yAxisLeft.setOptions(this.options.dataAxis);this.yAxisRight.setOptions(this.options.dataAxis)}}if(this.legendLeft){if(options.legend!==undefined){this.legendLeft.setOptions(this.options.legend);this.legendRight.setOptions(this.options.legend)}}if(this.groups.hasOwnProperty(UNGROUPED)){this.groups[UNGROUPED].setOptions(options)}}if(this.dom.frame){this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};LineGraph.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};LineGraph.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids)}};LineGraph.prototype.setGroups=function(groups){var me=this;var ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;for(var i=0;i<ids.length;i++){this._removeGroup(ids[i])}}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}};LineGraph.prototype._onUpdate=function(ids){this._updateAllGroupData(ids)};LineGraph.prototype._onAdd=function(ids){this._onUpdate(ids)};LineGraph.prototype._onRemove=function(ids){this._onUpdate(ids)};LineGraph.prototype._onUpdateGroups=function(groupIds){this._updateAllGroupData(null,groupIds)};LineGraph.prototype._onAddGroups=function(groupIds){this._onUpdateGroups(groupIds)};LineGraph.prototype._onRemoveGroups=function(groupIds){for(var i=0;i<groupIds.length;i++){this._removeGroup(groupIds[i])}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})};LineGraph.prototype._removeGroup=function(groupId){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId);this.legendRight.redraw()}else{this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId);this.legendLeft.redraw()}delete this.groups[groupId]}};LineGraph.prototype._updateGroup=function(group,groupId){if(!this.groups.hasOwnProperty(groupId)){this.groups[groupId]=new GraphGroup(group,groupId,this.options,this.groupsUsingDefaultStyles);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.addGroup(groupId,this.groups[groupId]);this.legendRight.addGroup(groupId,this.groups[groupId])}else{this.yAxisLeft.addGroup(groupId,this.groups[groupId]);this.legendLeft.addGroup(groupId,this.groups[groupId])}}else{this.groups[groupId].update(group);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.updateGroup(groupId,this.groups[groupId]);this.legendRight.updateGroup(groupId,this.groups[groupId]);this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId)}else{this.yAxisLeft.updateGroup(groupId,this.groups[groupId]);this.legendLeft.updateGroup(groupId,this.groups[groupId]);this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId)}}this.legendLeft.redraw();this.legendRight.redraw()};LineGraph.prototype._updateAllGroupData=function(ids,groupIds){if(this.itemsData!=null){var groupsContent={};var items=this.itemsData.get();var fieldId=this.itemsData._fieldId;var idMap={};if(ids){ids.map(function(id){idMap[id]=id})}var groupCounts={};for(var i=0;i<items.length;i++){var item=items[i];var groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}groupCounts.hasOwnProperty(groupId)?groupCounts[groupId]++:groupCounts[groupId]=1}var existingItemsMap={};if(!groupIds&&ids){for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){group=this.groups[groupId];var existing_items=group.getItems();groupsContent[groupId]=existing_items.filter(function(item){existingItemsMap[item[fieldId]]=item[fieldId];return item[fieldId]!==idMap[item[fieldId]]});var newLength=groupCounts[groupId];groupCounts[groupId]-=groupsContent[groupId].length;if(groupsContent[groupId].length<newLength){groupsContent[groupId][newLength-1]={}}}}}for(i=0;i<items.length;i++){item=items[i];groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}if(!groupIds&&ids&&item[fieldId]!==idMap[item[fieldId]]&&existingItemsMap.hasOwnProperty(item[fieldId])){continue}if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(groupCounts[groupId])}var extended=util.bridgeObject(item);extended.x=util.convert(item.x,\"Date\");extended.end=util.convert(item.end,\"Date\");extended.orginalY=item.y;extended.y=Number(item.y);extended[fieldId]=item[fieldId];var index=groupsContent[groupId].length-groupCounts[groupId]--;groupsContent[groupId][index]=extended}for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(0)}}}for(groupId in groupsContent){if(groupsContent.hasOwnProperty(groupId)){if(groupsContent[groupId].length==0){if(this.groups.hasOwnProperty(groupId)){this._removeGroup(groupId)}}else{var group=undefined;if(this.groupsData!=undefined){group=this.groupsData.get(groupId)}if(group==undefined){group={id:groupId,content:this.options.defaultGroup+groupId}}this._updateGroup(group,groupId);this.groups[groupId].setItems(groupsContent[groupId])}}}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.redraw=function(){var resized=false;this.props.width=this.dom.frame.offsetWidth;this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom;resized=this._isResized()||resized;var visibleInterval=this.body.range.end-this.body.range.start;var zoomed=visibleInterval!=this.lastVisibleInterval;this.lastVisibleInterval=visibleInterval;if(resized==true){this.svg.style.width=util.option.asSize(3*this.props.width);this.svg.style.left=util.option.asSize(-this.props.width);if((this.options.height+\"\").indexOf(\"%\")!=-1||this.updateSVGheightOnResize==true){this.updateSVGheight=true}}if(this.updateSVGheight==true){if(this.options.graphHeight!=this.props.height+\"px\"){this.options.graphHeight=this.props.height+\"px\";this.svg.style.height=this.props.height+\"px\"}this.updateSVGheight=false}else{this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\"}if(resized==true||zoomed==true||this.abortedGraphUpdate==true||this.forceGraphUpdate==true){resized=this._updateGraph()||resized;this.forceGraphUpdate=false}else{if(this.lastStart!=0){var offset=this.body.range.start-this.lastStart;var range=this.body.range.end-this.body.range.start;if(this.props.width!=0){var rangePerPixelInv=this.props.width/range;var xOffset=offset*rangePerPixelInv;this.svg.style.left=-this.props.width-xOffset+\"px\"}}}this.legendLeft.redraw();this.legendRight.redraw();return resized};LineGraph.prototype._getSortedGroupIds=function(){var grouplist=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];if(group.visible==true&&(this.options.groups.visibility[groupId]===undefined||this.options.groups.visibility[groupId]==true)){grouplist.push({id:groupId,zIndex:group.options.zIndex})}}}util.insertSort(grouplist,function(a,b){var az=a.zIndex;var bz=b.zIndex;if(az===undefined)az=0;if(bz===undefined)bz=0;return az==bz?0:az<bz?-1:1});var groupIds=new Array(grouplist.length);for(var i=0;i<grouplist.length;i++){groupIds[i]=grouplist[i].id}return groupIds};LineGraph.prototype._updateGraph=function(){DOMutil.prepareElements(this.svgElements);if(this.props.width!=0&&this.itemsData!=null){var group,i;var groupRanges={};var changeCalled=false;var minDate=this.body.util.toGlobalTime(-this.body.domProps.root.width);var maxDate=this.body.util.toGlobalTime(2*this.body.domProps.root.width);var groupIds=this._getSortedGroupIds();if(groupIds.length>0){var groupsData={};this._getRelevantData(groupIds,groupsData,minDate,maxDate);this._applySampling(groupIds,groupsData);for(i=0;i<groupIds.length;i++){this._convertXcoordinates(groupsData[groupIds[i]])}this._getYRanges(groupIds,groupsData,groupRanges);changeCalled=this._updateYAxis(groupIds,groupRanges);if(changeCalled==true){DOMutil.cleanupElements(this.svgElements);this.abortedGraphUpdate=true;return true}this.abortedGraphUpdate=false;var below=undefined;for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(this.options.stack===true&&this.options.style===\"line\"){if(group.options.excludeFromStacking==undefined||!group.options.excludeFromStacking){if(below!=undefined){this._stack(groupsData[group.id],groupsData[below.id]);if(group.options.shaded.enabled==true&&group.options.shaded.orientation!==\"group\"){if(group.options.shaded.orientation==\"top\"&&below.options.shaded.orientation!==\"group\"){below.options.shaded.orientation=\"group\";below.options.shaded.groupId=group.id}else{group.options.shaded.orientation=\"group\";group.options.shaded.groupId=below.id}}}below=group}}this._convertYcoordinates(groupsData[groupIds[i]],group)}var paths={};for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.style===\"line\"&&group.options.shaded.enabled==true){var dataset=groupsData[groupIds[i]];if(dataset==null||dataset.length==0){continue}if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(dataset,group)}if(group.options.shaded.orientation===\"group\"){var subGroupId=group.options.shaded.groupId;if(groupIds.indexOf(subGroupId)===-1){console.log(group.id+\": Unknown shading group target given:\"+subGroupId);continue}if(!paths.hasOwnProperty(subGroupId)){paths[subGroupId]=Lines.calcPath(groupsData[subGroupId],this.groups[subGroupId])}Lines.drawShading(paths[groupIds[i]],group,paths[subGroupId],this.framework)}else{Lines.drawShading(paths[groupIds[i]],group,undefined,this.framework)}}}Bars.draw(groupIds,groupsData,this.framework);for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(groupsData[groupIds[i]].length>0){switch(group.options.style){case\"line\":if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(groupsData[groupIds[i]],group)}Lines.draw(paths[groupIds[i]],group,this.framework);case\"point\":case\"points\":if(group.options.style==\"point\"||group.options.style==\"points\"||group.options.drawPoints.enabled==true){Points.draw(groupsData[groupIds[i]],group,this.framework)}break;case\"bar\":default:}}}}}DOMutil.cleanupElements(this.svgElements);return false};LineGraph.prototype._stack=function(data,subData){var index,dx,dy,subPrevPoint,subNextPoint;index=0;for(var j=0;j<data.length;j++){subPrevPoint=undefined;subNextPoint=undefined;for(var k=index;k<subData.length;k++){if(subData[k].x===data[j].x){subPrevPoint=subData[k];subNextPoint=subData[k];index=k;break}else if(subData[k].x>data[j].x){subNextPoint=subData[k];if(k==0){subPrevPoint=subNextPoint}else{subPrevPoint=subData[k-1]}index=k;break}}if(subNextPoint===undefined){subPrevPoint=subData[subData.length-1];subNextPoint=subData[subData.length-1]}dx=subNextPoint.x-subPrevPoint.x;dy=subNextPoint.y-subPrevPoint.y;if(dx==0){data[j].y=data[j].orginalY+subNextPoint.y}else{data[j].y=data[j].orginalY+dy/dx*(data[j].x-subPrevPoint.x)+subPrevPoint.y}}};LineGraph.prototype._getRelevantData=function(groupIds,groupsData,minDate,maxDate){var group,i,j,item;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];var itemsData=group.getItems();if(group.options.sort==true){var dateComparator=function dateComparator(a,b){return a.getTime()==b.getTime()?0:a<b?-1:1};var first=Math.max(0,util.binarySearchValue(itemsData,minDate,\"x\",\"before\",dateComparator));var last=Math.min(itemsData.length,util.binarySearchValue(itemsData,maxDate,\"x\",\"after\",dateComparator)+1);if(last<=0){last=itemsData.length}var dataContainer=new Array(last-first);for(j=first;j<last;j++){item=group.itemsData[j];dataContainer[j-first]=item}groupsData[groupIds[i]]=dataContainer}else{groupsData[groupIds[i]]=group.itemsData}}}};LineGraph.prototype._applySampling=function(groupIds,groupsData){var group;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.sampling==true){var dataContainer=groupsData[groupIds[i]];if(dataContainer.length>0){var increment=1;var amountOfPoints=dataContainer.length;var xDistance=this.body.util.toGlobalScreen(dataContainer[dataContainer.length-1].x)-this.body.util.toGlobalScreen(dataContainer[0].x);var pointsPerPixel=amountOfPoints/xDistance;increment=Math.min(Math.ceil(.2*amountOfPoints),Math.max(1,Math.round(pointsPerPixel)));var sampledData=new Array(amountOfPoints);for(var j=0;j<amountOfPoints;j+=increment){var idx=Math.round(j/increment);sampledData[idx]=dataContainer[j]}groupsData[groupIds[i]]=sampledData.splice(0,Math.round(amountOfPoints/increment))}}}}};LineGraph.prototype._getYRanges=function(groupIds,groupsData,groupRanges){var groupData,group,i;var combinedDataLeft=[];var combinedDataRight=[];var options;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){groupData=groupsData[groupIds[i]];options=this.groups[groupIds[i]].options;if(groupData.length>0){group=this.groups[groupIds[i]];if(options.stack===true&&options.style===\"bar\"){if(options.yAxisOrientation===\"left\"){combinedDataLeft=combinedDataLeft.concat(groupData)}else{combinedDataRight=combinedDataRight.concat(groupData)}}else{groupRanges[groupIds[i]]=group.getYRange(groupData,groupIds[i])}}}Bars.getStackedYRange(combinedDataLeft,groupRanges,groupIds,\"__barStackLeft\",\"left\");Bars.getStackedYRange(combinedDataRight,groupRanges,groupIds,\"__barStackRight\",\"right\")}};LineGraph.prototype._updateYAxis=function(groupIds,groupRanges){var resized=false;var yAxisLeftUsed=false;var yAxisRightUsed=false;var minLeft=1e9,minRight=1e9,maxLeft=-1e9,maxRight=-1e9,minVal,maxVal;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){var group=this.groups[groupIds[i]];if(group&&group.options.yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=1e9;maxLeft=-1e9}else if(group&&group.options.yAxisOrientation){yAxisRightUsed=true;minRight=1e9;maxRight=-1e9}}for(i=0;i<groupIds.length;i++){if(groupRanges.hasOwnProperty(groupIds[i])){if(groupRanges[groupIds[i]].ignore!==true){minVal=groupRanges[groupIds[i]].min;maxVal=groupRanges[groupIds[i]].max;if(groupRanges[groupIds[i]].yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=minLeft>minVal?minVal:minLeft;maxLeft=maxLeft<maxVal?maxVal:maxLeft}else{yAxisRightUsed=true;minRight=minRight>minVal?minVal:minRight;maxRight=maxRight<maxVal?maxVal:maxRight}}}}if(yAxisLeftUsed==true){this.yAxisLeft.setRange(minLeft,maxLeft)}if(yAxisRightUsed==true){this.yAxisRight.setRange(minRight,maxRight)}}resized=this._toggleAxisVisiblity(yAxisLeftUsed,this.yAxisLeft)||resized;resized=this._toggleAxisVisiblity(yAxisRightUsed,this.yAxisRight)||resized;if(yAxisRightUsed==true&&yAxisLeftUsed==true){this.yAxisLeft.drawIcons=true;this.yAxisRight.drawIcons=true}else{this.yAxisLeft.drawIcons=false;this.yAxisRight.drawIcons=false}this.yAxisRight.master=!yAxisLeftUsed;this.yAxisRight.masterAxis=this.yAxisLeft;if(this.yAxisRight.master==false){if(yAxisRightUsed==true){this.yAxisLeft.lineOffset=this.yAxisRight.width}else{this.yAxisLeft.lineOffset=0}resized=this.yAxisLeft.redraw()||resized;resized=this.yAxisRight.redraw()||resized}else{resized=this.yAxisRight.redraw()||resized}var tempGroups=[\"__barStackLeft\",\"__barStackRight\",\"__lineStackLeft\",\"__lineStackRight\"];for(i=0;i<tempGroups.length;i++){if(groupIds.indexOf(tempGroups[i])!=-1){groupIds.splice(groupIds.indexOf(tempGroups[i]),1)}}return resized};LineGraph.prototype._toggleAxisVisiblity=function(axisUsed,axis){var changed=false;if(axisUsed==false){if(axis.dom.frame.parentNode&&axis.hidden==false){axis.hide();changed=true}}else{if(!axis.dom.frame.parentNode&&axis.hidden==true){axis.show();changed=true}}return changed};LineGraph.prototype._convertXcoordinates=function(datapoints){var toScreen=this.body.util.toScreen;for(var i=0;i<datapoints.length;i++){datapoints[i].screen_x=toScreen(datapoints[i].x)+this.props.width;datapoints[i].screen_y=datapoints[i].y;if(datapoints[i].end!=undefined){datapoints[i].screen_end=toScreen(datapoints[i].end)+this.props.width}else{datapoints[i].screen_end=undefined}}};LineGraph.prototype._convertYcoordinates=function(datapoints,group){var axis=this.yAxisLeft;var svgHeight=Number(this.svg.style.height.replace(\"px\",\"\"));if(group.options.yAxisOrientation==\"right\"){axis=this.yAxisRight}for(var i=0;i<datapoints.length;i++){datapoints[i].screen_y=Math.round(axis.convertValue(datapoints[i].y))}group.setZeroPosition(Math.min(svgHeight,axis.convertValue(0)))};module.exports=LineGraph},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);var DataScale=__webpack_require__(108);function DataAxis(body,options,svg,linegraphOptions){this.id=util.randomUUID();this.body=body;this.defaultOptions={orientation:\"left\",showMinorLabels:true,showMajorLabels:true,icons:false,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:\"40px\",visible:true,alignZeros:true,left:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}},right:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}}};this.linegraphOptions=linegraphOptions;this.linegraphSVG=svg;this.props={};this.DOMelements={lines:{},labels:{},title:{}};this.dom={};this.scale=undefined;this.range={start:0,end:0};this.options=util.extend({},this.defaultOptions);this.conversionFactor=1;this.setOptions(options);this.width=Number((\"\"+this.options.width).replace(\"px\",\"\"));this.minWidth=this.width;this.height=this.linegraphSVG.getBoundingClientRect().height;this.hidden=false;this.stepPixels=25;this.zeroCrossing=-1;this.amountOfSteps=-1;this.lineOffset=0;this.master=true;this.masterAxis=null;this.svgElements={};this.iconsRemoved=false;this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var me=this;this.body.emitter.on(\"verticalDrag\",function(){me.dom.lineContainer.style.top=me.body.domProps.scrollTop+\"px\"})}DataAxis.prototype=new Component;DataAxis.prototype.addGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1};DataAxis.prototype.updateGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.amountOfGroups+=1}this.groups[label]=graphOptions};DataAxis.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};DataAxis.prototype.setOptions=function(options){if(options){var redraw=false;if(this.options.orientation!=options.orientation&&options.orientation!==undefined){redraw=true}var fields=[\"orientation\",\"showMinorLabels\",\"showMajorLabels\",\"icons\",\"majorLinesOffset\",\"minorLinesOffset\",\"labelOffsetX\",\"labelOffsetY\",\"iconWidth\",\"width\",\"visible\",\"left\",\"right\",\"alignZeros\"];util.selectiveDeepExtend(fields,this.options,options);this.minWidth=Number((\"\"+this.options.width).replace(\"px\",\"\"));if(redraw===true&&this.dom.frame){this.hide();this.show()}}};DataAxis.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.style.width=this.options.width;this.dom.frame.style.height=this.height;this.dom.lineContainer=document.createElement(\"div\");this.dom.lineContainer.style.width=\"100%\";this.dom.lineContainer.style.height=this.height;this.dom.lineContainer.style.position=\"relative\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=\"0px\";this.svg.style.height=\"100%\";this.svg.style.width=\"100%\";this.svg.style.display=\"block\";this.dom.frame.appendChild(this.svg)};DataAxis.prototype._redrawGroupIcons=function(){DOMutil.prepareElements(this.svgElements);var x;var iconWidth=this.options.iconWidth;var iconHeight=15;var iconOffset=4;var y=iconOffset+.5*iconHeight;if(this.options.orientation===\"left\"){x=iconOffset}else{x=this.width-iconWidth-iconOffset}var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+iconOffset}}DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=false};DataAxis.prototype._cleanupIcons=function(){if(this.iconsRemoved===false){DOMutil.prepareElements(this.svgElements);DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=true}};DataAxis.prototype.show=function(){this.hidden=false;if(!this.dom.frame.parentNode){if(this.options.orientation===\"left\"){this.body.dom.left.appendChild(this.dom.frame)}else{this.body.dom.right.appendChild(this.dom.frame)}}if(!this.dom.lineContainer.parentNode){this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)}};DataAxis.prototype.hide=function(){this.hidden=true;if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.lineContainer.parentNode){this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)}};DataAxis.prototype.setRange=function(start,end){this.range.start=start;this.range.end=end};DataAxis.prototype.redraw=function(){var resized=false;var activeGroups=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+\"px\";for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){activeGroups++}}}if(this.amountOfGroups===0||activeGroups===0){this.hide()}else{this.show();this.height=Number(this.linegraphSVG.style.height.replace(\"px\",\"\"));this.dom.lineContainer.style.height=this.height+\"px\";this.width=this.options.visible===true?Number((\"\"+this.options.width).replace(\"px\",\"\")):0;var props=this.props;var frame=this.dom.frame;frame.className=\"vis-data-axis\";this._calculateCharSize();var orientation=this.options.orientation;var showMinorLabels=this.options.showMinorLabels;var showMajorLabels=this.options.showMajorLabels;props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset;props.minorLineHeight=1;props.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset;props.majorLineHeight=1;if(orientation===\"left\"){frame.style.top=\"0\";frame.style.left=\"0\";frame.style.bottom=\"\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.left.width;this.props.height=this.body.domProps.left.height}else{frame.style.top=\"\";frame.style.bottom=\"0\";frame.style.left=\"0\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.right.width;this.props.height=this.body.domProps.right.height}resized=this._redrawLabels();resized=this._isResized()||resized;if(this.options.icons===true){this._redrawGroupIcons()}else{this._cleanupIcons()}this._redrawTitle(orientation)}return resized};DataAxis.prototype._redrawLabels=function(){var _this=this;var resized=false;DOMutil.prepareElements(this.DOMelements.lines);DOMutil.prepareElements(this.DOMelements.labels);var orientation=this.options[\"orientation\"];var customRange=this.options[orientation].range!=undefined?this.options[orientation].range:{};var autoScaleEnd=true;if(customRange.max!=undefined){this.range.end=customRange.max;autoScaleEnd=false}var autoScaleStart=true;if(customRange.min!=undefined){this.range.start=customRange.min;autoScaleStart=false}this.scale=new DataScale(this.range.start,this.range.end,autoScaleStart,autoScaleEnd,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[orientation].format);if(this.master===false&&this.masterAxis!=undefined){this.scale.followScale(this.masterAxis.scale)}this.maxLabelSize=0;var lines=this.scale.getLines();lines.forEach(function(line){var y=line.y;var isMajor=line.major;if(_this.options[\"showMinorLabels\"]&&isMajor===false){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-minor\",_this.props.minorCharHeight)}if(isMajor){if(y>=0){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-major\",_this.props.majorCharHeight)}}if(_this.master===true){if(isMajor){_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-major\",_this.options.majorLinesOffset,_this.props.majorLineWidth)}else{_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-minor\",_this.options.minorLinesOffset,_this.props.minorLineWidth)}}});var titleWidth=0;if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){titleWidth=this.props.titleCharHeight}var offset=this.options.icons===true?Math.max(this.options.iconWidth,titleWidth)+this.options.labelOffsetX+15:titleWidth+this.options.labelOffsetX+15;if(this.maxLabelSize>this.width-offset&&this.options.visible===true){this.width=this.maxLabelSize+offset;this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else if(this.maxLabelSize<this.width-offset&&this.options.visible===true&&this.width>this.minWidth){this.width=Math.max(this.minWidth,this.maxLabelSize+offset);this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else{DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);resized=false}return resized};DataAxis.prototype.convertValue=function(value){return this.scale.convertValue(value)};DataAxis.prototype.screenToValue=function(x){return this.scale.screenToValue(x)};DataAxis.prototype._redrawLabel=function(y,text,orientation,className,characterHeight){var label=DOMutil.getDOMElement(\"div\",this.DOMelements.labels,this.dom.frame);label.className=className;label.innerHTML=text;if(orientation===\"left\"){label.style.left=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"right\"}else{label.style.right=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"left\"}label.style.top=y-.5*characterHeight+this.options.labelOffsetY+\"px\";text+=\"\";var largestWidth=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);if(this.maxLabelSize<text.length*largestWidth){this.maxLabelSize=text.length*largestWidth}};DataAxis.prototype._redrawLine=function(y,orientation,className,offset,width){if(this.master===true){\nvar line=DOMutil.getDOMElement(\"div\",this.DOMelements.lines,this.dom.lineContainer);line.className=className;line.innerHTML=\"\";if(orientation===\"left\"){line.style.left=this.width-offset+\"px\"}else{line.style.right=this.width-offset+\"px\"}line.style.width=width+\"px\";line.style.top=y+\"px\"}};DataAxis.prototype._redrawTitle=function(orientation){DOMutil.prepareElements(this.DOMelements.title);if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){var title=DOMutil.getDOMElement(\"div\",this.DOMelements.title,this.dom.frame);title.className=\"vis-y-axis vis-title vis-\"+orientation;title.innerHTML=this.options[orientation].title.text;if(this.options[orientation].title.style!==undefined){util.addCssText(title,this.options[orientation].title.style)}if(orientation===\"left\"){title.style.left=this.props.titleCharHeight+\"px\"}else{title.style.right=this.props.titleCharHeight+\"px\"}title.style.width=this.height+\"px\"}DOMutil.cleanupElements(this.DOMelements.title)};DataAxis.prototype._calculateCharSize=function(){if(!(\"minorCharHeight\"in this.props)){var textMinor=document.createTextNode(\"0\");var measureCharMinor=document.createElement(\"div\");measureCharMinor.className=\"vis-y-axis vis-minor vis-measure\";measureCharMinor.appendChild(textMinor);this.dom.frame.appendChild(measureCharMinor);this.props.minorCharHeight=measureCharMinor.clientHeight;this.props.minorCharWidth=measureCharMinor.clientWidth;this.dom.frame.removeChild(measureCharMinor)}if(!(\"majorCharHeight\"in this.props)){var textMajor=document.createTextNode(\"0\");var measureCharMajor=document.createElement(\"div\");measureCharMajor.className=\"vis-y-axis vis-major vis-measure\";measureCharMajor.appendChild(textMajor);this.dom.frame.appendChild(measureCharMajor);this.props.majorCharHeight=measureCharMajor.clientHeight;this.props.majorCharWidth=measureCharMajor.clientWidth;this.dom.frame.removeChild(measureCharMajor)}if(!(\"titleCharHeight\"in this.props)){var textTitle=document.createTextNode(\"0\");var measureCharTitle=document.createElement(\"div\");measureCharTitle.className=\"vis-y-axis vis-title vis-measure\";measureCharTitle.appendChild(textTitle);this.dom.frame.appendChild(measureCharTitle);this.props.titleCharHeight=measureCharTitle.clientHeight;this.props.titleCharWidth=measureCharTitle.clientWidth;this.dom.frame.removeChild(measureCharTitle)}};module.exports=DataAxis},function(module,exports,__webpack_require__){\"use strict\";function DataScale(start,end,autoScaleStart,autoScaleEnd,containerHeight,majorCharHeight){var zeroAlign=arguments.length>6&&arguments[6]!==undefined?arguments[6]:false;var formattingFunction=arguments.length>7&&arguments[7]!==undefined?arguments[7]:false;this.majorSteps=[1,2,5,10];this.minorSteps=[.25,.5,1,2];this.customLines=null;this.containerHeight=containerHeight;this.majorCharHeight=majorCharHeight;this._start=start;this._end=end;this.scale=1;this.minorStepIdx=-1;this.magnitudefactor=1;this.determineScale();this.zeroAlign=zeroAlign;this.autoScaleStart=autoScaleStart;this.autoScaleEnd=autoScaleEnd;this.formattingFunction=formattingFunction;if(autoScaleStart||autoScaleEnd){var me=this;var roundToMinor=function roundToMinor(value){var rounded=value-value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx]);if(value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx])>.5*(me.magnitudefactor*me.minorSteps[me.minorStepIdx])){return rounded+me.magnitudefactor*me.minorSteps[me.minorStepIdx]}else{return rounded}};if(autoScaleStart){this._start-=this.magnitudefactor*2*this.minorSteps[this.minorStepIdx];this._start=roundToMinor(this._start)}if(autoScaleEnd){this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx];this._end=roundToMinor(this._end)}this.determineScale()}}DataScale.prototype.setCharHeight=function(majorCharHeight){this.majorCharHeight=majorCharHeight};DataScale.prototype.setHeight=function(containerHeight){this.containerHeight=containerHeight};DataScale.prototype.determineScale=function(){var range=this._end-this._start;this.scale=this.containerHeight/range;var minimumStepValue=this.majorCharHeight/this.scale;var orderOfMagnitude=range>0?Math.round(Math.log(range)/Math.LN10):0;this.minorStepIdx=-1;this.magnitudefactor=Math.pow(10,orderOfMagnitude);var start=0;if(orderOfMagnitude<0){start=orderOfMagnitude}var solutionFound=false;for(var l=start;Math.abs(l)<=Math.abs(orderOfMagnitude);l++){this.magnitudefactor=Math.pow(10,l);for(var j=0;j<this.minorSteps.length;j++){var stepSize=this.magnitudefactor*this.minorSteps[j];if(stepSize>=minimumStepValue){solutionFound=true;this.minorStepIdx=j;break}}if(solutionFound===true){break}}};DataScale.prototype.is_major=function(value){return value%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0};DataScale.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]};DataScale.prototype.getFirstMajor=function(){var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(majorStep-this._start%majorStep)%majorStep)};DataScale.prototype.formatValue=function(current){var returnValue=current.toPrecision(5);if(typeof this.formattingFunction===\"function\"){returnValue=this.formattingFunction(current)}if(typeof returnValue===\"number\"){return\"\"+returnValue}else if(typeof returnValue===\"string\"){return returnValue}else{return current.toPrecision(5)}};DataScale.prototype.getLines=function(){var lines=[];var step=this.getStep();var bottomOffset=(step-this._start%step)%step;for(var i=this._start+bottomOffset;this._end-i>1e-5;i+=step){if(i!=this._start){lines.push({major:this.is_major(i),y:this.convertValue(i),val:this.formatValue(i)})}}return lines};DataScale.prototype.followScale=function(other){var oldStepIdx=this.minorStepIdx;var oldStart=this._start;var oldEnd=this._end;var me=this;var increaseMagnitude=function increaseMagnitude(){me.magnitudefactor*=2};var decreaseMagnitude=function decreaseMagnitude(){me.magnitudefactor/=2};if(other.minorStepIdx<=1&&this.minorStepIdx<=1||other.minorStepIdx>1&&this.minorStepIdx>1){}else if(other.minorStepIdx<this.minorStepIdx){this.minorStepIdx=1;if(oldStepIdx==2){increaseMagnitude()}else{increaseMagnitude();increaseMagnitude()}}else{this.minorStepIdx=2;if(oldStepIdx==1){decreaseMagnitude()}else{decreaseMagnitude();decreaseMagnitude()}}var otherZero=other.convertValue(0);var otherStep=other.getStep()*other.scale;var done=false;var count=0;while(!done&&count++<5){this.scale=otherStep/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var newRange=this.containerHeight/this.scale;this._start=oldStart;this._end=this._start+newRange;var myOriginalZero=this._end*this.scale;var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];var majorOffset=this.getFirstMajor()-other.getFirstMajor();if(this.zeroAlign){var zeroOffset=otherZero-myOriginalZero;this._end+=zeroOffset/this.scale;this._start=this._end-newRange}else{if(!this.autoScaleStart){this._start+=majorStep-majorOffset/this.scale;this._end=this._start+newRange}else{this._start-=majorOffset/this.scale;this._end=this._start+newRange}}if(!this.autoScaleEnd&&this._end>oldEnd+1e-5){decreaseMagnitude();done=false;continue}if(!this.autoScaleStart&&this._start<oldStart-1e-5){if(this.zeroAlign&&oldStart>=0){console.warn(\"Can't adhere to given 'min' range, due to zeroalign\")}else{decreaseMagnitude();done=false;continue}}if(this.autoScaleStart&&this.autoScaleEnd&&newRange<oldEnd-oldStart){increaseMagnitude();done=false;continue}done=true}};DataScale.prototype.convertValue=function(value){return this.containerHeight-(value-this._start)*this.scale};DataScale.prototype.screenToValue=function(pixels){return(this.containerHeight-pixels)/this.scale+this._start};module.exports=DataScale},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Bars=__webpack_require__(110);var Lines=__webpack_require__(111);var Points=__webpack_require__(72);function GraphGroup(group,groupId,options,groupsUsingDefaultStyles){this.id=groupId;var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"drawPoints\",\"shaded\",\"interpolation\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];this.options=util.selectiveBridgeObject(fields,options);this.usingDefaultStyle=group.className===undefined;this.groupsUsingDefaultStyles=groupsUsingDefaultStyles;this.zeroPosition=0;this.update(group);if(this.usingDefaultStyle==true){this.groupsUsingDefaultStyles[0]+=1}this.itemsData=[];this.visible=group.visible===undefined?true:group.visible}GraphGroup.prototype.setItems=function(items){if(items!=null){this.itemsData=items;if(this.options.sort==true){util.insertSort(this.itemsData,function(a,b){return a.x>b.x?1:-1})}}else{this.itemsData=[]}};GraphGroup.prototype.getItems=function(){return this.itemsData};GraphGroup.prototype.setZeroPosition=function(pos){this.zeroPosition=pos};GraphGroup.prototype.setOptions=function(options){if(options!==undefined){var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];util.selectiveDeepExtend(fields,this.options,options);if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}}};GraphGroup.prototype.update=function(group){this.group=group;this.content=group.content||\"graph\";this.className=group.className||this.className||\"vis-graph-group\"+this.groupsUsingDefaultStyles[0]%10;this.visible=group.visible===undefined?true:group.visible;this.style=group.style;this.setOptions(group.options)};GraphGroup.prototype.getLegend=function(iconWidth,iconHeight,framework,x,y){if(framework==undefined||framework==null){var svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");framework={svg:svg,svgElements:{},options:this.options,groups:[this]}}if(x==undefined||x==null){x=0}if(y==undefined||y==null){y=.5*iconHeight}switch(this.options.style){case\"line\":Lines.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"points\":case\"point\":Points.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"bar\":Bars.drawIcon(this,x,y,iconWidth,iconHeight,framework);break}return{icon:framework.svg,label:this.content,orientation:this.options.yAxisOrientation}};GraphGroup.prototype.getYRange=function(groupData){var yMin=groupData[0].y;var yMax=groupData[0].y;for(var j=0;j<groupData.length;j++){yMin=yMin>groupData[j].y?groupData[j].y:yMin;yMax=yMax<groupData[j].y?groupData[j].y:yMax}return{min:yMin,max:yMax,yAxisOrientation:this.options.yAxisOrientation}};module.exports=GraphGroup},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);var Points=__webpack_require__(72);function Bargraph(groupId,options){}Bargraph.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");var barWidth=Math.round(.3*iconWidth);var originalWidth=group.options.barChart.width;var scale=originalWidth/barWidth;var bar1Height=Math.round(.4*iconHeight);var bar2Height=Math.round(.75*iconHeight);var offset=Math.round((iconWidth-2*barWidth)/3);DOMutil.drawBar(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,barWidth,bar1Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);DOMutil.drawBar(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,barWidth,bar2Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size/scale,className:group.className};DOMutil.drawPoint(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,groupTemplate,framework.svgElements,framework.svg);DOMutil.drawPoint(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,groupTemplate,framework.svgElements,framework.svg)}};Bargraph.draw=function(groupIds,processedGroupData,framework){var combinedData=[];var intersections={};var coreDistance;var key,drawData;var group;var i,j;var barPoints=0;for(i=0;i<groupIds.length;i++){group=framework.groups[groupIds[i]];if(group.options.style===\"bar\"){if(group.visible===true&&(framework.options.groups.visibility[groupIds[i]]===undefined||framework.options.groups.visibility[groupIds[i]]===true)){for(j=0;j<processedGroupData[groupIds[i]].length;j++){combinedData.push({screen_x:processedGroupData[groupIds[i]][j].screen_x,screen_end:processedGroupData[groupIds[i]][j].screen_end,screen_y:processedGroupData[groupIds[i]][j].screen_y,x:processedGroupData[groupIds[i]][j].x,end:processedGroupData[groupIds[i]][j].end,y:processedGroupData[groupIds[i]][j].y,groupId:groupIds[i],label:processedGroupData[groupIds[i]][j].label});barPoints+=1}}}}if(barPoints===0){return}combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});Bargraph._getDataIntersections(intersections,combinedData);for(i=0;i<combinedData.length;i++){group=framework.groups[combinedData[i].groupId];var minWidth=group.options.barChart.minWidth!=undefined?group.options.barChart.minWidth:.1*group.options.barChart.width;key=combinedData[i].screen_x;var heightOffset=0;if(intersections[key]===undefined){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth)}else{var nextKey=i+(intersections[key].amount-intersections[key].resolved);if(nextKey<combinedData.length){coreDistance=Math.abs(combinedData[nextKey].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth);intersections[key].resolved+=1;if(group.options.stack===true&&group.options.excludeFromStacking!==true){if(combinedData[i].screen_y<group.zeroPosition){heightOffset=intersections[key].accumulatedNegative;intersections[key].accumulatedNegative+=group.zeroPosition-combinedData[i].screen_y}else{heightOffset=intersections[key].accumulatedPositive;intersections[key].accumulatedPositive+=group.zeroPosition-combinedData[i].screen_y}}else if(group.options.barChart.sideBySide===true){drawData.width=drawData.width/intersections[key].amount;drawData.offset+=intersections[key].resolved*drawData.width-.5*drawData.width*(intersections[key].amount+1)}}var dataWidth=drawData.width;var start=combinedData[i].screen_x;if(combinedData[i].screen_end!=undefined){dataWidth=combinedData[i].screen_end-combinedData[i].screen_x;start+=dataWidth*.5}else{start+=drawData.offset}DOMutil.drawBar(start,combinedData[i].screen_y-heightOffset,dataWidth,group.zeroPosition-combinedData[i].screen_y,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled===true){var pointData={screen_x:combinedData[i].screen_x,screen_y:combinedData[i].screen_y-heightOffset,x:combinedData[i].x,y:combinedData[i].y,groupId:combinedData[i].groupId,label:combinedData[i].label};Points.draw([pointData],group,framework,drawData.offset)}}};Bargraph._getDataIntersections=function(intersections,combinedData){var coreDistance;for(var i=0;i<combinedData.length;i++){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-combinedData[i].screen_x)}if(i>0){coreDistance=Math.min(coreDistance,Math.abs(combinedData[i-1].screen_x-combinedData[i].screen_x))}if(coreDistance===0){if(intersections[combinedData[i].screen_x]===undefined){intersections[combinedData[i].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}}intersections[combinedData[i].screen_x].amount+=1}}};Bargraph._getSafeDrawData=function(coreDistance,group,minWidth){var width,offset;if(coreDistance<group.options.barChart.width&&coreDistance>0){width=coreDistance<minWidth?minWidth:coreDistance;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*coreDistance}else if(group.options.barChart.align===\"right\"){offset+=.5*coreDistance}}else{width=group.options.barChart.width;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*group.options.barChart.width}else if(group.options.barChart.align===\"right\"){offset+=.5*group.options.barChart.width}}return{width:width,offset:offset}};Bargraph.getStackedYRange=function(combinedData,groupRanges,groupIds,groupLabel,orientation){if(combinedData.length>0){combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});var intersections={};Bargraph._getDataIntersections(intersections,combinedData);groupRanges[groupLabel]=Bargraph._getStackedYRange(intersections,combinedData);groupRanges[groupLabel].yAxisOrientation=orientation;groupIds.push(groupLabel)}};Bargraph._getStackedYRange=function(intersections,combinedData){var key;var yMin=combinedData[0].screen_y;var yMax=combinedData[0].screen_y;for(var i=0;i<combinedData.length;i++){key=combinedData[i].screen_x;if(intersections[key]===undefined){yMin=yMin>combinedData[i].screen_y?combinedData[i].screen_y:yMin;yMax=yMax<combinedData[i].screen_y?combinedData[i].screen_y:yMax}else{if(combinedData[i].screen_y<0){intersections[key].accumulatedNegative+=combinedData[i].screen_y}else{intersections[key].accumulatedPositive+=combinedData[i].screen_y}}}for(var xpos in intersections){if(intersections.hasOwnProperty(xpos)){yMin=yMin>intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMin;yMin=yMin>intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMin;yMax=yMax<intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMax;yMax=yMax<intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMax}}return{min:yMin,max:yMax}};module.exports=Bargraph},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);function Line(groupId,options){}Line.calcPath=function(dataset,group){if(dataset!=null){if(dataset.length>0){var d=[];if(group.options.interpolation.enabled==true){d=Line._catmullRom(dataset,group)}else{d=Line._linear(dataset)}return d}}};Line.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var path,fillPath;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}path.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\"\");if(group.options.shaded.enabled==true){fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);if(group.options.shaded.orientation==\"top\"){fillPath.setAttributeNS(null,\"d\",\"M\"+x+\", \"+(y-fillHeight)+\"L\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\" L\"+(x+iconWidth)+\",\"+(y-fillHeight))}else{fillPath.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" \"+\"L\"+x+\",\"+(y+fillHeight)+\" \"+\"L\"+(x+iconWidth)+\",\"+(y+fillHeight)+\"L\"+(x+iconWidth)+\",\"+y)}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-icon-fill\");if(group.options.shaded.style!==undefined&&group.options.shaded.style!==\"\"){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}}if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size,className:group.className};DOMutil.drawPoint(x+.5*iconWidth,y,groupTemplate,framework.svgElements,framework.svg)}};Line.drawShading=function(pathArray,group,subPathArray,framework){if(group.options.shaded.enabled==true){var svgHeight=Number(framework.svg.style.height.replace(\"px\",\"\"));var fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}var dFill;var zero=0;if(group.options.shaded.orientation==\"top\"){zero=0}else if(group.options.shaded.orientation==\"bottom\"){zero=svgHeight}else{zero=Math.min(Math.max(0,group.zeroPosition),svgHeight)}if(group.options.shaded.orientation==\"group\"&&subPathArray!=null&&subPathArray!=undefined){dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" L\"+subPathArray[subPathArray.length-1][0]+\",\"+subPathArray[subPathArray.length-1][1]+\" \"+this.serializePath(subPathArray,type,true)+subPathArray[0][0]+\",\"+subPathArray[0][1]+\" Z\"}else{dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" V\"+zero+\" H\"+pathArray[0][0]+\" Z\"}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-fill\");if(group.options.shaded.style!==undefined){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}fillPath.setAttributeNS(null,\"d\",dFill)}};Line.draw=function(pathArray,group,framework){if(pathArray!=null&&pathArray!=undefined){var path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}path.setAttributeNS(null,\"d\",\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false))}};Line.serializePath=function(pathArray,type,inverse){if(pathArray.length<2){return\"\"}var d=type;var i;if(inverse){for(i=pathArray.length-2;i>0;i--){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}else{for(i=1;i<pathArray.length;i++){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}return d};Line._catmullRomUniform=function(data){var p0,p1,p2,p3,bp1,bp2;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var normalization=1/6;var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;bp1={screen_x:(-p0.screen_x+6*p1.screen_x+p2.screen_x)*normalization,screen_y:(-p0.screen_y+6*p1.screen_y+p2.screen_y)*normalization};bp2={screen_x:(p1.screen_x+6*p2.screen_x-p3.screen_x)*normalization,screen_y:(p1.screen_y+6*p2.screen_y-p3.screen_y)*normalization};d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d};Line._catmullRom=function(data,group){var alpha=group.options.interpolation.alpha;if(alpha==0||alpha===undefined){return this._catmullRomUniform(data)}else{var p0,p1,p2,p3,bp1,bp2,d1,d2,d3,A,B,N,M;var d3powA,d2powA,d3pow2A,d2pow2A,d1pow2A,d1powA;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;d1=Math.sqrt(Math.pow(p0.screen_x-p1.screen_x,2)+Math.pow(p0.screen_y-p1.screen_y,2));d2=Math.sqrt(Math.pow(p1.screen_x-p2.screen_x,2)+Math.pow(p1.screen_y-p2.screen_y,2));d3=Math.sqrt(Math.pow(p2.screen_x-p3.screen_x,2)+Math.pow(p2.screen_y-p3.screen_y,2));d3powA=Math.pow(d3,alpha);d3pow2A=Math.pow(d3,2*alpha);d2powA=Math.pow(d2,alpha);d2pow2A=Math.pow(d2,2*alpha);d1powA=Math.pow(d1,alpha);d1pow2A=Math.pow(d1,2*alpha);A=2*d1pow2A+3*d1powA*d2powA+d2pow2A;B=2*d3pow2A+3*d3powA*d2powA+d2pow2A;N=3*d1powA*(d1powA+d2powA);if(N>0){N=1/N}M=3*d3powA*(d3powA+d2powA);if(M>0){M=1/M}bp1={screen_x:(-d2pow2A*p0.screen_x+A*p1.screen_x+d1pow2A*p2.screen_x)*N,screen_y:(-d2pow2A*p0.screen_y+A*p1.screen_y+d1pow2A*p2.screen_y)*N};bp2={screen_x:(d3pow2A*p1.screen_x+B*p2.screen_x-d2pow2A*p3.screen_x)*M,screen_y:(d3pow2A*p1.screen_y+B*p2.screen_y-d2pow2A*p3.screen_y)*M};if(bp1.screen_x==0&&bp1.screen_y==0){bp1=p1}if(bp2.screen_x==0&&bp2.screen_y==0){bp2=p2}d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d}};Line._linear=function(data){var d=[];for(var i=0;i<data.length;i++){d.push([data[i].screen_x,data[i].screen_y])}return d};module.exports=Line},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);function Legend(body,options,side,linegraphOptions){this.body=body;this.defaultOptions={enabled:false,icons:true,iconSize:20,iconSpacing:6,left:{visible:true,position:\"top-left\"},right:{visible:true,position:\"top-right\"}};this.side=side;this.options=util.extend({},this.defaultOptions);this.linegraphOptions=linegraphOptions;this.svgElements={};this.dom={};this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};this.setOptions(options)}Legend.prototype=new Component;Legend.prototype.clear=function(){this.groups={};this.amountOfGroups=0};Legend.prototype.addGroup=function(label,graphOptions){if(graphOptions.options.excludeFromLegend!=true){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1}};Legend.prototype.updateGroup=function(label,graphOptions){this.groups[label]=graphOptions};Legend.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};Legend.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-legend\";this.dom.frame.style.position=\"absolute\";this.dom.frame.style.top=\"10px\";this.dom.frame.style.display=\"block\";this.dom.textArea=document.createElement(\"div\");this.dom.textArea.className=\"vis-legend-text\";this.dom.textArea.style.position=\"relative\";this.dom.textArea.style.top=\"0px\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=0+\"px\";this.svg.style.width=this.options.iconSize+5+\"px\";this.svg.style.height=\"100%\";this.dom.frame.appendChild(this.svg);this.dom.frame.appendChild(this.dom.textArea)};Legend.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};Legend.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};Legend.prototype.setOptions=function(options){var fields=[\"enabled\",\"orientation\",\"icons\",\"left\",\"right\"];util.selectiveDeepExtend(fields,this.options,options)};Legend.prototype.redraw=function(){var activeGroups=0;var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){activeGroups++}}if(this.options[this.side].visible==false||this.amountOfGroups==0||this.options.enabled==false||activeGroups==0){this.hide()}else{this.show();if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"bottom-left\"){this.dom.frame.style.left=\"4px\";this.dom.frame.style.textAlign=\"left\";this.dom.textArea.style.textAlign=\"left\";this.dom.textArea.style.left=this.options.iconSize+15+\"px\";this.dom.textArea.style.right=\"\";this.svg.style.left=0+\"px\";this.svg.style.right=\"\"}else{this.dom.frame.style.right=\"4px\";this.dom.frame.style.textAlign=\"right\";this.dom.textArea.style.textAlign=\"right\";this.dom.textArea.style.right=this.options.iconSize+15+\"px\";this.dom.textArea.style.left=\"\";this.svg.style.right=0+\"px\";this.svg.style.left=\"\"}if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"top-right\"){this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.bottom=\"\"}else{var scrollableHeight=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+scrollableHeight+Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.top=\"\"}if(this.options.icons==false){this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+\"px\";this.dom.textArea.style.right=\"\";this.dom.textArea.style.left=\"\";this.svg.style.width=\"0px\"}else{this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+\"px\";this.drawLegendIcons()}var content=\"\";for(i=0;i<groupArray.length;i++){groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){content+=this.groups[groupId].content+\"<br />\"}}this.dom.textArea.innerHTML=content;this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+\"px\"}};Legend.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});DOMutil.resetElements(this.svgElements);var padding=window.getComputedStyle(this.dom.frame).paddingTop;var iconOffset=Number(padding.replace(\"px\",\"\"));var x=iconOffset;var iconWidth=this.options.iconSize;var iconHeight=.75*this.options.iconSize;var y=iconOffset+.5*iconHeight+3;this.svg.style.width=iconWidth+5+iconOffset+\"px\";for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+this.options.iconSpacing}}}};module.exports=Legend},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},yAxisOrientation:{string:[\"left\",\"right\"]},defaultGroup:{string:string},sort:{boolean:bool},sampling:{boolean:bool},stack:{boolean:bool},graphHeight:{string:string,number:number},shaded:{enabled:{boolean:bool},orientation:{string:[\"bottom\",\"top\",\"zero\",\"group\"]},groupId:{object:object},__type__:{boolean:bool,object:object}},style:{string:[\"line\",\"bar\",\"points\"]},barChart:{width:{number:number},minWidth:{number:number},sideBySide:{boolean:bool},align:{string:[\"left\",\"center\",\"right\"]},__type__:{object:object}},interpolation:{enabled:{boolean:bool},parametrization:{string:[\"centripetal\",\"chordal\",\"uniform\"]},alpha:{number:number},__type__:{object:object,boolean:bool}},drawPoints:{enabled:{boolean:bool},onRender:{function:\"function\"},size:{number:number},style:{string:[\"square\",\"circle\"]},__type__:{object:object,boolean:bool,function:\"function\"}},dataAxis:{showMinorLabels:{boolean:bool},showMajorLabels:{boolean:bool},icons:{boolean:bool},width:{string:string,number:number},visible:{boolean:bool},alignZeros:{boolean:bool},left:{range:{min:{\nnumber:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},right:{range:{min:{number:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},__type__:{object:object}},legend:{enabled:{boolean:bool},icons:{boolean:bool},left:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},right:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},__type__:{object:object,boolean:bool}},groups:{visibility:{any:any},__type__:{object:object}},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},moment:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},orientation:{string:string},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},start:{date:date,number:number,string:string,moment:moment},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},zIndex:{number:number},__type__:{object:object}};var configureOptions={global:{sort:true,sampling:true,stack:false,shaded:{enabled:false,orientation:[\"zero\",\"top\",\"bottom\",\"group\"]},style:[\"line\",\"bar\",\"points\"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:false,align:[\"left\",\"center\",\"right\"]},interpolation:{enabled:true,parametrization:[\"centripetal\",\"chordal\",\"uniform\"]},drawPoints:{enabled:true,size:[6,2,30,1],style:[\"square\",\"circle\"]},dataAxis:{showMinorLabels:true,showMajorLabels:true,icons:false,width:[40,0,200,1],visible:true,alignZeros:true,left:{title:{text:\"\",style:\"\"}},right:{title:{text:\"\",style:\"\"}}},legend:{enabled:false,icons:true,left:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},right:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]}},autoResize:true,clickToUse:false,end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},height:\"\",locale:\"\",max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:true,orientation:[\"both\",\"bottom\",\"top\"],showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,start:\"\",width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function parseDOT(data){dot=data;return parseGraph()}var NODE_ATTR_MAPPING={fontsize:\"font.size\",fontcolor:\"font.color\",labelfontcolor:\"font.color\",fontname:\"font.face\",color:[\"color.border\",\"color.background\"],fillcolor:\"color.background\",tooltip:\"title\",labeltooltip:\"title\"};var EDGE_ATTR_MAPPING=(0,_create2[\"default\"])(NODE_ATTR_MAPPING);EDGE_ATTR_MAPPING.color=\"color.color\";EDGE_ATTR_MAPPING.style=\"dashes\";var TOKENTYPE={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3};var DELIMITERS={\"{\":true,\"}\":true,\"[\":true,\"]\":true,\";\":true,\"=\":true,\",\":true,\"->\":true,\"--\":true};var dot=\"\";var index=0;var c=\"\";var token=\"\";var tokenType=TOKENTYPE.NULL;function first(){index=0;c=dot.charAt(0)}function next(){index++;c=dot.charAt(index)}function nextPreview(){return dot.charAt(index+1)}var regexAlphaNumeric=/[a-zA-Z_0-9.:#]/;function isAlphaNumeric(c){return regexAlphaNumeric.test(c)}function merge(a,b){if(!a){a={}}if(b){for(var name in b){if(b.hasOwnProperty(name)){a[name]=b[name]}}}return a}function setValue(obj,path,value){var keys=path.split(\".\");var o=obj;while(keys.length){var key=keys.shift();if(keys.length){if(!o[key]){o[key]={}}o=o[key]}else{o[key]=value}}}function addNode(graph,node){var i,len;var current=null;var graphs=[graph];var root=graph;while(root.parent){graphs.push(root.parent);root=root.parent}if(root.nodes){for(i=0,len=root.nodes.length;i<len;i++){if(node.id===root.nodes[i].id){current=root.nodes[i];break}}}if(!current){current={id:node.id};if(graph.node){current.attr=merge(current.attr,graph.node)}}for(i=graphs.length-1;i>=0;i--){var g=graphs[i];if(!g.nodes){g.nodes=[]}if(g.nodes.indexOf(current)===-1){g.nodes.push(current)}}if(node.attr){current.attr=merge(current.attr,node.attr)}}function addEdge(graph,edge){if(!graph.edges){graph.edges=[]}graph.edges.push(edge);if(graph.edge){var attr=merge({},graph.edge);edge.attr=merge(attr,edge.attr)}}function createEdge(graph,from,to,type,attr){var edge={from:from,to:to,type:type};if(graph.edge){edge.attr=merge({},graph.edge)}edge.attr=merge(edge.attr||{},attr);return edge}function getToken(){tokenType=TOKENTYPE.NULL;token=\"\";while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}do{var isComment=false;if(c===\"#\"){var i=index-1;while(dot.charAt(i)===\" \"||dot.charAt(i)===\"\\t\"){i--}if(dot.charAt(i)===\"\\n\"||dot.charAt(i)===\"\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}}if(c===\"/\"&&nextPreview()===\"/\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}if(c===\"/\"&&nextPreview()===\"*\"){while(c!=\"\"){if(c===\"*\"&&nextPreview()===\"/\"){next();next();break}else{next()}}isComment=true}while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}}while(isComment);if(c===\"\"){tokenType=TOKENTYPE.DELIMITER;return}var c2=c+nextPreview();if(DELIMITERS[c2]){tokenType=TOKENTYPE.DELIMITER;token=c2;next();next();return}if(DELIMITERS[c]){tokenType=TOKENTYPE.DELIMITER;token=c;next();return}if(isAlphaNumeric(c)||c===\"-\"){token+=c;next();while(isAlphaNumeric(c)){token+=c;next()}if(token===\"false\"){token=false}else if(token===\"true\"){token=true}else if(!isNaN(Number(token))){token=Number(token)}tokenType=TOKENTYPE.IDENTIFIER;return}if(c==='\"'){next();while(c!=\"\"&&(c!='\"'||c==='\"'&&nextPreview()==='\"')){if(c==='\"'){token+=c;next()}else if(c===\"\\\\\"&&nextPreview()===\"n\"){token+=\"\\n\";next()}else{token+=c}next()}if(c!='\"'){throw newSyntaxError('End of string \" expected')}next();tokenType=TOKENTYPE.IDENTIFIER;return}tokenType=TOKENTYPE.UNKNOWN;while(c!=\"\"){token+=c;next()}throw new SyntaxError('Syntax error in part \"'+chop(token,30)+'\"')}function parseGraph(){var graph={};first();getToken();if(token===\"strict\"){graph.strict=true;getToken()}if(token===\"graph\"||token===\"digraph\"){graph.type=token;getToken()}if(tokenType===TOKENTYPE.IDENTIFIER){graph.id=token;getToken()}if(token!=\"{\"){throw newSyntaxError(\"Angle bracket { expected\")}getToken();parseStatements(graph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();if(token!==\"\"){throw newSyntaxError(\"End of file expected\")}getToken();delete graph.node;delete graph.edge;delete graph.graph;return graph}function parseStatements(graph){while(token!==\"\"&&token!=\"}\"){parseStatement(graph);if(token===\";\"){getToken()}}}function parseStatement(graph){var subgraph=parseSubgraph(graph);if(subgraph){parseEdge(graph,subgraph);return}var attr=parseAttributeStatement(graph);if(attr){return}if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}var id=token;getToken();if(token===\"=\"){getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}graph[id]=token;getToken()}else{parseNodeStatement(graph,id)}}function parseSubgraph(graph){var subgraph=null;if(token===\"subgraph\"){subgraph={};subgraph.type=\"subgraph\";getToken();if(tokenType===TOKENTYPE.IDENTIFIER){subgraph.id=token;getToken()}}if(token===\"{\"){getToken();if(!subgraph){subgraph={}}subgraph.parent=graph;subgraph.node=graph.node;subgraph.edge=graph.edge;subgraph.graph=graph.graph;parseStatements(subgraph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();delete subgraph.node;delete subgraph.edge;delete subgraph.graph;delete subgraph.parent;if(!graph.subgraphs){graph.subgraphs=[]}graph.subgraphs.push(subgraph)}return subgraph}function parseAttributeStatement(graph){if(token===\"node\"){getToken();graph.node=parseAttributeList();return\"node\"}else if(token===\"edge\"){getToken();graph.edge=parseAttributeList();return\"edge\"}else if(token===\"graph\"){getToken();graph.graph=parseAttributeList();return\"graph\"}return null}function parseNodeStatement(graph,id){var node={id:id};var attr=parseAttributeList();if(attr){node.attr=attr}addNode(graph,node);parseEdge(graph,id)}function parseEdge(graph,from){while(token===\"->\"||token===\"--\"){var to;var type=token;getToken();var subgraph=parseSubgraph(graph);if(subgraph){to=subgraph}else{if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier or subgraph expected\")}to=token;addNode(graph,{id:to});getToken()}var attr=parseAttributeList();var edge=createEdge(graph,from,to,type,attr);addEdge(graph,edge);from=to}}function parseAttributeList(){var attr=null;var edgeStyles={dashed:true,solid:false,dotted:[1,5]};while(token===\"[\"){getToken();attr={};while(token!==\"\"&&token!=\"]\"){if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute name expected\")}var name=token;getToken();if(token!=\"=\"){throw newSyntaxError(\"Equal sign = expected\")}getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute value expected\")}var value=token;if(name===\"style\"){value=edgeStyles[value]}setValue(attr,name,value);getToken();if(token==\",\"){getToken()}}if(token!=\"]\"){throw newSyntaxError(\"Bracket ] expected\")}getToken()}return attr}function newSyntaxError(message){return new SyntaxError(message+', got \"'+chop(token,30)+'\" (char '+index+\")\")}function chop(text,maxLength){return text.length<=maxLength?text:text.substr(0,27)+\"...\"}function forEach2(array1,array2,fn){if(Array.isArray(array1)){array1.forEach(function(elem1){if(Array.isArray(array2)){array2.forEach(function(elem2){fn(elem1,elem2)})}else{fn(elem1,array2)}})}else{if(Array.isArray(array2)){array2.forEach(function(elem2){fn(array1,elem2)})}else{fn(array1,array2)}}}function setProp(object,path,value){var names=path.split(\".\");var prop=names.pop();var obj=object;for(var i=0;i<names.length;i++){var name=names[i];if(!(name in obj)){obj[name]={}}obj=obj[name]}obj[prop]=value;return object}function convertAttr(attr,mapping){var converted={};for(var prop in attr){if(attr.hasOwnProperty(prop)){var visProp=mapping[prop];if(Array.isArray(visProp)){visProp.forEach(function(visPropI){setProp(converted,visPropI,attr[prop])})}else if(typeof visProp===\"string\"){setProp(converted,visProp,attr[prop])}else{setProp(converted,prop,attr[prop])}}}return converted}function DOTToGraph(data){var dotData=parseDOT(data);var graphData={nodes:[],edges:[],options:{}};if(dotData.nodes){dotData.nodes.forEach(function(dotNode){var graphNode={id:dotNode.id,label:String(dotNode.label||dotNode.id)};merge(graphNode,convertAttr(dotNode.attr,NODE_ATTR_MAPPING));if(graphNode.image){graphNode.shape=\"image\"}graphData.nodes.push(graphNode)})}if(dotData.edges){var convertEdge=function convertEdge(dotEdge){var graphEdge={from:dotEdge.from,to:dotEdge.to};merge(graphEdge,convertAttr(dotEdge.attr,EDGE_ATTR_MAPPING));graphEdge.arrows=dotEdge.type===\"->\"?\"to\":undefined;return graphEdge};dotData.edges.forEach(function(dotEdge){var from,to;if(dotEdge.from instanceof Object){from=dotEdge.from.nodes}else{from={id:dotEdge.from}}if(dotEdge.to instanceof Object){to=dotEdge.to.nodes}else{to={id:dotEdge.to}}if(dotEdge.from instanceof Object&&dotEdge.from.edges){dotEdge.from.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}forEach2(from,to,function(from,to){var subEdge=createEdge(graphData,from.id,to.id,dotEdge.type,dotEdge.attr);var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)});if(dotEdge.to instanceof Object&&dotEdge.to.edges){dotEdge.to.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}})}if(dotData.attr){graphData.options=dotData.attr}return graphData}exports.parseDOT=parseDOT;exports.DOTToGraph=DOTToGraph},function(module,exports,__webpack_require__){\"use strict\";function parseGephi(gephiJSON,optionsObj){var edges=[];var nodes=[];var options={edges:{inheritColor:false},nodes:{fixed:false,parseColor:false}};if(optionsObj!==undefined){if(optionsObj.fixed!==undefined){options.nodes.fixed=optionsObj.fixed}if(optionsObj.parseColor!==undefined){options.nodes.parseColor=optionsObj.parseColor}if(optionsObj.inheritColor!==undefined){options.edges.inheritColor=optionsObj.inheritColor}}var gEdges=gephiJSON.edges;var gNodes=gephiJSON.nodes;for(var i=0;i<gEdges.length;i++){var edge={};var gEdge=gEdges[i];edge[\"id\"]=gEdge.id;edge[\"from\"]=gEdge.source;edge[\"to\"]=gEdge.target;edge[\"attributes\"]=gEdge.attributes;edge[\"label\"]=gEdge.label;edge[\"title\"]=gEdge.attributes!==undefined?gEdge.attributes.title:undefined;if(gEdge[\"type\"]===\"Directed\"){edge[\"arrows\"]=\"to\"}if(gEdge.color&&options.inheritColor===false){edge[\"color\"]=gEdge.color}edges.push(edge)}for(var j=0;j<gNodes.length;j++){var node={};var gNode=gNodes[j];node[\"id\"]=gNode.id;node[\"attributes\"]=gNode.attributes;node[\"x\"]=gNode.x;node[\"y\"]=gNode.y;node[\"label\"]=gNode.label;node[\"title\"]=gNode.attributes!==undefined?gNode.attributes.title:gNode.title;if(options.nodes.parseColor===true){node[\"color\"]=gNode.color}else{node[\"color\"]=gNode.color!==undefined?{background:gNode.color,border:gNode.color,highlight:{background:gNode.color,border:gNode.color},hover:{background:gNode.color,border:gNode.color}}:undefined}node[\"size\"]=gNode.size;node[\"fixed\"]=options.nodes.fixed&&gNode.x!==undefined&&gNode.y!==undefined;nodes.push(node)}return{nodes:nodes,edges:edges}}exports.parseGephi=parseGephi},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _CachedImage=__webpack_require__(185);var _CachedImage2=_interopRequireDefault(_CachedImage);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Images=function(){function Images(callback){(0,_classCallCheck3[\"default\"])(this,Images);this.images={};this.imageBroken={};this.callback=callback}(0,_createClass3[\"default\"])(Images,[{key:\"_tryloadBrokenUrl\",value:function _tryloadBrokenUrl(url,brokenUrl,imageToLoadBrokenUrlOn){if(url===undefined||imageToLoadBrokenUrlOn===undefined)return;if(brokenUrl===undefined){console.warn(\"No broken url image defined\");return}imageToLoadBrokenUrlOn.onerror=function(){console.error(\"Could not load brokenImage:\",brokenUrl)};imageToLoadBrokenUrlOn.image.src=brokenUrl}},{key:\"_redrawWithImage\",value:function _redrawWithImage(imageToRedrawWith){if(this.callback){this.callback(imageToRedrawWith)}}},{key:\"load\",value:function load(url,brokenUrl){var _this=this;var cachedImage=this.images[url];if(cachedImage)return cachedImage;var img=new _CachedImage2[\"default\"];this.images[url]=img;img.image.onload=function(){_this._fixImageCoordinates(img.image);img.init();_this._redrawWithImage(img)};img.image.onerror=function(){console.error(\"Could not load image:\",url);_this._tryloadBrokenUrl(url,brokenUrl,img)};img.image.src=url;return img}},{key:\"_fixImageCoordinates\",value:function _fixImageCoordinates(imageToCache){if(imageToCache.width===0){document.body.appendChild(imageToCache);imageToCache.width=imageToCache.offsetWidth;imageToCache.height=imageToCache.offsetHeight;document.body.removeChild(imageToCache)}}}]);return Images}();exports[\"default\"]=Images},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=__webpack_require__(191)[\"default\"];var multiFontStyle=[\"bold\",\"ital\",\"boldital\",\"mono\"];var Label=function(){function Label(body,options){var edgelabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;(0,_classCallCheck3[\"default\"])(this,Label);this.body=body;this.pointToSelf=false;this.baseSize=undefined;this.fontOptions={};this.setOptions(options);this.size={top:0,left:0,width:0,height:0,yLine:0};this.isEdgeLabel=edgelabel}(0,_createClass3[\"default\"])(Label,[{key:\"setOptions\",value:function setOptions(options){this.elementOptions=options;this.initFontOptions(options.font);if(ComponentUtil.isValidLabel(options.label)){this.labelDirty=true}else{options.label=\"\"}if(options.font!==undefined&&options.font!==null){if(typeof options.font===\"string\"){this.baseSize=this.fontOptions.size}else if((0,_typeof3[\"default\"])(options.font)===\"object\"){var size=options.font.size;if(size!==undefined){this.baseSize=size}}}}},{key:\"initFontOptions\",value:function initFontOptions(newFontOptions){var _this=this;util.forEach(multiFontStyle,function(style){_this.fontOptions[style]={}});if(Label.parseFontString(this.fontOptions,newFontOptions)){this.fontOptions.vadjust=0;return}util.forEach(newFontOptions,function(prop,n){if(prop!==undefined&&prop!==null&&(typeof prop===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(prop))!==\"object\"){_this.fontOptions[n]=prop}})}},{key:\"constrain\",value:function constrain(pile){var fontOptions={constrainWidth:false,maxWdt:-1,minWdt:-1,constrainHeight:false,minHgt:-1,valign:\"middle\"};var widthConstraint=util.topMost(pile,\"widthConstraint\");if(typeof widthConstraint===\"number\"){fontOptions.maxWdt=Number(widthConstraint);fontOptions.minWdt=Number(widthConstraint)}else if((typeof widthConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(widthConstraint))===\"object\"){var widthConstraintMaximum=util.topMost(pile,[\"widthConstraint\",\"maximum\"]);if(typeof widthConstraintMaximum===\"number\"){fontOptions.maxWdt=Number(widthConstraintMaximum)}var widthConstraintMinimum=util.topMost(pile,[\"widthConstraint\",\"minimum\"]);if(typeof widthConstraintMinimum===\"number\"){fontOptions.minWdt=Number(widthConstraintMinimum)}}var heightConstraint=util.topMost(pile,\"heightConstraint\");if(typeof heightConstraint===\"number\"){fontOptions.minHgt=Number(heightConstraint)}else if((typeof heightConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(heightConstraint))===\"object\"){var heightConstraintMinimum=util.topMost(pile,[\"heightConstraint\",\"minimum\"]);if(typeof heightConstraintMinimum===\"number\"){fontOptions.minHgt=Number(heightConstraintMinimum)}var heightConstraintValign=util.topMost(pile,[\"heightConstraint\",\"valign\"]);if(typeof heightConstraintValign===\"string\"){if(heightConstraintValign===\"top\"||heightConstraintValign===\"bottom\"){fontOptions.valign=heightConstraintValign}}}return fontOptions}},{key:\"update\",value:function update(options,pile){this.setOptions(options,true);this.propagateFonts(pile);util.deepExtend(this.fontOptions,this.constrain(pile));this.fontOptions.chooser=ComponentUtil.choosify(\"label\",pile)}},{key:\"adjustSizes\",value:function adjustSizes(margins){var widthBias=margins?margins.right+margins.left:0;if(this.fontOptions.constrainWidth){this.fontOptions.maxWdt-=widthBias;this.fontOptions.minWdt-=widthBias}var heightBias=margins?margins.top+margins.bottom:0;if(this.fontOptions.constrainHeight){this.fontOptions.minHgt-=heightBias}}},{key:\"addFontOptionsToPile\",value:function addFontOptionsToPile(dstPile,srcPile){for(var i=0;i<srcPile.length;++i){this.addFontToPile(dstPile,srcPile[i])}}},{key:\"addFontToPile\",value:function addFontToPile(pile,options){if(options===undefined)return;if(options.font===undefined||options.font===null)return;var item=options.font;pile.push(item)}},{key:\"getBasicOptions\",value:function getBasicOptions(pile){var ret={};for(var n=0;n<pile.length;++n){var fontOptions=pile[n];var tmpShorthand={};if(Label.parseFontString(tmpShorthand,fontOptions)){fontOptions=tmpShorthand}util.forEach(fontOptions,function(opt,name){if(opt===undefined)return;if(ret.hasOwnProperty(name))return;if(multiFontStyle.indexOf(name)!==-1){ret[name]={}}else{ret[name]=opt}})}return ret}},{key:\"getFontOption\",value:function getFontOption(pile,multiName,option){var multiFont=void 0;for(var n=0;n<pile.length;++n){var fontOptions=pile[n];if(fontOptions.hasOwnProperty(multiName)){multiFont=fontOptions[multiName];if(multiFont===undefined||multiFont===null)continue;var tmpShorthand={};if(Label.parseFontString(tmpShorthand,multiFont)){multiFont=tmpShorthand}if(multiFont.hasOwnProperty(option)){return multiFont[option]}}}if(this.fontOptions.hasOwnProperty(option)){return this.fontOptions[option]}throw new Error(\"Did not find value for multi-font for property: '\"+option+\"'\")}},{key:\"getFontOptions\",value:function getFontOptions(pile,multiName){var result={};var optionNames=[\"color\",\"size\",\"face\",\"mod\",\"vadjust\"];for(var i=0;i<optionNames.length;++i){var mod=optionNames[i];result[mod]=this.getFontOption(pile,multiName,mod)}return result}},{key:\"propagateFonts\",value:function propagateFonts(pile){var _this2=this;var fontPile=[];this.addFontOptionsToPile(fontPile,pile);this.fontOptions=this.getBasicOptions(fontPile);var _loop=function _loop(i){var mod=multiFontStyle[i];var modOptions=_this2.fontOptions[mod];var tmpMultiFontOptions=_this2.getFontOptions(fontPile,mod);util.forEach(tmpMultiFontOptions,function(option,n){modOptions[n]=option});modOptions.size=Number(modOptions.size);modOptions.vadjust=Number(modOptions.vadjust)};for(var i=0;i<multiFontStyle.length;++i){_loop(i)}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover){var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";if(this.elementOptions.label===undefined)return;var viewFontSize=this.fontOptions.size*this.body.view.scale;if(this.elementOptions.label&&viewFontSize<this.elementOptions.scaling.label.drawThreshold-1)return;if(viewFontSize>=this.elementOptions.scaling.label.maxVisible){viewFontSize=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale}this.calculateLabelSize(ctx,selected,hover,x,y,baseline);this._drawBackground(ctx);this._drawText(ctx,x,this.size.yLine,baseline,viewFontSize)}},{key:\"_drawBackground\",value:function _drawBackground(ctx){if(this.fontOptions.background!==undefined&&this.fontOptions.background!==\"none\"){ctx.fillStyle=this.fontOptions.background;var size=this.getSize();ctx.fillRect(size.left,size.top,size.width,size.height)}}},{key:\"_drawText\",value:function _drawText(ctx,x,y){var baseline=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"middle\";var viewFontSize=arguments[4];var _setAlignment2=this._setAlignment(ctx,x,y,baseline);var _setAlignment3=(0,_slicedToArray3[\"default\"])(_setAlignment2,2);x=_setAlignment3[0];y=_setAlignment3[1];ctx.textAlign=\"left\";x=x-this.size.width/2;if(this.fontOptions.valign&&this.size.height>this.size.labelHeight){if(this.fontOptions.valign===\"top\"){y-=(this.size.height-this.size.labelHeight)/2}if(this.fontOptions.valign===\"bottom\"){y+=(this.size.height-this.size.labelHeight)/2}}for(var i=0;i<this.lineCount;i++){var line=this.lines[i];if(line&&line.blocks){var width=0;if(this.isEdgeLabel||this.fontOptions.align===\"center\"){width+=(this.size.width-line.width)/2}else if(this.fontOptions.align===\"right\"){width+=this.size.width-line.width}for(var j=0;j<line.blocks.length;j++){var block=line.blocks[j];ctx.font=block.font;var _getColor2=this._getColor(block.color,viewFontSize,block.strokeColor),_getColor3=(0,_slicedToArray3[\"default\"])(_getColor2,2),fontColor=_getColor3[0],strokeColor=_getColor3[1];if(block.strokeWidth>0){ctx.lineWidth=block.strokeWidth;ctx.strokeStyle=strokeColor;ctx.lineJoin=\"round\"}ctx.fillStyle=fontColor;if(block.strokeWidth>0){ctx.strokeText(block.text,x+width,y+block.vadjust)}ctx.fillText(block.text,x+width,y+block.vadjust);width+=block.width}y+=line.height}}}},{key:\"_setAlignment\",value:function _setAlignment(ctx,x,y,baseline){if(this.isEdgeLabel&&this.fontOptions.align!==\"horizontal\"&&this.pointToSelf===false){x=0;y=0;var lineMargin=2;if(this.fontOptions.align===\"top\"){ctx.textBaseline=\"alphabetic\";y-=2*lineMargin}else if(this.fontOptions.align===\"bottom\"){ctx.textBaseline=\"hanging\";y+=2*lineMargin}else{ctx.textBaseline=\"middle\"}}else{ctx.textBaseline=baseline}return[x,y]}},{key:\"_getColor\",value:function _getColor(color,viewFontSize,initialStrokeColor){var fontColor=color||\"#000000\";var strokeColor=initialStrokeColor||\"#ffffff\";if(viewFontSize<=this.elementOptions.scaling.label.drawThreshold){var opacity=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-viewFontSize)));fontColor=util.overrideOpacity(fontColor,opacity);strokeColor=util.overrideOpacity(strokeColor,opacity)}return[fontColor,strokeColor]}},{key:\"getTextSize\",value:function getTextSize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;this._processLabel(ctx,selected,hover);return{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:\"getSize\",value:function getSize(){var lineMargin=2;var x=this.size.left;var y=this.size.top-.5*lineMargin;if(this.isEdgeLabel){var x2=-this.size.width*.5;switch(this.fontOptions.align){case\"middle\":x=x2;y=-this.size.height*.5;break;case\"top\":x=x2;y=-(this.size.height+lineMargin);break;case\"bottom\":x=x2;y=lineMargin;break}}var ret={left:x,top:y,width:this.size.width,height:this.size.height};return ret}},{key:\"calculateLabelSize\",value:function calculateLabelSize(ctx,selected,hover){var x=arguments.length>3&&arguments[3]!==undefined?arguments[3]:0;var y=arguments.length>4&&arguments[4]!==undefined?arguments[4]:0;var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";this._processLabel(ctx,selected,hover);this.size.left=x-this.size.width*.5;this.size.top=y-this.size.height*.5;this.size.yLine=y+(1-this.lineCount)*.5*this.fontOptions.size;if(baseline===\"hanging\"){this.size.top+=.5*this.fontOptions.size;this.size.top+=4;this.size.yLine+=4}}},{key:\"getFormattingValues\",value:function getFormattingValues(ctx,selected,hover,mod){var getValue=function getValue(fontOptions,mod,option){if(mod===\"normal\"){if(option===\"mod\")return\"\";return fontOptions[option]}if(fontOptions[mod][option]!==undefined){return fontOptions[mod][option]}else{return fontOptions[option]}};var values={color:getValue(this.fontOptions,mod,\"color\"),size:getValue(this.fontOptions,mod,\"size\"),face:getValue(this.fontOptions,mod,\"face\"),mod:getValue(this.fontOptions,mod,\"mod\"),vadjust:getValue(this.fontOptions,mod,\"vadjust\"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};if(selected||hover){if(mod===\"normal\"&&this.fontOptions.chooser===true&&this.elementOptions.labelHighlightBold){values.mod=\"bold\"}else{if(typeof this.fontOptions.chooser===\"function\"){this.fontOptions.chooser(values,this.elementOptions.id,selected,hover)}}}var fontString=\"\";if(values.mod!==undefined&&values.mod!==\"\"){fontString+=values.mod+\" \"}fontString+=values.size+\"px \"+values.face;ctx.font=fontString.replace(/\"/g,\"\");values.font=ctx.font;values.height=values.size;return values}},{key:\"differentState\",value:function differentState(selected,hover){return selected!==this.selectedState||hover!==this.hoverState}},{key:\"_processLabelText\",value:function _processLabelText(ctx,selected,hover,inText){var splitter=new LabelSplitter(ctx,this,selected,hover);return splitter.process(inText)}},{key:\"_processLabel\",value:function _processLabel(ctx,selected,hover){if(this.labelDirty===false&&!this.differentState(selected,hover))return;var state=this._processLabelText(ctx,selected,hover,this.elementOptions.label);if(this.fontOptions.minWdt>0&&state.width<this.fontOptions.minWdt){state.width=this.fontOptions.minWdt}this.size.labelHeight=state.height;if(this.fontOptions.minHgt>0&&state.height<this.fontOptions.minHgt){state.height=this.fontOptions.minHgt}this.lines=state.lines;this.lineCount=state.lines.length;this.size.width=state.width;this.size.height=state.height;this.selectedState=selected;this.hoverState=hover;this.labelDirty=false}},{key:\"visible\",value:function visible(){if(this.size.width===0||this.size.height===0||this.elementOptions.label===undefined){return false}var viewFontSize=this.fontOptions.size*this.body.view.scale;if(viewFontSize<this.elementOptions.scaling.label.drawThreshold-1){return false}return true}}],[{key:\"parseFontString\",value:function parseFontString(outOptions,inOptions){if(!inOptions||typeof inOptions!==\"string\")return false;var newOptionsArray=inOptions.split(\" \");outOptions.size=newOptionsArray[0].replace(\"px\",\"\");outOptions.face=newOptionsArray[1];outOptions.color=newOptionsArray[2];return true}}]);return Label}();exports[\"default\"]=Label},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var EdgeBase=function(){function EdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,EdgeBase);this.body=body;this.labelModule=labelModule\n;this.options={};this.setOptions(options);this.colorDirty=true;this.color={};this.selectionWidth=2;this.hoverWidth=1.5;this.fromPoint=this.from;this.toPoint=this.to}(0,_createClass3[\"default\"])(EdgeBase,[{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to]}},{key:\"cleanup\",value:function cleanup(){return false}},{key:\"setOptions\",value:function setOptions(options){this.options=options;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.id=this.options.id}},{key:\"drawLine\",value:function drawLine(ctx,values,selected,hover,viaNode){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.lineWidth=values.width;if(values.dashes!==false){this._drawDashedLine(ctx,values,viaNode)}else{this._drawLine(ctx,values,viaNode)}}},{key:\"_drawLine\",value:function _drawLine(ctx,values,viaNode,fromPoint,toPoint){if(this.from!=this.to){this._line(ctx,values,viaNode,fromPoint,toPoint)}else{var _getCircleData2=this._getCircleData(ctx),_getCircleData3=(0,_slicedToArray3[\"default\"])(_getCircleData2,3),x=_getCircleData3[0],y=_getCircleData3[1],radius=_getCircleData3[2];this._circle(ctx,values,x,y,radius)}}},{key:\"_drawDashedLine\",value:function _drawDashedLine(ctx,values,viaNode,fromPoint,toPoint){ctx.lineCap=\"round\";var pattern=[5,5];if(Array.isArray(values.dashes)===true){pattern=values.dashes}if(ctx.setLineDash!==undefined){ctx.save();ctx.setLineDash(pattern);ctx.lineDashOffset=0;if(this.from!=this.to){this._line(ctx,values,viaNode)}else{var _getCircleData4=this._getCircleData(ctx),_getCircleData5=(0,_slicedToArray3[\"default\"])(_getCircleData4,3),x=_getCircleData5[0],y=_getCircleData5[1],radius=_getCircleData5[2];this._circle(ctx,values,x,y,radius)}ctx.setLineDash([0]);ctx.lineDashOffset=0;ctx.restore()}else{if(this.from!=this.to){ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,pattern)}else{var _getCircleData6=this._getCircleData(ctx),_getCircleData7=(0,_slicedToArray3[\"default\"])(_getCircleData6,3),_x=_getCircleData7[0],_y=_getCircleData7[1],_radius=_getCircleData7[2];this._circle(ctx,values,_x,_y,_radius)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}}},{key:\"findBorderPosition\",value:function findBorderPosition(nearNode,ctx,options){if(this.from!=this.to){return this._findBorderPosition(nearNode,ctx,options)}else{return this._findBorderPositionCircle(nearNode,ctx,options)}}},{key:\"findBorderPositions\",value:function findBorderPositions(ctx){var from={};var to={};if(this.from!=this.to){from=this._findBorderPosition(this.from,ctx);to=this._findBorderPosition(this.to,ctx)}else{var _getCircleData$slice=this._getCircleData(ctx).slice(0,2),_getCircleData$slice2=(0,_slicedToArray3[\"default\"])(_getCircleData$slice,2),x=_getCircleData$slice2[0],y=_getCircleData$slice2[1];from=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});to=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.6,high:.8,direction:1})}return{from:from,to:to}}},{key:\"_getCircleData\",value:function _getCircleData(ctx){var x=void 0,y=void 0;var node=this.from;var radius=this.options.selfReferenceSize;if(ctx!==undefined){if(node.shape.width===undefined){node.shape.resize(ctx)}}if(node.shape.width>node.shape.height){x=node.x+node.shape.width*.5;y=node.y-radius}else{x=node.x+radius;y=node.y-node.shape.height*.5}return[x,y,radius]}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"_findBorderPositionCircle\",value:function _findBorderPositionCircle(node,ctx,options){var x=options.x;var y=options.y;var low=options.low;var high=options.high;var direction=options.direction;var maxIterations=10;var iteration=0;var radius=this.options.selfReferenceSize;var pos=void 0,angle=void 0,distanceToBorder=void 0,distanceToPoint=void 0,difference=void 0;var threshold=.05;var middle=(low+high)*.5;while(low<=high&&iteration<maxIterations){middle=(low+high)*.5;pos=this._pointOnCircle(x,y,radius,middle);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference>0){if(direction>0){low=middle}else{high=middle}}else{if(direction>0){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"getLineWidth\",value:function getLineWidth(selected,hover){if(selected===true){return Math.max(this.selectionWidth,.3/this.body.view.scale)}else{if(hover===true){return Math.max(this.hoverWidth,.3/this.body.view.scale)}else{return Math.max(this.options.width,.3/this.body.view.scale)}}}},{key:\"getColor\",value:function getColor(ctx,values,selected,hover){if(values.inheritsColor!==false){if(values.inheritsColor===\"both\"&&this.from.id!==this.to.id){var grd=ctx.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);var fromColor=void 0,toColor=void 0;fromColor=this.from.options.color.highlight.border;toColor=this.to.options.color.highlight.border;if(this.from.selected===false&&this.to.selected===false){fromColor=util.overrideOpacity(this.from.options.color.border,values.opacity);toColor=util.overrideOpacity(this.to.options.color.border,values.opacity)}else if(this.from.selected===true&&this.to.selected===false){toColor=this.to.options.color.border}else if(this.from.selected===false&&this.to.selected===true){fromColor=this.from.options.color.border}grd.addColorStop(0,fromColor);grd.addColorStop(1,toColor);return grd}if(values.inheritsColor===\"to\"){return util.overrideOpacity(this.to.options.color.border,values.opacity)}else{return util.overrideOpacity(this.from.options.color.border,values.opacity)}}else{return util.overrideOpacity(values.color,values.opacity)}}},{key:\"_circle\",value:function _circle(ctx,values,x,y,radius){this.enableShadow(ctx,values);ctx.beginPath();ctx.arc(x,y,radius,0,2*Math.PI,false);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getDistanceToEdge\",value:function getDistanceToEdge(x1,y1,x2,y2,x3,y3,via,values){var returnValue=0;if(this.from!=this.to){returnValue=this._getDistanceToEdge(x1,y1,x2,y2,x3,y3,via)}else{var _getCircleData8=this._getCircleData(undefined),_getCircleData9=(0,_slicedToArray3[\"default\"])(_getCircleData8,3),x=_getCircleData9[0],y=_getCircleData9[1],radius=_getCircleData9[2];var dx=x-x3;var dy=y-y3;returnValue=Math.abs(Math.sqrt(dx*dx+dy*dy)-radius)}return returnValue}},{key:\"_getDistanceToLine\",value:function _getDistanceToLine(x1,y1,x2,y2,x3,y3){var px=x2-x1;var py=y2-y1;var something=px*px+py*py;var u=((x3-x1)*px+(y3-y1)*py)/something;if(u>1){u=1}else if(u<0){u=0}var x=x1+u*px;var y=y1+u*py;var dx=x-x3;var dy=y-y3;return Math.sqrt(dx*dx+dy*dy)}},{key:\"getArrowData\",value:function getArrowData(ctx,position,viaNode,selected,hover,values){var angle=void 0;var arrowPoint=void 0;var node1=void 0;var node2=void 0;var guideOffset=void 0;var scaleFactor=void 0;var type=void 0;var lineWidth=values.width;if(position===\"from\"){node1=this.from;node2=this.to;guideOffset=.1;scaleFactor=values.fromArrowScale;type=values.fromArrowType}else if(position===\"to\"){node1=this.to;node2=this.from;guideOffset=-.1;scaleFactor=values.toArrowScale;type=values.toArrowType}else{node1=this.to;node2=this.from;scaleFactor=values.middleArrowScale;type=values.middleArrowType}if(node1!=node2){if(position!==\"middle\"){if(this.options.smooth.enabled===true){arrowPoint=this.findBorderPosition(node1,ctx,{via:viaNode});var guidePos=this.getPoint(Math.max(0,Math.min(1,arrowPoint.t+guideOffset)),viaNode);angle=Math.atan2(arrowPoint.y-guidePos.y,arrowPoint.x-guidePos.x)}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.findBorderPosition(node1,ctx)}}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.getPoint(.5,viaNode)}}else{var _getCircleData10=this._getCircleData(ctx),_getCircleData11=(0,_slicedToArray3[\"default\"])(_getCircleData10,3),x=_getCircleData11[0],y=_getCircleData11[1],radius=_getCircleData11[2];if(position===\"from\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI}else if(position===\"to\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.6,high:1,direction:1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI}else{arrowPoint=this._pointOnCircle(x,y,radius,.175);angle=3.9269908169872414}}if(position===\"middle\"&&scaleFactor<0)lineWidth*=-1;var length=15*scaleFactor+3*lineWidth;var xi=arrowPoint.x-length*.9*Math.cos(angle);var yi=arrowPoint.y-length*.9*Math.sin(angle);var arrowCore={x:xi,y:yi};return{point:arrowPoint,core:arrowCore,angle:angle,length:length,type:type}}},{key:\"drawArrowHead\",value:function drawArrowHead(ctx,values,selected,hover,arrowData){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.fillStyle=ctx.strokeStyle;ctx.lineWidth=values.width;EndPoints.draw(ctx,arrowData);this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values)}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}}]);return EdgeBase}();exports[\"default\"]=EdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var EndPoint=function(){function EndPoint(){(0,_classCallCheck3[\"default\"])(this,EndPoint)}(0,_createClass3[\"default\"])(EndPoint,null,[{key:\"transform\",value:function transform(points,arrowData){if(!(points instanceof Array)){points=[points]}var x=arrowData.point.x;var y=arrowData.point.y;var angle=arrowData.angle;var length=arrowData.length;for(var i=0;i<points.length;++i){var p=points[i];var xt=p.x*Math.cos(angle)-p.y*Math.sin(angle);var yt=p.x*Math.sin(angle)+p.y*Math.cos(angle);p.x=x+length*xt;p.y=y+length*yt}}},{key:\"drawPath\",value:function drawPath(ctx,points){ctx.beginPath();ctx.moveTo(points[0].x,points[0].y);for(var i=1;i<points.length;++i){ctx.lineTo(points[i].x,points[i].y)}ctx.closePath()}}]);return EndPoint}();var Arrow=function(_EndPoint){(0,_inherits3[\"default\"])(Arrow,_EndPoint);function Arrow(){(0,_classCallCheck3[\"default\"])(this,Arrow);return(0,_possibleConstructorReturn3[\"default\"])(this,(Arrow.__proto__||(0,_getPrototypeOf2[\"default\"])(Arrow)).apply(this,arguments))}(0,_createClass3[\"default\"])(Arrow,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Arrow}(EndPoint);var Circle=function(){function Circle(){(0,_classCallCheck3[\"default\"])(this,Circle)}(0,_createClass3[\"default\"])(Circle,null,[{key:\"draw\",value:function draw(ctx,arrowData){var point={x:-.4,y:0};EndPoint.transform(point,arrowData);ctx.circle(point.x,point.y,arrowData.length*.4)}}]);return Circle}();var Bar=function(){function Bar(){(0,_classCallCheck3[\"default\"])(this,Bar)}(0,_createClass3[\"default\"])(Bar,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Bar}();var EndPoints=function(){function EndPoints(){(0,_classCallCheck3[\"default\"])(this,EndPoints)}(0,_createClass3[\"default\"])(EndPoints,null,[{key:\"draw\",value:function draw(ctx,arrowData){var type;if(arrowData.type){type=arrowData.type.toLowerCase()}switch(type){case\"circle\":Circle.draw(ctx,arrowData);break;case\"bar\":Bar.draw(ctx,arrowData);break;case\"arrow\":default:Arrow.draw(ctx,arrowData)}}}]);return EndPoints}();exports[\"default\"]=EndPoints},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=function(){function BarnesHutSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,BarnesHutSolver);this.body=body;this.physicsBody=physicsBody;this.barnesHutTree;this.setOptions(options);this.randomSeed=5}(0,_createClass3[\"default\"])(BarnesHutSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options;this.thetaInversed=1/this.options.theta;this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"solve\",value:function solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){var node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var nodeCount=nodeIndices.length;var barnesHutTree=this._formBarnesHutTree(nodes,nodeIndices);this.barnesHutTree=barnesHutTree;for(var i=0;i<nodeCount;i++){node=nodes[nodeIndices[i]];if(node.options.mass>0){this._getForceContributions(barnesHutTree.root,node)}}}}},{key:\"_getForceContributions\",value:function _getForceContributions(parentBranch,node){this._getForceContribution(parentBranch.children.NW,node);this._getForceContribution(parentBranch.children.NE,node);this._getForceContribution(parentBranch.children.SW,node);this._getForceContribution(parentBranch.children.SE,node)}},{key:\"_getForceContribution\",value:function _getForceContribution(parentBranch,node){if(parentBranch.childrenCount>0){var dx=void 0,dy=void 0,distance=void 0;dx=parentBranch.centerOfMass.x-node.x;dy=parentBranch.centerOfMass.y-node.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance*parentBranch.calcSize>this.thetaInversed){this._calculateForces(distance,dx,dy,node,parentBranch)}else{if(parentBranch.childrenCount===4){this._getForceContributions(parentBranch,node)}else{if(parentBranch.children.data.id!=node.id){this._calculateForces(distance,dx,dy,node,parentBranch)}}}}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1;dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass/Math.pow(distance,3);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}},{key:\"_formBarnesHutTree\",value:function _formBarnesHutTree(nodes,nodeIndices){var node=void 0;var nodeCount=nodeIndices.length;var minX=nodes[nodeIndices[0]].x;var minY=nodes[nodeIndices[0]].y;var maxX=nodes[nodeIndices[0]].x;var maxY=nodes[nodeIndices[0]].y;for(var i=1;i<nodeCount;i++){var _node=nodes[nodeIndices[i]];var x=_node.x;var y=_node.y;if(_node.options.mass>0){if(x<minX){minX=x}if(x>maxX){maxX=x}if(y<minY){minY=y}if(y>maxY){maxY=y}}}var sizeDiff=Math.abs(maxX-minX)-Math.abs(maxY-minY);if(sizeDiff>0){minY-=.5*sizeDiff;maxY+=.5*sizeDiff}else{minX+=.5*sizeDiff;maxX-=.5*sizeDiff}var minimumTreeSize=1e-5;var rootSize=Math.max(minimumTreeSize,Math.abs(maxX-minX));var halfRootSize=.5*rootSize;var centerX=.5*(minX+maxX),centerY=.5*(minY+maxY);var barnesHutTree={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:centerX-halfRootSize,maxX:centerX+halfRootSize,minY:centerY-halfRootSize,maxY:centerY+halfRootSize},size:rootSize,calcSize:1/rootSize,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(barnesHutTree.root);for(var _i=0;_i<nodeCount;_i++){node=nodes[nodeIndices[_i]];if(node.options.mass>0){this._placeInTree(barnesHutTree.root,node)}}return barnesHutTree}},{key:\"_updateBranchMass\",value:function _updateBranchMass(parentBranch,node){var centerOfMass=parentBranch.centerOfMass;var totalMass=parentBranch.mass+node.options.mass;var totalMassInv=1/totalMass;centerOfMass.x=centerOfMass.x*parentBranch.mass+node.x*node.options.mass;centerOfMass.x*=totalMassInv;centerOfMass.y=centerOfMass.y*parentBranch.mass+node.y*node.options.mass;centerOfMass.y*=totalMassInv;parentBranch.mass=totalMass;var biggestSize=Math.max(Math.max(node.height,node.radius),node.width);parentBranch.maxWidth=parentBranch.maxWidth<biggestSize?biggestSize:parentBranch.maxWidth}},{key:\"_placeInTree\",value:function _placeInTree(parentBranch,node,skipMassUpdate){if(skipMassUpdate!=true||skipMassUpdate===undefined){this._updateBranchMass(parentBranch,node)}var range=parentBranch.children.NW.range;var region=void 0;if(range.maxX>node.x){if(range.maxY>node.y){region=\"NW\"}else{region=\"SW\"}}else{if(range.maxY>node.y){region=\"NE\"}else{region=\"SE\"}}this._placeInRegion(parentBranch,node,region)}},{key:\"_placeInRegion\",value:function _placeInRegion(parentBranch,node,region){var children=parentBranch.children[region];switch(children.childrenCount){case 0:children.children.data=node;children.childrenCount=1;this._updateBranchMass(children,node);break;case 1:if(children.children.data.x===node.x&&children.children.data.y===node.y){node.x+=this.seededRandom();node.y+=this.seededRandom()}else{this._splitBranch(children);this._placeInTree(children,node)}break;case 4:this._placeInTree(children,node);break}}},{key:\"_splitBranch\",value:function _splitBranch(parentBranch){var containedNode=null;if(parentBranch.childrenCount===1){containedNode=parentBranch.children.data;parentBranch.mass=0;parentBranch.centerOfMass.x=0;parentBranch.centerOfMass.y=0}parentBranch.childrenCount=4;parentBranch.children.data=null;this._insertRegion(parentBranch,\"NW\");this._insertRegion(parentBranch,\"NE\");this._insertRegion(parentBranch,\"SW\");this._insertRegion(parentBranch,\"SE\");if(containedNode!=null){this._placeInTree(parentBranch,containedNode)}}},{key:\"_insertRegion\",value:function _insertRegion(parentBranch,region){var minX=void 0,maxX=void 0,minY=void 0,maxY=void 0;var childSize=.5*parentBranch.size;switch(region){case\"NW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"NE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"SW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break;case\"SE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break}parentBranch.children[region]={centerOfMass:{x:0,y:0},mass:0,range:{minX:minX,maxX:maxX,minY:minY,maxY:maxY},size:.5*parentBranch.size,calcSize:2*parentBranch.calcSize,children:{data:null},maxWidth:0,level:parentBranch.level+1,childrenCount:0}}},{key:\"_debug\",value:function _debug(ctx,color){if(this.barnesHutTree!==undefined){ctx.lineWidth=1;this._drawBranch(this.barnesHutTree.root,ctx,color)}}},{key:\"_drawBranch\",value:function _drawBranch(branch,ctx,color){if(color===undefined){color=\"#FF0000\"}if(branch.childrenCount===4){this._drawBranch(branch.children.NW,ctx);this._drawBranch(branch.children.NE,ctx);this._drawBranch(branch.children.SE,ctx);this._drawBranch(branch.children.SW,ctx)}ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.minY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.minY);ctx.stroke()}}]);return BarnesHutSolver}();exports[\"default\"]=BarnesHutSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CentralGravitySolver=function(){function CentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,CentralGravitySolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(CentralGravitySolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx=void 0,dy=void 0,distance=void 0,node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];node=nodes[nodeId];dx=-node.x;dy=-node.y;distance=Math.sqrt(dx*dx+dy*dy);this._calculateForces(distance,dx,dy,forces,node)}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){var gravityForce=distance===0?0:this.options.centralGravity/distance;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}]);return CentralGravitySolver}();exports[\"default\"]=CentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var object=\"object\";var dom=\"dom\";var any=\"any\";var endPoints=[\"arrow\",\"circle\",\"bar\"];var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,string:string,array:array,function:\"function\"},container:{dom:dom},showButton:{boolean:bool},__type__:{object:object,boolean:bool,string:string,array:array,function:\"function\"}},edges:{arrows:{to:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},middle:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},from:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},__type__:{string:[\"from\",\"to\",\"middle\"],object:object}},arrowStrikethrough:{boolean:bool},chosen:{label:{boolean:bool,function:\"function\"},edge:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{color:{string:string},highlight:{string:string},hover:{string:string},inherit:{string:[\"from\",\"to\",\"both\"],boolean:bool},opacity:{number:number},__type__:{object:object,string:string}},dashes:{boolean:bool,array:array},font:{color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},align:{string:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},hidden:{boolean:bool},hoverWidth:{function:\"function\",number:number},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},length:{number:number,undefined:\"undefined\"},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},selectionWidth:{function:\"function\",number:number},selfReferenceSize:{number:number},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},smooth:{enabled:{boolean:bool},type:{string:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"]},roundness:{number:number},forceDirection:{string:[\"horizontal\",\"vertical\",\"none\"],boolean:bool},__type__:{object:object,boolean:bool}},title:{string:string,undefined:\"undefined\"},width:{number:number},widthConstraint:{maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},value:{number:number,undefined:\"undefined\"},__type__:{object:object}},groups:{useDefaultGroups:{boolean:bool},__any__:\"get from nodes, will be overwritten below\",__type__:{object:object}},interaction:{dragNodes:{boolean:bool},dragView:{boolean:bool},hideEdgesOnDrag:{boolean:bool},hideNodesOnDrag:{boolean:bool},hover:{boolean:bool},keyboard:{enabled:{boolean:bool},speed:{x:{number:number},y:{number:number},zoom:{number:number},__type__:{object:object}},bindToWindow:{boolean:bool},__type__:{object:object,boolean:bool}},multiselect:{boolean:bool},navigationButtons:{boolean:bool},selectable:{boolean:bool},selectConnectedEdges:{boolean:bool},hoverConnectedEdges:{boolean:bool},tooltipDelay:{number:number},zoomView:{boolean:bool},__type__:{object:object}},layout:{randomSeed:{undefined:\"undefined\",number:number},improvedLayout:{boolean:bool},hierarchical:{enabled:{boolean:bool},levelSeparation:{number:number},nodeSpacing:{number:number},treeSpacing:{number:number},blockShifting:{boolean:bool},edgeMinimization:{boolean:bool},parentCentralization:{boolean:bool},direction:{string:[\"UD\",\"DU\",\"LR\",\"RL\"]},sortMethod:{string:[\"hubsize\",\"directed\"]},__type__:{object:object,boolean:bool}},__type__:{object:object}},manipulation:{enabled:{boolean:bool},initiallyActive:{boolean:bool},addNode:{boolean:bool,function:\"function\"},addEdge:{boolean:bool,function:\"function\"},editNode:{function:\"function\"},editEdge:{editWithoutDrag:{function:\"function\"},__type__:{object:object,boolean:bool,function:\"function\"}},deleteNode:{boolean:bool,function:\"function\"},deleteEdge:{boolean:bool,function:\"function\"},controlNodeStyle:\"get from nodes, will be overwritten below\",__type__:{object:object,boolean:bool}},nodes:{borderWidth:{number:number},borderWidthSelected:{number:number,undefined:\"undefined\"},brokenImage:{string:string,undefined:\"undefined\"},chosen:{label:{boolean:bool,function:\"function\"},node:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{border:{string:string},background:{string:string},highlight:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},hover:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},__type__:{object:object,string:string}},fixed:{x:{boolean:bool},y:{boolean:bool},__type__:{object:object,boolean:bool}},font:{align:{string:string},color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},group:{string:string,number:number,undefined:\"undefined\"},heightConstraint:{minimum:{number:number},valign:{string:string},__type__:{object:object,boolean:bool,number:number}},hidden:{boolean:bool},icon:{face:{string:string},code:{string:string},size:{number:number},color:{string:string},__type__:{object:object}},id:{string:string,number:number},image:{selected:{string:string,undefined:\"undefined\"},unselected:{string:string,undefined:\"undefined\"},__type__:{object:object,string:string}},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},level:{number:number,undefined:\"undefined\"},margin:{top:{number:number},right:{number:number},bottom:{number:number},left:{number:number},__type__:{object:object,number:number}},mass:{number:number},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},shape:{string:[\"ellipse\",\"circle\",\"database\",\"box\",\"text\",\"image\",\"circularImage\",\"diamond\",\"dot\",\"star\",\"triangle\",\"triangleDown\",\"square\",\"icon\",\"hexagon\"]},shapeProperties:{borderDashes:{boolean:bool,array:array},borderRadius:{number:number},interpolation:{boolean:bool},useImageSize:{boolean:bool},useBorderWithImage:{boolean:bool},__type__:{object:object}},size:{number:number},title:{string:string,dom:dom,undefined:\"undefined\"},value:{number:number,undefined:\"undefined\"},widthConstraint:{minimum:{number:number},maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},x:{number:number},y:{number:number},__type__:{object:object}},physics:{enabled:{boolean:bool},barnesHut:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},forceAtlas2Based:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},repulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},hierarchicalRepulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},maxVelocity:{number:number},minVelocity:{number:number},solver:{string:[\"barnesHut\",\"repulsion\",\"hierarchicalRepulsion\",\"forceAtlas2Based\"]},stabilization:{enabled:{boolean:bool},iterations:{number:number},updateInterval:{number:number},onlyDynamicEdges:{boolean:bool},\nfit:{boolean:bool},__type__:{object:object,boolean:bool}},timestep:{number:number},adaptiveTimestep:{boolean:bool},__type__:{object:object,boolean:bool}},autoResize:{boolean:bool},clickToUse:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},height:{string:string},width:{string:string},__type__:{object:object}};allOptions.groups.__any__=allOptions.nodes;allOptions.manipulation.controlNodeStyle=allOptions.nodes;var configureOptions={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#97C2FC\"],highlight:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]},hover:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]}},fixed:{x:false,y:false},font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[0,0,50,1],strokeColor:[\"color\",\"#ffffff\"]},hidden:false,labelHighlightBold:true,physics:true,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:false,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:[\"ellipse\",\"box\",\"circle\",\"database\",\"diamond\",\"dot\",\"square\",\"star\",\"text\",\"triangle\",\"triangleDown\",\"hexagon\"],shapeProperties:{borderDashes:false,borderRadius:[6,0,20,1],interpolation:true,useImageSize:false},size:[25,0,200,1]},edges:{arrows:{to:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},middle:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},from:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"}},arrowStrikethrough:true,color:{color:[\"color\",\"#848484\"],highlight:[\"color\",\"#848484\"],hover:[\"color\",\"#848484\"],inherit:[\"from\",\"to\",\"both\",true,false],opacity:[1,0,1,.05]},dashes:false,font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[2,0,50,1],strokeColor:[\"color\",\"#ffffff\"],align:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},hidden:false,hoverWidth:[1.5,0,5,.1],labelHighlightBold:true,physics:true,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:true,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:true,type:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"],forceDirection:[\"horizontal\",\"vertical\",\"none\"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:false,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:[\"UD\",\"DU\",\"LR\",\"RL\"],sortMethod:[\"hubsize\",\"directed\"]}},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:false,keyboard:{enabled:false,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:true},multiselect:false,navigationButtons:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true,tooltipDelay:[300,0,1e3,25],zoomView:true},manipulation:{enabled:false,initiallyActive:false},physics:{enabled:true,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:[\"barnesHut\",\"forceAtlas2Based\",\"repulsion\",\"hierarchicalRepulsion\"],timestep:[.5,.01,1,.01]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);util.extend(exports,__webpack_require__(159));util.extend(exports,__webpack_require__(177));util.extend(exports,__webpack_require__(181))},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(136)},function(module,exports,__webpack_require__){\"use strict\";var addToUnscopables=__webpack_require__(126);var step=__webpack_require__(127);var Iterators=__webpack_require__(31);var toIObject=__webpack_require__(25);module.exports=__webpack_require__(79)(Array,\"Array\",function(iterated,kind){this._t=toIObject(iterated);this._i=0;this._k=kind},function(){var O=this._t;var kind=this._k;var index=this._i++;if(!O||index>=O.length){this._t=undefined;return step(1)}if(kind==\"keys\")return step(0,index);if(kind==\"values\")return step(0,O[index]);return step(0,[index,O[index]])},\"values\");Iterators.Arguments=Iterators.Array;addToUnscopables(\"keys\");addToUnscopables(\"values\");addToUnscopables(\"entries\")},function(module,exports){module.exports=function(){}},function(module,exports){module.exports=function(done,value){return{value:value,done:!!done}}},function(module,exports){module.exports=function(it){if(typeof it!=\"function\")throw TypeError(it+\" is not a function!\");return it}},function(module,exports,__webpack_require__){\"use strict\";var create=__webpack_require__(54);var descriptor=__webpack_require__(39);var setToStringTag=__webpack_require__(59);var IteratorPrototype={};__webpack_require__(26)(IteratorPrototype,__webpack_require__(13)(\"iterator\"),function(){return this});module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)});setToStringTag(Constructor,NAME+\" Iterator\")}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var anObject=__webpack_require__(27);var getKeys=__webpack_require__(33);module.exports=__webpack_require__(21)?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=getKeys(Properties);var length=keys.length;var i=0;var P;while(length>i)dP.f(O,P=keys[i++],Properties[P]);return O}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var toLength=__webpack_require__(132);var toAbsoluteIndex=__webpack_require__(133);module.exports=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIObject($this);var length=toLength(O.length);var index=toAbsoluteIndex(fromIndex,length);var value;if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];if(value!=value)return true}else for(;length>index;index++)if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index||0}return!IS_INCLUDES&&-1}}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var min=Math.min;module.exports=function(it){return it>0?min(toInteger(it),9007199254740991):0}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var max=Math.max;var min=Math.min;module.exports=function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length)}},function(module,exports,__webpack_require__){var document=__webpack_require__(18).document;module.exports=document&&document.documentElement},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var defined=__webpack_require__(51);module.exports=function(TO_STRING){return function(that,pos){var s=String(defined(that));var i=toInteger(pos);var l=s.length;var a,b;if(i<0||i>=l)return TO_STRING?\"\":undefined;a=s.charCodeAt(i);return a<55296||a>56319||i+1===l||(b=s.charCodeAt(i+1))<56320||b>57343?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-55296<<10)+(b-56320)+65536}}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var get=__webpack_require__(137);module.exports=__webpack_require__(7).getIterator=function(it){var iterFn=get(it);if(typeof iterFn!=\"function\")throw TypeError(it+\" is not iterable!\");return anObject(iterFn.call(it))}},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).getIteratorMethod=function(it){if(it!=undefined)return it[ITERATOR]||it[\"@@iterator\"]||Iterators[classof(it)]}},function(module,exports,__webpack_require__){__webpack_require__(139);var $Object=__webpack_require__(7).Object;module.exports=function create(P,D){return $Object.create(P,D)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{create:__webpack_require__(54)})},function(module,exports,__webpack_require__){__webpack_require__(141);module.exports=__webpack_require__(7).Object.keys},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $keys=__webpack_require__(33);__webpack_require__(87)(\"keys\",function(){return function keys(it){return $keys(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(143),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(60);__webpack_require__(49);module.exports=__webpack_require__(61).f(\"iterator\")},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(145),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(146);__webpack_require__(151);__webpack_require__(152);__webpack_require__(153);module.exports=__webpack_require__(7).Symbol},function(module,exports,__webpack_require__){\"use strict\";var global=__webpack_require__(18);var has=__webpack_require__(22);var DESCRIPTORS=__webpack_require__(21);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var META=__webpack_require__(147).KEY;var $fails=__webpack_require__(28);var shared=__webpack_require__(57);var setToStringTag=__webpack_require__(59);var uid=__webpack_require__(40);var wks=__webpack_require__(13);var wksExt=__webpack_require__(61);var wksDefine=__webpack_require__(62);var enumKeys=__webpack_require__(148);var isArray=__webpack_require__(149);var anObject=__webpack_require__(27);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var createDesc=__webpack_require__(39);var _create=__webpack_require__(54);var gOPNExt=__webpack_require__(150);var $GOPD=__webpack_require__(89);var $DP=__webpack_require__(20);var $keys=__webpack_require__(33);var gOPD=$GOPD.f;var dP=$DP.f;var gOPN=gOPNExt.f;var $Symbol=global.Symbol;var $JSON=global.JSON;var _stringify=$JSON&&$JSON.stringify;var PROTOTYPE=\"prototype\";var HIDDEN=wks(\"_hidden\");var TO_PRIMITIVE=wks(\"toPrimitive\");var isEnum={}.propertyIsEnumerable;var SymbolRegistry=shared(\"symbol-registry\");var AllSymbols=shared(\"symbols\");var OPSymbols=shared(\"op-symbols\");var ObjectProto=Object[PROTOTYPE];var USE_NATIVE=typeof $Symbol==\"function\";var QObject=global.QObject;var setter=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;var setSymbolDesc=DESCRIPTORS&&$fails(function(){return _create(dP({},\"a\",{get:function(){return dP(this,\"a\",{value:7}).a}})).a!=7})?function(it,key,D){var protoDesc=gOPD(ObjectProto,key);if(protoDesc)delete ObjectProto[key];dP(it,key,D);if(protoDesc&&it!==ObjectProto)dP(ObjectProto,key,protoDesc)}:dP;var wrap=function(tag){var sym=AllSymbols[tag]=_create($Symbol[PROTOTYPE]);sym._k=tag;return sym};var isSymbol=USE_NATIVE&&typeof $Symbol.iterator==\"symbol\"?function(it){return typeof it==\"symbol\"}:function(it){return it instanceof $Symbol};var $defineProperty=function defineProperty(it,key,D){if(it===ObjectProto)$defineProperty(OPSymbols,key,D);anObject(it);key=toPrimitive(key,true);anObject(D);if(has(AllSymbols,key)){if(!D.enumerable){if(!has(it,HIDDEN))dP(it,HIDDEN,createDesc(1,{}));it[HIDDEN][key]=true}else{if(has(it,HIDDEN)&&it[HIDDEN][key])it[HIDDEN][key]=false;D=_create(D,{enumerable:createDesc(0,false)})}return setSymbolDesc(it,key,D)}return dP(it,key,D)};var $defineProperties=function defineProperties(it,P){anObject(it);var keys=enumKeys(P=toIObject(P));var i=0;var l=keys.length;var key;while(l>i)$defineProperty(it,key=keys[i++],P[key]);return it};var $create=function create(it,P){return P===undefined?_create(it):$defineProperties(_create(it),P)};var $propertyIsEnumerable=function propertyIsEnumerable(key){var E=isEnum.call(this,key=toPrimitive(key,true));if(this===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return false;return E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key]?E:true};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){it=toIObject(it);key=toPrimitive(key,true);if(it===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return;var D=gOPD(it,key);if(D&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key]))D.enumerable=true;return D};var $getOwnPropertyNames=function getOwnPropertyNames(it){var names=gOPN(toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(!has(AllSymbols,key=names[i++])&&key!=HIDDEN&&key!=META)result.push(key)}return result};var $getOwnPropertySymbols=function getOwnPropertySymbols(it){var IS_OP=it===ObjectProto;var names=gOPN(IS_OP?OPSymbols:toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(has(AllSymbols,key=names[i++])&&(IS_OP?has(ObjectProto,key):true))result.push(AllSymbols[key])}return result};if(!USE_NATIVE){$Symbol=function Symbol(){if(this instanceof $Symbol)throw TypeError(\"Symbol is not a constructor!\");var tag=uid(arguments.length>0?arguments[0]:undefined);var $set=function(value){if(this===ObjectProto)$set.call(OPSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDesc(this,tag,createDesc(1,value))};if(DESCRIPTORS&&setter)setSymbolDesc(ObjectProto,tag,{configurable:true,set:$set});return wrap(tag)};redefine($Symbol[PROTOTYPE],\"toString\",function toString(){return this._k});$GOPD.f=$getOwnPropertyDescriptor;$DP.f=$defineProperty;__webpack_require__(88).f=gOPNExt.f=$getOwnPropertyNames;__webpack_require__(42).f=$propertyIsEnumerable;__webpack_require__(63).f=$getOwnPropertySymbols;if(DESCRIPTORS&&!__webpack_require__(52)){redefine(ObjectProto,\"propertyIsEnumerable\",$propertyIsEnumerable,true)}wksExt.f=function(name){return wrap(wks(name))}}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Symbol:$Symbol});for(var es6Symbols=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),j=0;es6Symbols.length>j;)wks(es6Symbols[j++]);for(var wellKnownSymbols=$keys(wks.store),k=0;wellKnownSymbols.length>k;)wksDefine(wellKnownSymbols[k++]);$export($export.S+$export.F*!USE_NATIVE,\"Symbol\",{for:function(key){return has(SymbolRegistry,key+=\"\")?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key)},keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+\" is not a symbol!\");for(var key in SymbolRegistry)if(SymbolRegistry[key]===sym)return key},useSetter:function(){setter=true},useSimple:function(){setter=false}});$export($export.S+$export.F*!USE_NATIVE,\"Object\",{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor,getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols});$JSON&&$export($export.S+$export.F*(!USE_NATIVE||$fails(function(){var S=$Symbol();return _stringify([S])!=\"[null]\"||_stringify({a:S})!=\"{}\"||_stringify(Object(S))!=\"{}\"})),\"JSON\",{stringify:function stringify(it){if(it===undefined||isSymbol(it))return;var args=[it];var i=1;var replacer,$replacer;while(arguments.length>i)args.push(arguments[i++]);replacer=args[1];if(typeof replacer==\"function\")$replacer=replacer;if($replacer||!isArray(replacer))replacer=function(key,value){if($replacer)value=$replacer.call(this,key,value);if(!isSymbol(value))return value};args[1]=replacer;return _stringify.apply($JSON,args)}});$Symbol[PROTOTYPE][TO_PRIMITIVE]||__webpack_require__(26)($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);setToStringTag($Symbol,\"Symbol\");setToStringTag(Math,\"Math\",true);setToStringTag(global.JSON,\"JSON\",true)},function(module,exports,__webpack_require__){var META=__webpack_require__(40)(\"meta\");var isObject=__webpack_require__(32);var has=__webpack_require__(22);var setDesc=__webpack_require__(20).f;var id=0;var isExtensible=Object.isExtensible||function(){return true};var FREEZE=!__webpack_require__(28)(function(){return isExtensible(Object.preventExtensions({}))});var setMeta=function(it){setDesc(it,META,{value:{i:\"O\"+ ++id,w:{}}})};var fastKey=function(it,create){if(!isObject(it))return typeof it==\"symbol\"?it:(typeof it==\"string\"?\"S\":\"P\")+it;if(!has(it,META)){if(!isExtensible(it))return\"F\";if(!create)return\"E\";setMeta(it)}return it[META].i};var getWeak=function(it,create){if(!has(it,META)){if(!isExtensible(it))return true;if(!create)return false;setMeta(it)}return it[META].w};var onFreeze=function(it){if(FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META))setMeta(it);return it};var meta=module.exports={KEY:META,NEED:false,fastKey:fastKey,getWeak:getWeak,onFreeze:onFreeze}},function(module,exports,__webpack_require__){var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);module.exports=function(it){var result=getKeys(it);var getSymbols=gOPS.f;if(getSymbols){var symbols=getSymbols(it);var isEnum=pIE.f;var i=0;var key;while(symbols.length>i)if(isEnum.call(it,key=symbols[i++]))result.push(key)}return result}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Array.isArray||function isArray(arg){return cof(arg)==\"Array\"}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var gOPN=__webpack_require__(88).f;var toString={}.toString;var windowNames=typeof window==\"object\"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return gOPN(it)}catch(e){return windowNames.slice()}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)==\"[object Window]\"?getWindowNames(it):gOPN(toIObject(it))}},function(module,exports){},function(module,exports,__webpack_require__){__webpack_require__(62)(\"asyncIterator\")},function(module,exports,__webpack_require__){__webpack_require__(62)(\"observable\")},function(module,exports,__webpack_require__){(function(module){var require;(function(global,factory){true?module.exports=factory():typeof define===\"function\"&&define.amd?define(factory):global.moment=factory()})(this,function(){\"use strict\";var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}function setHookCallback(callback){hookCallback=callback}function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)===\"[object Array]\"}function isObject(input){return input!=null&&Object.prototype.toString.call(input)===\"[object Object]\"}function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(obj).length===0}else{var k;for(k in obj){if(obj.hasOwnProperty(k)){return false}}return true}}function isUndefined(input){return input===void 0}function isNumber(input){return typeof input===\"number\"||Object.prototype.toString.call(input)===\"[object Number]\"}function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)===\"[object Date]\"}function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i))}return res}function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,\"toString\")){a.toString=b.toString}if(hasOwnProp(b,\"valueOf\")){a.valueOf=b.valueOf}return a}function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,true).utc()}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],meridiem:null,rfc2822:false,weekdayMismatch:false}}function getParsingFlags(m){if(m._pf==null){m._pf=defaultParsingFlags()}return m._pf}var some;if(Array.prototype.some){some=Array.prototype.some}else{some=function(fun){var t=Object(this);var len=t.length>>>0;for(var i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true}}return false}}function isValid(m){if(m._isValid==null){var flags=getParsingFlags(m);var parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null});var isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||flags.meridiem&&parsedParts);if(m._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===undefined}if(Object.isFrozen==null||!Object.isFrozen(m)){m._isValid=isNowValid}else{return isNowValid}}return m._isValid}function createInvalid(flags){var m=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m),flags)}else{getParsingFlags(m).userInvalidated=true}return m}var momentProperties=hooks.momentProperties=[];function copyConfig(to,from){var i,prop,val;if(!isUndefined(from._isAMomentObject)){to._isAMomentObject=from._isAMomentObject}if(!isUndefined(from._i)){to._i=from._i}if(!isUndefined(from._f)){to._f=from._f}if(!isUndefined(from._l)){to._l=from._l}if(!isUndefined(from._strict)){to._strict=from._strict}if(!isUndefined(from._tzm)){to._tzm=from._tzm}if(!isUndefined(from._isUTC)){to._isUTC=from._isUTC}if(!isUndefined(from._offset)){to._offset=from._offset}if(!isUndefined(from._pf)){to._pf=getParsingFlags(from)}if(!isUndefined(from._locale)){to._locale=from._locale}if(momentProperties.length>0){for(i=0;i<momentProperties.length;i++){prop=momentProperties[i];val=from[prop];if(!isUndefined(val)){to[prop]=val}}}return to}var updateInProgress=false;function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false}}function isMoment(obj){return obj instanceof Moment||obj!=null&&obj._isAMomentObject!=null}function absFloor(number){if(number<0){return Math.ceil(number)||0}else{return Math.floor(number)}}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber)}return value}function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}function warn(msg){if(hooks.suppressDeprecationWarnings===false&&typeof console!==\"undefined\"&&console.warn){console.warn(\"Deprecation warning: \"+msg)}}function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg)}if(firstTime){var args=[];var arg;for(var i=0;i<arguments.length;i++){arg=\"\";if(typeof arguments[i]===\"object\"){arg+=\"\\n[\"+i+\"] \";for(var key in arguments[0]){arg+=key+\": \"+arguments[0][key]+\", \"}arg=arg.slice(0,-2)}else{arg=arguments[i]}args.push(arg)}warn(msg+\"\\nArguments: \"+Array.prototype.slice.call(args).join(\"\")+\"\\n\"+(new Error).stack);firstTime=false}return fn.apply(this,arguments)},fn)}var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg)}if(!deprecations[name]){warn(msg);deprecations[name]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return input instanceof Function||Object.prototype.toString.call(input)===\"[object Function]\"}function set(config){var prop,i;for(i in config){prop=config[i];if(isFunction(prop)){this[i]=prop}else{this[\"_\"+i]=prop}}this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop])}else if(childConfig[prop]!=null){res[prop]=childConfig[prop]}else{delete res[prop]}}}for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop])}}return res}function Locale(config){if(config!=null){this.set(config)}}var keys;if(Object.keys){keys=Object.keys}else{keys=function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i)}}return res}}var defaultCalendar={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"};function calendar(key,mom,now){var output=this._calendar[key]||this._calendar[\"sameElse\"];return isFunction(output)?output.call(mom,now):output}var defaultLongDateFormat={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};function longDateFormat(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format||!formatUpper){return format}this._longDateFormat[key]=formatUpper.replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)});return this._longDateFormat[key]}var defaultInvalidDate=\"Invalid date\";function invalidDate(){return this._invalidDate}var defaultOrdinal=\"%d\";var defaultDayOfMonthOrdinalParse=/\\d{1,2}/;function ordinal(number){return this._ordinal.replace(\"%d\",number)}var defaultRelativeTime={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)}function pastFuture(diff,output){var format=this._relativeTime[diff>0?\"future\":\"past\"];return isFunction(format)?format(output):format.replace(/%s/i,output)}var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+\"s\"]=aliases[shorthand]=unit}function normalizeUnits(units){return typeof units===\"string\"?aliases[units]||aliases[units.toLowerCase()]:undefined}function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority}function getPrioritizedUnits(unitsObj){var units=[];for(var u in unitsObj){units.push({unit:u,priority:priorities[u]})}units.sort(function(a,b){return a.priority-b.priority});return units}function zeroFill(number,targetLength,forceSign){var absNumber=\"\"+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign=number>=0;return(sign?forceSign?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber}var formattingTokens=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;var localFormattingTokens=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;var formatFunctions={};var formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;if(typeof callback===\"string\"){func=function(){return this[callback]()}}if(token){formatTokenFunctions[token]=func}if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2])}}if(ordinal){formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token)}}}function removeFormattingTokens(input){if(input.match(/\\[[\\s\\S]/)){return input.replace(/^\\[|\\]$/g,\"\")}return input.replace(/\\\\/g,\"\")}function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output=\"\",i;for(i=0;i<length;i++){output+=isFunction(array[i])?array[i].call(mom,format):array[i]}return output}}function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate()}format=expandFormat(format,m.localeData());formatFunctions[format]=formatFunctions[format]||makeFormatFunction(format);return formatFunctions[format](m)}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format}var match1=/\\d/;var match2=/\\d\\d/;var match3=/\\d{3}/;var match4=/\\d{4}/;var match6=/[+-]?\\d{6}/;var match1to2=/\\d\\d?/;var match3to4=/\\d\\d\\d\\d?/;var match5to6=/\\d\\d\\d\\d\\d\\d?/;var match1to3=/\\d{1,3}/;var match1to4=/\\d{1,4}/;var match1to6=/[+-]?\\d{1,6}/;var matchUnsigned=/\\d+/;var matchSigned=/[+-]?\\d+/;var matchOffset=/Z|[+-]\\d\\d:?\\d\\d/gi;var matchShortOffset=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi;var matchTimestamp=/[+-]?\\d+(\\.\\d{1,3})?/;var matchWord=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;var regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return isStrict&&strictRegex?strictRegex:regex}}function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token))}return regexes[token](config._strict,config._locale)}function unescapeFormat(s){return regexEscape(s.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4}))}function regexEscape(s){return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var tokens={};function addParseToken(token,callback){var i,func=callback;if(typeof token===\"string\"){token=[token]}if(isNumber(callback)){func=function(input,array){array[callback]=toInt(input)}}for(i=0;i<token.length;i++){tokens[token[i]]=func}}function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{};callback(input,config._w,config,token)})}function addTimeToArrayFromToken(token,input,config){if(input!=null&&hasOwnProp(tokens,token)){tokens[token](input,config._a,config,token)}}var YEAR=0;var MONTH=1;var DATE=2;var HOUR=3;var MINUTE=4;var SECOND=5;var MILLISECOND=6;var WEEK=7;var WEEKDAY=8;addFormatToken(\"Y\",0,0,function(){var y=this.year();return y<=9999?\"\"+y:\"+\"+y});addFormatToken(0,[\"YY\",2],0,function(){return this.year()%100});addFormatToken(0,[\"YYYY\",4],0,\"year\");addFormatToken(0,[\"YYYYY\",5],0,\"year\");addFormatToken(0,[\"YYYYYY\",6,true],0,\"year\");addUnitAlias(\"year\",\"y\");addUnitPriority(\"year\",1);addRegexToken(\"Y\",matchSigned)\n;addRegexToken(\"YY\",match1to2,match2);addRegexToken(\"YYYY\",match1to4,match4);addRegexToken(\"YYYYY\",match1to6,match6);addRegexToken(\"YYYYYY\",match1to6,match6);addParseToken([\"YYYYY\",\"YYYYYY\"],YEAR);addParseToken(\"YYYY\",function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input)});addParseToken(\"YY\",function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input)});addParseToken(\"Y\",function(input,array){array[YEAR]=parseInt(input,10)});function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};var getSetYear=makeGetSet(\"FullYear\",true);function getIsLeapYear(){return isLeapYear(this.year())}function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this}else{return get(this,unit)}}}function get(mom,unit){return mom.isValid()?mom._d[\"get\"+(mom._isUTC?\"UTC\":\"\")+unit]():NaN}function set$1(mom,unit,value){if(mom.isValid()&&!isNaN(value)){if(unit===\"FullYear\"&&isLeapYear(mom.year())){mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value,mom.month(),daysInMonth(value,mom.month()))}else{mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value)}}}function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]()}return this}function stringSet(units,value){if(typeof units===\"object\"){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units);for(var i=0;i<prioritized.length;i++){this[prioritized[i].unit](units[prioritized[i].unit])}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value)}}return this}function mod(n,x){return(n%x+x)%x}var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf}else{indexOf=function(o){var i;for(i=0;i<this.length;++i){if(this[i]===o){return i}}return-1}}function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN}var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?isLeapYear(year)?29:28:31-modMonth%7%2}addFormatToken(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1});addFormatToken(\"MMM\",0,0,function(format){return this.localeData().monthsShort(this,format)});addFormatToken(\"MMMM\",0,0,function(format){return this.localeData().months(this,format)});addUnitAlias(\"month\",\"M\");addUnitPriority(\"month\",8);addRegexToken(\"M\",match1to2);addRegexToken(\"MM\",match1to2,match2);addRegexToken(\"MMM\",function(isStrict,locale){return locale.monthsShortRegex(isStrict)});addRegexToken(\"MMMM\",function(isStrict,locale){return locale.monthsRegex(isStrict)});addParseToken([\"M\",\"MM\"],function(input,array){array[MONTH]=toInt(input)-1});addParseToken([\"MMM\",\"MMMM\"],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);if(month!=null){array[MONTH]=month}else{getParsingFlags(config).invalidMonth=input}});var MONTHS_IN_FORMAT=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;var defaultLocaleMonths=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");function localeMonths(m,format){if(!m){return isArray(this._months)?this._months:this._months[\"standalone\"]}return isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?\"format\":\"standalone\"][m.month()]}var defaultLocaleMonthsShort=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function localeMonthsShort(m,format){if(!m){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort[\"standalone\"]}return isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?\"format\":\"standalone\"][m.month()]}function handleStrictParse(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2e3,i]);this._shortMonthsParse[i]=this.monthsShort(mom,\"\").toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}}else{if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}}}function localeMonthsParse(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format,strict)}if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=createUTC([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp(\"^\"+this.months(mom,\"\").replace(\".\",\"\")+\"$\",\"i\");this._shortMonthsParse[i]=new RegExp(\"^\"+this.monthsShort(mom,\"\").replace(\".\",\"\")+\"$\",\"i\")}if(!strict&&!this._monthsParse[i]){regex=\"^\"+this.months(mom,\"\")+\"|^\"+this.monthsShort(mom,\"\");this._monthsParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"MMMM\"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format===\"MMM\"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}}function setMonth(mom,value){var dayOfMonth;if(!mom.isValid()){return mom}if(typeof value===\"string\"){if(/^\\d+$/.test(value)){value=toInt(value)}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom}}}dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+\"Month\"](value,dayOfMonth);return mom}function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this}else{return get(this,\"Month\")}}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}var defaultMonthsShortRegex=matchWord;function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!hasOwnProp(this,\"_monthsShortRegex\")){this._monthsShortRegex=defaultMonthsShortRegex}return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex}}var defaultMonthsRegex=matchWord;function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!hasOwnProp(this,\"_monthsRegex\")){this._monthsRegex=defaultMonthsRegex}return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex}}function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length}var shortPieces=[],longPieces=[],mixedPieces=[],i,mom;for(i=0;i<12;i++){mom=createUTC([2e3,i]);shortPieces.push(this.monthsShort(mom,\"\"));longPieces.push(this.months(mom,\"\"));mixedPieces.push(this.months(mom,\"\"));mixedPieces.push(this.monthsShort(mom,\"\"))}shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<12;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i])}for(i=0;i<24;i++){mixedPieces[i]=regexEscape(mixedPieces[i])}this._monthsRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._monthsShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\")}function createDate(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);if(y<100&&y>=0&&isFinite(date.getFullYear())){date.setFullYear(y)}return date}function createUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));if(y<100&&y>=0&&isFinite(date.getUTCFullYear())){date.setUTCFullYear(y)}return date}function firstWeekOffset(year,dow,doy){var fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1}function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year)}else{resYear=year;resDayOfYear=dayOfYear}return{year:resYear,dayOfYear:resDayOfYear}}function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy)}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1}else{resYear=mom.year();resWeek=week}return{week:resWeek,year:resYear}}function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7}addFormatToken(\"w\",[\"ww\",2],\"wo\",\"week\");addFormatToken(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\");addUnitAlias(\"week\",\"w\");addUnitAlias(\"isoWeek\",\"W\");addUnitPriority(\"week\",5);addUnitPriority(\"isoWeek\",5);addRegexToken(\"w\",match1to2);addRegexToken(\"ww\",match1to2,match2);addRegexToken(\"W\",match1to2);addRegexToken(\"WW\",match1to2,match2);addWeekParseToken([\"w\",\"ww\",\"W\",\"WW\"],function(input,week,config,token){week[token.substr(0,1)]=toInt(input)});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week}var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,\"d\")}function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,\"d\")}addFormatToken(\"d\",0,\"do\",\"day\");addFormatToken(\"dd\",0,0,function(format){return this.localeData().weekdaysMin(this,format)});addFormatToken(\"ddd\",0,0,function(format){return this.localeData().weekdaysShort(this,format)});addFormatToken(\"dddd\",0,0,function(format){return this.localeData().weekdays(this,format)});addFormatToken(\"e\",0,0,\"weekday\");addFormatToken(\"E\",0,0,\"isoWeekday\");addUnitAlias(\"day\",\"d\");addUnitAlias(\"weekday\",\"e\");addUnitAlias(\"isoWeekday\",\"E\");addUnitPriority(\"day\",11);addUnitPriority(\"weekday\",11);addUnitPriority(\"isoWeekday\",11);addRegexToken(\"d\",match1to2);addRegexToken(\"e\",match1to2);addRegexToken(\"E\",match1to2);addRegexToken(\"dd\",function(isStrict,locale){return locale.weekdaysMinRegex(isStrict)});addRegexToken(\"ddd\",function(isStrict,locale){return locale.weekdaysShortRegex(isStrict)});addRegexToken(\"dddd\",function(isStrict,locale){return locale.weekdaysRegex(isStrict)});addWeekParseToken([\"dd\",\"ddd\",\"dddd\"],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);if(weekday!=null){week.d=weekday}else{getParsingFlags(config).invalidWeekday=input}});addWeekParseToken([\"d\",\"e\",\"E\"],function(input,week,config,token){week[token]=toInt(input)});function parseWeekday(input,locale){if(typeof input!==\"string\"){return input}if(!isNaN(input)){return parseInt(input,10)}input=locale.weekdaysParse(input);if(typeof input===\"number\"){return input}return null}function parseIsoWeekday(input,locale){if(typeof input===\"string\"){return locale.weekdaysParse(input)%7||7}return isNaN(input)?null:input}var defaultLocaleWeekdays=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");function localeWeekdays(m,format){if(!m){return isArray(this._weekdays)?this._weekdays:this._weekdays[\"standalone\"]}return isArray(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(format)?\"format\":\"standalone\"][m.day()]}var defaultLocaleWeekdaysShort=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");function localeWeekdaysShort(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort}var defaultLocaleWeekdaysMin=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");function localeWeekdaysMin(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin}function handleStrictParse$1(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2e3,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,\"\").toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,\"\").toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}}else{if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}}}function localeWeekdaysParse(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format,strict)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp(\"^\"+this.weekdays(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._shortWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysShort(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._minWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysMin(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\")}if(!this._weekdaysParse[i]){regex=\"^\"+this.weekdays(mom,\"\")+\"|^\"+this.weekdaysShort(mom,\"\")+\"|^\"+this.weekdaysMin(mom,\"\");this._weekdaysParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"dddd\"&&this._fullWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"ddd\"&&this._shortWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"dd\"&&this._minWeekdaysParse[i].test(weekdayName)){return i}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i}}}function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,\"d\")}else{return day}}function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,\"d\")}function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7)}else{return this.day()||7}}var defaultWeekdaysRegex=matchWord;function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!hasOwnProp(this,\"_weekdaysRegex\")){this._weekdaysRegex=defaultWeekdaysRegex}return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex}}var defaultWeekdaysShortRegex=matchWord;function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!hasOwnProp(this,\"_weekdaysShortRegex\")){this._weekdaysShortRegex=defaultWeekdaysShortRegex}return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}}var defaultWeekdaysMinRegex=matchWord;function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!hasOwnProp(this,\"_weekdaysMinRegex\")){this._weekdaysMinRegex=defaultWeekdaysMinRegex}return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}}function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length}var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);minp=this.weekdaysMin(mom,\"\");shortp=this.weekdaysShort(mom,\"\");longp=this.weekdays(mom,\"\");minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp)}minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<7;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);mixedPieces[i]=regexEscape(mixedPieces[i])}this._weekdaysRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\");this._weekdaysMinStrictRegex=new RegExp(\"^(\"+minPieces.join(\"|\")+\")\",\"i\")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken(\"H\",[\"HH\",2],0,\"hour\");addFormatToken(\"h\",[\"hh\",2],0,hFormat);addFormatToken(\"k\",[\"kk\",2],0,kFormat);addFormatToken(\"hmm\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)});addFormatToken(\"hmmss\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});addFormatToken(\"Hmm\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)});addFormatToken(\"Hmmss\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase)})}meridiem(\"a\",true);meridiem(\"A\",false);addUnitAlias(\"hour\",\"h\");addUnitPriority(\"hour\",13);function matchMeridiem(isStrict,locale){return locale._meridiemParse}addRegexToken(\"a\",matchMeridiem);addRegexToken(\"A\",matchMeridiem);addRegexToken(\"H\",match1to2);addRegexToken(\"h\",match1to2);addRegexToken(\"k\",match1to2);addRegexToken(\"HH\",match1to2,match2);addRegexToken(\"hh\",match1to2,match2);addRegexToken(\"kk\",match1to2,match2);addRegexToken(\"hmm\",match3to4);addRegexToken(\"hmmss\",match5to6);addRegexToken(\"Hmm\",match3to4);addRegexToken(\"Hmmss\",match5to6);addParseToken([\"H\",\"HH\"],HOUR);addParseToken([\"k\",\"kk\"],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput});addParseToken([\"a\",\"A\"],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input});addParseToken([\"h\",\"hh\"],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true});addParseToken(\"hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true});addParseToken(\"hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true});addParseToken(\"Hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos))});addParseToken(\"Hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2))});function localeIsPM(input){return(input+\"\").toLowerCase().charAt(0)===\"p\"}var defaultLocaleMeridiemParse=/[ap]\\.?m?\\.?/i;function localeMeridiem(hours,minutes,isLower){if(hours>11){return isLower?\"pm\":\"PM\"}else{return isLower?\"am\":\"AM\"}}var getSetHour=makeGetSet(\"Hours\",true);var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse};var locales={};var localeFamilies={};var globalLocale;function normalizeLocale(key){return key?key.toLowerCase().replace(\"_\",\"-\"):key}function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split(\"-\");j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split(\"-\"):null;while(j>0){locale=loadLocale(split.slice(0,j).join(\"-\"));if(locale){return locale}if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break}j--}i++}return null}function loadLocale(name){var oldLocale=null;if(!locales[name]&&typeof module!==\"undefined\"&&module&&module.exports){try{oldLocale=globalLocale._abbr;var aliasedRequire=require;!function webpackMissingModule(){var e=new Error('Cannot find module \"./locale\"');e.code=\"MODULE_NOT_FOUND\";throw e}();getSetGlobalLocale(oldLocale)}catch(e){}}return locales[name]}function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key)}else{data=defineLocale(key,values)}if(data){globalLocale=data}}return globalLocale._abbr}function defineLocale(name,config){if(config!==null){var parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change \"+\"an existing locale. moment.defineLocale(localeName, \"+\"config) should only be used for creating a new locale \"+\"See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\");parentConfig=locales[name]._config}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[]}localeFamilies[config.parentLocale].push({name:name,config:config});return null}}locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config)})}getSetGlobalLocale(name);return locales[name]}else{delete locales[name];return null}}function updateLocale(name,config){if(config!=null){var locale,parentConfig=baseConfig;if(locales[name]!=null){parentConfig=locales[name]._config}config=mergeConfigs(parentConfig,config);locale=new Locale(config);locale.parentLocale=locales[name];locales[name]=locale;getSetGlobalLocale(name)}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale}else if(locales[name]!=null){delete locales[name]}}}return locales[name]}function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr}if(!key){return globalLocale}if(!isArray(key)){locale=loadLocale(key);if(locale){return locale}key=[key]}return chooseLocale(key)}function listLocales(){return keys(locales)}function checkOverflow(m){var overflow;var a=m._a;if(a&&getParsingFlags(m).overflow===-2){overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||a[HOUR]===24&&(a[MINUTE]!==0||a[SECOND]!==0||a[MILLISECOND]!==0)?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}if(getParsingFlags(m)._overflowWeeks&&overflow===-1){overflow=WEEK}if(getParsingFlags(m)._overflowWeekday&&overflow===-1){overflow=WEEKDAY}getParsingFlags(m).overflow=overflow}return m}function defaults(a,b,c){if(a!=null){return a}if(b!=null){return b}return c}function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()]}return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()]}function configFromArray(config){var i,date,input=[],currentDate,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true}date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}if(config._w&&typeof config._w.d!==\"undefined\"&&config._w.d!==config._d.getDay()){getParsingFlags(config).weekdayMismatch=true}}function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w.W,1);weekday=defaults(w.E,1);if(weekday<1||weekday>7){weekdayOverflow=true}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;var curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year);week=defaults(w.w,curWeek.week);if(w.d!=null){weekday=w.d;if(weekday<0||weekday>6){weekdayOverflow=true}}else if(w.e!=null){weekday=w.e+dow;if(w.e<0||w.e>6){weekdayOverflow=true}}else{weekday=dow}}if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}}var extendedIsoRegex=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;var basicIsoRegex=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;var tzRegex=/Z|[+-]\\d\\d(?::?\\d\\d)?/;var isoDates=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,false],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,false],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,false],[\"YYYYDDD\",/\\d{7}/]];var isoTimes=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]];var aspNetJsonRegex=/^\\/?Date\\((\\-?\\d+)/i;function configFromISO(config){var i,l,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat;if(match){getParsingFlags(config).iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break}}if(dateFormat==null){config._isValid=false;return}if(match[3]){for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||\" \")+isoTimes[i][0];break}}if(timeFormat==null){config._isValid=false;return}}if(!allowTime&&timeFormat!=null){config._isValid=false;return}if(match[4]){if(tzRegex.exec(match[4])){tzFormat=\"Z\"}else{config._isValid=false;return}}config._f=dateFormat+(timeFormat||\"\")+(tzFormat||\"\");configFromStringAndFormat(config)}else{config._isValid=false}}var rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];if(secondStr){result.push(parseInt(secondStr,10))}return result}function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2e3+year}else if(year<=999){return 1900+year}return year}function preprocessRFC2822(s){return s.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").trim()}function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false}}return true}var obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset]}else if(militaryOffset){return 0}else{var hm=parseInt(numOffset,10);var m=hm%100,h=(hm-m)/100;return h*60+m}}function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i));if(match){var parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return}config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true}else{config._isValid=false}}function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return}configFromISO(config);if(config._isValid===false){delete config._isValid}else{return}configFromRFC2822(config);if(config._isValid===false){delete config._isValid}else{return}hooks.createFromInputFallback(config)}hooks.createFromInputFallback=deprecate(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), \"+\"which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are \"+\"discouraged and will be removed in an upcoming major release. Please refer to \"+\"http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(config){config._d=new Date(config._i+(config._useUTC?\" UTC\":\"\"))});hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return}if(config._f===hooks.RFC_2822){configFromRFC2822(config);return}config._a=[];getParsingFlags(config).empty=true\n;var string=\"\"+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token]){if(parsedInput){getParsingFlags(config).empty=false}else{getParsingFlags(config).unusedTokens.push(token)}addTimeToArrayFromToken(token,parsedInput,config)}else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token)}}getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string)}if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=undefined}getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);configFromArray(config);checkOverflow(config)}function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour}if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem)}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue}currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}extend(config,bestMoment||tempConfig)}function configFromObject(config){if(config._d){return}var i=normalizeObjectUnits(config._i);config._a=map([i.year,i.month,i.day||i.date,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10)});configFromArray(config)}function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,\"d\");res._nextDay=undefined}return res}function prepareConfig(config){var input=config._i,format=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||format===undefined&&input===\"\"){return createInvalid({nullInput:true})}if(typeof input===\"string\"){config._i=input=config._locale.preparse(input)}if(isMoment(input)){return new Moment(checkOverflow(input))}else if(isDate(input)){config._d=input}else if(isArray(format)){configFromStringAndArray(config)}else if(format){configFromStringAndFormat(config)}else{configFromInput(config)}if(!isValid(config)){config._d=null}return config}function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now())}else if(isDate(input)){config._d=new Date(input.valueOf())}else if(typeof input===\"string\"){configFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});configFromArray(config)}else if(isObject(input)){configFromObject(config)}else if(isNumber(input)){config._d=new Date(input)}else{hooks.createFromInputFallback(config)}}function createLocalOrUTC(input,format,locale,strict,isUTC){var c={};if(locale===true||locale===false){strict=locale;locale=undefined}if(isObject(input)&&isObjectEmpty(input)||isArray(input)&&input.length===0){input=undefined}c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c)}function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false)}var prototypeMin=deprecate(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other}else{return createInvalid()}});var prototypeMax=deprecate(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other}else{return createInvalid()}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return createLocal()}res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i]}}return res}function min(){var args=[].slice.call(arguments,0);return pickBy(\"isBefore\",args)}function max(){var args=[].slice.call(arguments,0);return pickBy(\"isAfter\",args)}var now=function(){return Date.now?Date.now():+new Date};var ordering=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function isDurationValid(m){for(var key in m){if(!(indexOf.call(ordering,key)!==-1&&(m[key]==null||!isNaN(m[key])))){return false}}var unitHasDecimal=false;for(var i=0;i<ordering.length;++i){if(m[ordering[i]]){if(unitHasDecimal){return false}if(parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])){unitHasDecimal=true}}}return true}function isValid$1(){return this._isValid}function createInvalid$1(){return createDuration(NaN)}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds+seconds*1e3+minutes*6e4+hours*1e3*60*60;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=getLocale();this._bubble()}function isDuration(obj){return obj instanceof Duration}function absRound(number){if(number<0){return Math.round(-1*number)*-1}else{return Math.round(number)}}function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset();var sign=\"+\";if(offset<0){offset=-offset;sign=\"-\"}return sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~offset%60,2)})}offset(\"Z\",\":\");offset(\"ZZ\",\"\");addRegexToken(\"Z\",matchShortOffset);addRegexToken(\"ZZ\",matchShortOffset);addParseToken([\"Z\",\"ZZ\"],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input)});var chunkOffset=/([\\+\\-]|\\d\\d)/gi;function offsetFromString(matcher,string){var matches=(string||\"\").match(matcher);if(matches===null){return null}var chunk=matches[matches.length-1]||[];var parts=(chunk+\"\").match(chunkOffset)||[\"-\",0,0];var minutes=+(parts[1]*60)+toInt(parts[2]);return minutes===0?0:parts[0]===\"+\"?minutes:-minutes}function cloneWithOffset(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff);hooks.updateOffset(res,false);return res}else{return createLocal(input).local()}}function getDateOffset(m){return-Math.round(m._d.getTimezoneOffset()/15)*15}hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN}if(input!=null){if(typeof input===\"string\"){input=offsetFromString(matchShortOffset,input);if(input===null){return this}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,\"m\")}if(offset!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset,\"m\"),1,false)}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null}}return this}else{return this._isUTC?offset:getDateOffset(this)}}function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!==\"string\"){input=-input}this.utcOffset(input,keepLocalTime);return this}else{return-this.utcOffset()}}function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime)}function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),\"m\")}}return this}function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true)}else if(typeof this._i===\"string\"){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone)}else{this.utcOffset(0,true)}}return this}function hasAlignedHourOffset(input){if(!this.isValid()){return false}input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted}var c={};copyConfig(c,this);c=prepareConfig(c);if(c._a){var other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0}else{this._isDSTShifted=false}return this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:false}function isUtcOffset(){return this.isValid()?this._isUTC:false}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false}var aspNetRegex=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;var isoRegex=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months}}else if(isNumber(input)){duration={};if(key){duration[key]=input}else{duration.milliseconds=input}}else if(!!(match=aspNetRegex.exec(input))){sign=match[1]===\"-\"?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(match[MILLISECOND]*1e3))*sign}}else if(!!(match=isoRegex.exec(input))){sign=match[1]===\"-\"?-1:match[1]===\"+\"?1:1;duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign)}}else if(duration==null){duration={}}else if(typeof duration===\"object\"&&(\"from\"in duration||\"to\"in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months}ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,\"_locale\")){ret._locale=input._locale}return ret}createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(\",\",\".\"));return(isNaN(res)?0:res)*sign}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,\"M\").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,\"M\");return res}function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0}}other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,\"moment().\"+name+\"(period, number) is deprecated. Please use moment().\"+name+\"(number, period). \"+\"See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\");tmp=val;val=period;period=tmp}val=typeof val===\"string\"?+val:val;dur=createDuration(val,period);addSubtract(this,dur,direction);return this}}function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);if(!mom.isValid()){return}updateOffset=updateOffset==null?true:updateOffset;if(months){setMonth(mom,get(mom,\"Month\")+months*isAdding)}if(days){set$1(mom,\"Date\",get(mom,\"Date\")+days*isAdding)}if(milliseconds){mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding)}if(updateOffset){hooks.updateOffset(mom,days||months)}}var add=createAdder(1,\"add\");var subtract=createAdder(-1,\"subtract\");function getCalendarFormat(myMoment,now){var diff=myMoment.diff(now,\"days\",true);return diff<-6?\"sameElse\":diff<-1?\"lastWeek\":diff<0?\"lastDay\":diff<1?\"sameDay\":diff<2?\"nextDay\":diff<7?\"nextWeek\":\"sameElse\"}function calendar$1(time,formats){var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf(\"day\"),format=hooks.calendarFormat(this,sod)||\"sameElse\";var output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)))}function clone(){return new Moment(this)}function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()>localInput.valueOf()}else{return localInput.valueOf()<this.clone().startOf(units).valueOf()}}function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()<localInput.valueOf()}else{return this.clone().endOf(units).valueOf()<localInput.valueOf()}}function isBetween(from,to,units,inclusivity){inclusivity=inclusivity||\"()\";return(inclusivity[0]===\"(\"?this.isAfter(from,units):!this.isBefore(from,units))&&(inclusivity[1]===\")\"?this.isBefore(to,units):!this.isAfter(to,units))}function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units||\"millisecond\");if(units===\"millisecond\"){return this.valueOf()===localInput.valueOf()}else{inputMs=localInput.valueOf();return this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf()}}function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units)}function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units)}function diff(input,units,asFloat){var that,zoneDelta,delta,output;if(!this.isValid()){return NaN}that=cloneWithOffset(input,this);if(!that.isValid()){return NaN}zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case\"year\":output=monthDiff(this,that)/12;break;case\"month\":output=monthDiff(this,that);break;case\"quarter\":output=monthDiff(this,that)/3;break;case\"second\":output=(this-that)/1e3;break;case\"minute\":output=(this-that)/6e4;break;case\"hour\":output=(this-that)/36e5;break;case\"day\":output=(this-that-zoneDelta)/864e5;break;case\"week\":output=(this-that-zoneDelta)/6048e5;break;default:output=this-that}return asFloat?output:absFloor(output)}function monthDiff(a,b){var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,\"months\"),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,\"months\");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a.clone().add(wholeMonthDiff+1,\"months\");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)||0}hooks.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\";hooks.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";function toString(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function toISOString(){if(!this.isValid()){return null}var m=this.clone().utc();if(m.year()<0||m.year()>9999){return formatMoment(m,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}if(isFunction(Date.prototype.toISOString)){return this.toDate().toISOString()}return formatMoment(m,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function inspect(){if(!this.isValid()){return\"moment.invalid(/* \"+this._i+\" */)\"}var func=\"moment\";var zone=\"\";if(!this.isLocal()){func=this.utcOffset()===0?\"moment.utc\":\"moment.parseZone\";zone=\"Z\"}var prefix=\"[\"+func+'(\"]';var year=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\";var datetime=\"-MM-DD[T]HH:mm:ss.SSS\";var suffix=zone+'[\")]';return this.format(prefix+year+datetime+suffix)}function format(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat}var output=formatMoment(this,inputString);return this.localeData().postformat(output)}function from(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix)}function to(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix)}function locale(key){var newLocaleData;if(key===undefined){return this._locale._abbr}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData}return this}}var lang=deprecate(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(key){if(key===undefined){return this.localeData()}else{return this.locale(key)}});function localeData(){return this._locale}function startOf(units){units=normalizeUnits(units);switch(units){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}if(units===\"week\"){this.weekday(0)}if(units===\"isoWeek\"){this.isoWeekday(1)}if(units===\"quarter\"){this.month(Math.floor(this.month()/3)*3)}return this}function endOf(units){units=normalizeUnits(units);if(units===undefined||units===\"millisecond\"){return this}if(units===\"date\"){units=\"day\"}return this.startOf(units).add(1,units===\"isoWeek\"?\"week\":units).subtract(1,\"ms\")}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond()]}function toObject(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken(0,[\"gg\",2],0,function(){return this.weekYear()%100});addFormatToken(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter)}addWeekYearFormatToken(\"gggg\",\"weekYear\");addWeekYearFormatToken(\"ggggg\",\"weekYear\");addWeekYearFormatToken(\"GGGG\",\"isoWeekYear\");addWeekYearFormatToken(\"GGGGG\",\"isoWeekYear\");addUnitAlias(\"weekYear\",\"gg\");addUnitAlias(\"isoWeekYear\",\"GG\");addUnitPriority(\"weekYear\",1);addUnitPriority(\"isoWeekYear\",1);addRegexToken(\"G\",matchSigned);addRegexToken(\"g\",matchSigned);addRegexToken(\"GG\",match1to2,match2);addRegexToken(\"gg\",match1to2,match2);addRegexToken(\"GGGG\",match1to4,match4);addRegexToken(\"gggg\",match1to4,match4);addRegexToken(\"GGGGG\",match1to6,match6);addRegexToken(\"ggggg\",match1to6,match6);addWeekParseToken([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(input,week,config,token){week[token.substr(0,2)]=toInt(input)});addWeekParseToken([\"gg\",\"GG\"],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input)});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)}function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget}return setWeekAll.call(this,input,week,weekday,dow,doy)}}function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this}addFormatToken(\"Q\",0,\"Qo\",\"quarter\");addUnitAlias(\"quarter\",\"Q\");addUnitPriority(\"quarter\",7);addRegexToken(\"Q\",match1);addParseToken(\"Q\",function(input,array){array[MONTH]=(toInt(input)-1)*3});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3)}addFormatToken(\"D\",[\"DD\",2],\"Do\",\"date\");addUnitAlias(\"date\",\"D\");addUnitPriority(\"date\",9);addRegexToken(\"D\",match1to2);addRegexToken(\"DD\",match1to2,match2);addRegexToken(\"Do\",function(isStrict,locale){return isStrict?locale._dayOfMonthOrdinalParse||locale._ordinalParse:locale._dayOfMonthOrdinalParseLenient});addParseToken([\"D\",\"DD\"],DATE);addParseToken(\"Do\",function(input,array){array[DATE]=toInt(input.match(match1to2)[0],10)});var getSetDayOfMonth=makeGetSet(\"Date\",true);addFormatToken(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\");addUnitAlias(\"dayOfYear\",\"DDD\");addUnitPriority(\"dayOfYear\",4);addRegexToken(\"DDD\",match1to3);addRegexToken(\"DDDD\",match3);addParseToken([\"DDD\",\"DDDD\"],function(input,array,config){config._dayOfYear=toInt(input)});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,\"d\")}addFormatToken(\"m\",[\"mm\",2],0,\"minute\");addUnitAlias(\"minute\",\"m\");addUnitPriority(\"minute\",14);addRegexToken(\"m\",match1to2);addRegexToken(\"mm\",match1to2,match2);addParseToken([\"m\",\"mm\"],MINUTE);var getSetMinute=makeGetSet(\"Minutes\",false);addFormatToken(\"s\",[\"ss\",2],0,\"second\");addUnitAlias(\"second\",\"s\");addUnitPriority(\"second\",15);addRegexToken(\"s\",match1to2);addRegexToken(\"ss\",match1to2,match2);addParseToken([\"s\",\"ss\"],SECOND);var getSetSecond=makeGetSet(\"Seconds\",false);addFormatToken(\"S\",0,0,function(){return~~(this.millisecond()/100)});addFormatToken(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)});addFormatToken(0,[\"SSS\",3],0,\"millisecond\");addFormatToken(0,[\"SSSS\",4],0,function(){return this.millisecond()*10});addFormatToken(0,[\"SSSSS\",5],0,function(){return this.millisecond()*100});addFormatToken(0,[\"SSSSSS\",6],0,function(){return this.millisecond()*1e3});addFormatToken(0,[\"SSSSSSS\",7],0,function(){return this.millisecond()*1e4});addFormatToken(0,[\"SSSSSSSS\",8],0,function(){return this.millisecond()*1e5});addFormatToken(0,[\"SSSSSSSSS\",9],0,function(){return this.millisecond()*1e6});addUnitAlias(\"millisecond\",\"ms\");addUnitPriority(\"millisecond\",16);addRegexToken(\"S\",match1to3,match1);addRegexToken(\"SS\",match1to3,match2);addRegexToken(\"SSS\",match1to3,match3);var token;for(token=\"SSSS\";token.length<=9;token+=\"S\"){addRegexToken(token,matchUnsigned)}function parseMs(input,array){array[MILLISECOND]=toInt((\"0.\"+input)*1e3)}for(token=\"S\";token.length<=9;token+=\"S\"){addParseToken(token,parseMs)}var getSetMillisecond=makeGetSet(\"Milliseconds\",false);addFormatToken(\"z\",0,0,\"zoneAbbr\");addFormatToken(\"zz\",0,0,\"zoneName\");function getZoneAbbr(){return this._isUTC?\"UTC\":\"\"}function getZoneName(){return this._isUTC?\"Coordinated Universal Time\":\"\"}var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate(\"dates accessor is deprecated. Use date instead.\",getSetDayOfMonth);proto.months=deprecate(\"months accessor is deprecated. Use month instead\",getSetMonth);proto.years=deprecate(\"years accessor is deprecated. Use year instead\",getSetYear);proto.zone=deprecate(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",getSetZone);proto.isDSTShifted=deprecate(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(string){return string}var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format,index,field,setter){var locale=getLocale();var utc=createUTC().set(setter,index);return locale[field](utc,format)}function listMonthsImpl(format,index,field){if(isNumber(format)){index=format;format=undefined}format=format||\"\";if(index!=null){return get$1(format,index,field,\"month\")}var i;var out=[];for(i=0;i<12;i++){out[i]=get$1(format,i,field,\"month\")}return out}function listWeekdaysImpl(localeSorted,format,index,field){if(typeof localeSorted===\"boolean\"){if(isNumber(format)){index=format;format=undefined}format=format||\"\"}else{format=localeSorted;index=format;localeSorted=false;if(isNumber(format)){index=format;format=undefined}format=format||\"\"}var locale=getLocale(),shift=localeSorted?locale._week.dow:0;if(index!=null){return get$1(format,(index+shift)%7,field,\"day\")}var i;var out=[];for(i=0;i<7;i++){out[i]=get$1(format,(i+shift)%7,field,\"day\")}return out}function listMonths(format,index){return listMonthsImpl(format,index,\"months\")}function listMonthsShort(format,index){return listMonthsImpl(format,index,\"monthsShort\")}function listWeekdays(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdays\")}function listWeekdaysShort(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysShort\")}function listWeekdaysMin(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysMin\")}getSetGlobalLocale(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=toInt(number%100/10)===1?\"th\":b===1?\"st\":b===2?\"nd\":b===3?\"rd\":\"th\";return number+output}});hooks.lang=deprecate(\"moment.lang is deprecated. Use moment.locale instead.\",getSetGlobalLocale);hooks.langData=deprecate(\"moment.langData is deprecated. Use moment.localeData instead.\",getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this}function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble()}function add$1(input,value){return addSubtract$1(this,input,value,1)}function subtract$1(input,value){return addSubtract$1(this,input,value,-1)}function absCeil(number){if(number<0){return Math.floor(number)}else{return Math.ceil(number)}}function bubble(){var milliseconds=this._milliseconds;var days=this._days;var months=this._months;var data=this._data;var seconds,minutes,hours,years,monthsFromDays;if(!(milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0)){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0}data.milliseconds=milliseconds%1e3;seconds=absFloor(milliseconds/1e3);data.seconds=seconds%60;minutes=absFloor(seconds/60)\n;data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFloor(months/12);months%=12;data.days=days;data.months=months;data.years=years;return this}function daysToMonths(days){return days*4800/146097}function monthsToDays(months){return months*146097/4800}function as(units){if(!this.isValid()){return NaN}var days;var months;var milliseconds=this._milliseconds;units=normalizeUnits(units);if(units===\"month\"||units===\"year\"){days=this._days+milliseconds/864e5;months=this._months+daysToMonths(days);return units===\"month\"?months:months/12}else{days=this._days+Math.round(monthsToDays(this._months));switch(units){case\"week\":return days/7+milliseconds/6048e5;case\"day\":return days+milliseconds/864e5;case\"hour\":return days*24+milliseconds/36e5;case\"minute\":return days*1440+milliseconds/6e4;case\"second\":return days*86400+milliseconds/1e3;case\"millisecond\":return Math.floor(days*864e5)+milliseconds;default:throw new Error(\"Unknown unit \"+units)}}}function valueOf$1(){if(!this.isValid()){return NaN}return this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6}function makeAs(alias){return function(){return this.as(alias)}}var asMilliseconds=makeAs(\"ms\");var asSeconds=makeAs(\"s\");var asMinutes=makeAs(\"m\");var asHours=makeAs(\"h\");var asDays=makeAs(\"d\");var asWeeks=makeAs(\"w\");var asMonths=makeAs(\"M\");var asYears=makeAs(\"y\");function clone$1(){return createDuration(this)}function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+\"s\"]():NaN}function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN}}var milliseconds=makeGetter(\"milliseconds\");var seconds=makeGetter(\"seconds\");var minutes=makeGetter(\"minutes\");var hours=makeGetter(\"hours\");var days=makeGetter(\"days\");var months=makeGetter(\"months\");var years=makeGetter(\"years\");function weeks(){return absFloor(this.days()/7)}var round=Math.round;var thresholds={ss:44,s:45,m:45,h:22,d:26,M:11};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}function relativeTime$1(posNegDuration,withoutSuffix,locale){var duration=createDuration(posNegDuration).abs();var seconds=round(duration.as(\"s\"));var minutes=round(duration.as(\"m\"));var hours=round(duration.as(\"h\"));var days=round(duration.as(\"d\"));var months=round(duration.as(\"M\"));var years=round(duration.as(\"y\"));var a=seconds<=thresholds.ss&&[\"s\",seconds]||seconds<thresholds.s&&[\"ss\",seconds]||minutes<=1&&[\"m\"]||minutes<thresholds.m&&[\"mm\",minutes]||hours<=1&&[\"h\"]||hours<thresholds.h&&[\"hh\",hours]||days<=1&&[\"d\"]||days<thresholds.d&&[\"dd\",days]||months<=1&&[\"M\"]||months<thresholds.M&&[\"MM\",months]||years<=1&&[\"y\"]||[\"yy\",years];a[2]=withoutSuffix;a[3]=+posNegDuration>0;a[4]=locale;return substituteTimeAgo.apply(null,a)}function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===undefined){return round}if(typeof roundingFunction===\"function\"){round=roundingFunction;return true}return false}function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===undefined){return false}if(limit===undefined){return thresholds[threshold]}thresholds[threshold]=limit;if(threshold===\"s\"){thresholds.ss=limit-1}return true}function humanize(withSuffix){if(!this.isValid()){return this.localeData().invalidDate()}var locale=this.localeData();var output=relativeTime$1(this,!withSuffix,locale);if(withSuffix){output=locale.pastFuture(+this,output)}return locale.postformat(output)}var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x}function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate()}var seconds=abs$1(this._milliseconds)/1e3;var days=abs$1(this._days);var months=abs$1(this._months);var minutes,hours,years;minutes=absFloor(seconds/60);hours=absFloor(minutes/60);seconds%=60;minutes%=60;years=absFloor(months/12);months%=12;var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds?seconds.toFixed(3).replace(/\\.?0+$/,\"\"):\"\";var total=this.asSeconds();if(!total){return\"P0D\"}var totalSign=total<0?\"-\":\"\";var ymSign=sign(this._months)!==sign(total)?\"-\":\"\";var daysSign=sign(this._days)!==sign(total)?\"-\":\"\";var hmsSign=sign(this._milliseconds)!==sign(total)?\"-\":\"\";return totalSign+\"P\"+(Y?ymSign+Y+\"Y\":\"\")+(M?ymSign+M+\"M\":\"\")+(D?daysSign+D+\"D\":\"\")+(h||m||s?\"T\":\"\")+(h?hmsSign+h+\"H\":\"\")+(m?hmsSign+m+\"M\":\"\")+(s?hmsSign+s+\"S\":\"\")}var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",toISOString$1);proto$2.lang=lang;addFormatToken(\"X\",0,0,\"unix\");addFormatToken(\"x\",0,0,\"valueOf\");addRegexToken(\"x\",matchSigned);addRegexToken(\"X\",matchTimestamp);addParseToken(\"X\",function(input,array,config){config._d=new Date(parseFloat(input,10)*1e3)});addParseToken(\"x\",function(input,array,config){config._d=new Date(toInt(input))});hooks.version=\"2.19.1\";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;return hooks})}).call(exports,__webpack_require__(155)(module))},function(module,exports){module.exports=function(module){if(!module.webpackPolyfill){module.deprecate=function(){};module.paths=[];if(!module.children)module.children=[];Object.defineProperty(module,\"loaded\",{enumerable:true,get:function(){return module.l}});Object.defineProperty(module,\"id\",{enumerable:true,get:function(){return module.i}});module.webpackPolyfill=1}return module}},function(module,exports){function webpackEmptyContext(req){throw new Error(\"Cannot find module '\"+req+\"'.\")}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;module.exports=webpackEmptyContext;webpackEmptyContext.id=156},function(module,exports,__webpack_require__){\"use strict\";(function(global){var _rng;var globalVar=typeof window!==\"undefined\"?window:typeof global!==\"undefined\"?global:null;if(globalVar&&globalVar.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);_rng=function whatwgRNG(){crypto.getRandomValues(_rnds8);return _rnds8}}if(!_rng){var _rnds=new Array(16);_rng=function _rng(){for(var i=0,r;i<16;i++){if((i&3)===0)r=Math.random()*4294967296;_rnds[i]=r>>>((i&3)<<3)&255}return _rnds}}var _byteToHex=[];var _hexToByte={};for(var i=0;i<256;i++){_byteToHex[i]=(i+256).toString(16).substr(1);_hexToByte[_byteToHex[i]]=i}function parse(s,buf,offset){var i=buf&&offset||0,ii=0;buf=buf||[];s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){if(ii<16){buf[i+ii++]=_hexToByte[oct]}});while(ii<16){buf[i+ii++]=0}return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}var _seedBytes=_rng();var _nodeId=[_seedBytes[0]|1,_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]];var _clockseq=(_seedBytes[6]<<8|_seedBytes[7])&16383;var _lastMSecs=0,_lastNSecs=0;function v1(options,buf,offset){var i=buf&&offset||0;var b=buf||[];options=options||{};var clockseq=options.clockseq!==undefined?options.clockseq:_clockseq;var msecs=options.msecs!==undefined?options.msecs:(new Date).getTime();var nsecs=options.nsecs!==undefined?options.nsecs:_lastNSecs+1;var dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&options.clockseq===undefined){clockseq=clockseq+1&16383}if((dt<0||msecs>_lastMSecs)&&options.nsecs===undefined){nsecs=0}if(nsecs>=1e4){throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\")}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;msecs+=122192928e5;var tl=((msecs&268435455)*1e4+nsecs)%4294967296;b[i++]=tl>>>24&255;b[i++]=tl>>>16&255;b[i++]=tl>>>8&255;b[i++]=tl&255;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255;b[i++]=tmh&255;b[i++]=tmh>>>24&15|16;b[i++]=tmh>>>16&255;b[i++]=clockseq>>>8|128;b[i++]=clockseq&255;var node=options.node||_nodeId;for(var n=0;n<6;n++){b[i+n]=node[n]}return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;if(typeof options==\"string\"){buf=options==\"binary\"?new Array(16):null;options=null}options=options||{};var rnds=options.random||(options.rng||_rng)();rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){for(var ii=0;ii<16;ii++){buf[i+ii]=rnds[ii]}}return buf||unparse(rnds)}var uuid=v4;uuid.v1=v1;uuid.v4=v4;uuid.parse=parse;uuid.unparse=unparse;module.exports=uuid}).call(exports,__webpack_require__(158))},function(module,exports){var g;g=function(){return this}();try{g=g||Function(\"return this\")()||(1,eval)(\"this\")}catch(e){if(typeof window===\"object\")g=window}module.exports=g},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Graph3d=__webpack_require__(161);exports.graph3d={Camera:__webpack_require__(95),Filter:__webpack_require__(96),Point2d:__webpack_require__(91),Point3d:__webpack_require__(34),Slider:__webpack_require__(92),StepNumber:__webpack_require__(93)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){var core=__webpack_require__(7);var $JSON=core.JSON||(core.JSON={stringify:JSON.stringify});module.exports=function stringify(it){return $JSON.stringify.apply($JSON,arguments)}},function(module,exports,__webpack_require__){\"use strict\";var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var Point3d=__webpack_require__(34);var Point2d=__webpack_require__(91);var Slider=__webpack_require__(92);var StepNumber=__webpack_require__(93);var Settings=__webpack_require__(94);var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(172),allOptions=_require2.allOptions;var DataGroup=__webpack_require__(173);Graph3d.STYLE=Settings.STYLE;var autoByDefault=undefined;Graph3d.DEFAULTS={width:\"400px\",height:\"400px\",filterLabel:\"time\",legendLabel:\"value\",xLabel:\"x\",yLabel:\"y\",zLabel:\"z\",xValueLabel:function xValueLabel(v){return v},yValueLabel:function yValueLabel(v){return v},zValueLabel:function zValueLabel(v){return v},showXAxis:true,showYAxis:true,showZAxis:true,showGrid:true,showPerspective:true,showShadow:false,keepAspectRatio:true,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:autoByDefault,animationInterval:1e3,animationPreload:false,animationAutoStart:autoByDefault,axisColor:\"#4D4D4D\",gridColor:\"#D3D3D3\",xCenter:\"55%\",yCenter:\"50%\",style:Graph3d.STYLE.DOT,tooltip:false,tooltipStyle:{content:{padding:\"10px\",border:\"1px solid #4d4d4d\",color:\"#1a1a1a\",background:\"rgba(255,255,255,0.7)\",borderRadius:\"2px\",boxShadow:\"5px 5px 10px rgba(128,128,128,0.5)\"},line:{height:\"40px\",width:\"0\",borderLeft:\"1px solid #4d4d4d\"},dot:{height:\"0\",width:\"0\",border:\"5px solid #4d4d4d\",borderRadius:\"5px\"}},dataColor:{fill:\"#7DC1FF\",stroke:\"#3267D2\",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:autoByDefault,backgroundColor:autoByDefault,xBarWidth:autoByDefault,yBarWidth:autoByDefault,valueMin:autoByDefault,valueMax:autoByDefault,xMin:autoByDefault,xMax:autoByDefault,xStep:autoByDefault,yMin:autoByDefault,yMax:autoByDefault,yStep:autoByDefault,zMin:autoByDefault,zMax:autoByDefault,zStep:autoByDefault};function Graph3d(container,data,options){if(!(this instanceof Graph3d)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.containerElement=container;this.dataGroup=new DataGroup;this.dataPoints=null;this.create();Settings.setDefaults(Graph3d.DEFAULTS,this);this.colX=undefined;this.colY=undefined;this.colZ=undefined;this.colValue=undefined;this.setOptions(options);this.setData(data)}Emitter(Graph3d.prototype);Graph3d.prototype._setScale=function(){this.scale=new Point3d(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range());if(this.keepAspectRatio){if(this.scale.x<this.scale.y){this.scale.y=this.scale.x}else{this.scale.x=this.scale.y}}this.scale.z*=this.verticalRatio;if(this.valueRange!==undefined){this.scale.value=1/this.valueRange.range()}var xCenter=this.xRange.center()*this.scale.x;var yCenter=this.yRange.center()*this.scale.y;var zCenter=this.zRange.center()*this.scale.z;this.camera.setArmLocation(xCenter,yCenter,zCenter)};Graph3d.prototype._convert3Dto2D=function(point3d){var translation=this._convertPointToTranslation(point3d);return this._convertTranslationToScreen(translation)};Graph3d.prototype._convertPointToTranslation=function(point3d){var cameraLocation=this.camera.getCameraLocation(),cameraRotation=this.camera.getCameraRotation(),ax=point3d.x*this.scale.x,ay=point3d.y*this.scale.y,az=point3d.z*this.scale.z,cx=cameraLocation.x,cy=cameraLocation.y,cz=cameraLocation.z,sinTx=Math.sin(cameraRotation.x),cosTx=Math.cos(cameraRotation.x),sinTy=Math.sin(cameraRotation.y),cosTy=Math.cos(cameraRotation.y),sinTz=Math.sin(cameraRotation.z),cosTz=Math.cos(cameraRotation.z),dx=cosTy*(sinTz*(ay-cy)+cosTz*(ax-cx))-sinTy*(az-cz),dy=sinTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))+cosTx*(cosTz*(ay-cy)-sinTz*(ax-cx)),dz=cosTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))-sinTx*(cosTz*(ay-cy)-sinTz*(ax-cx));return new Point3d(dx,dy,dz)};Graph3d.prototype._convertTranslationToScreen=function(translation){var ex=this.eye.x,ey=this.eye.y,ez=this.eye.z,dx=translation.x,dy=translation.y,dz=translation.z;var bx;var by;if(this.showPerspective){bx=(dx-ex)*(ez/dz);by=(dy-ey)*(ez/dz)}else{bx=dx*-(ez/this.camera.getArmLength());by=dy*-(ez/this.camera.getArmLength())}return new Point2d(this.currentXCenter+bx*this.frame.canvas.clientWidth,this.currentYCenter-by*this.frame.canvas.clientWidth)};Graph3d.prototype._calcTranslations=function(points){for(var i=0;i<points.length;i++){var point=points[i];point.trans=this._convertPointToTranslation(point.point);point.screen=this._convertTranslationToScreen(point.trans);var transBottom=this._convertPointToTranslation(point.bottom);point.dist=this.showPerspective?transBottom.length():-transBottom.z}var sortDepth=function sortDepth(a,b){return b.dist-a.dist};points.sort(sortDepth)};Graph3d.prototype._initializeRanges=function(){var dg=this.dataGroup;this.xRange=dg.xRange;this.yRange=dg.yRange;this.zRange=dg.zRange;this.valueRange=dg.valueRange;this.xStep=dg.xStep;this.yStep=dg.yStep;this.zStep=dg.zStep;this.xBarWidth=dg.xBarWidth;this.yBarWidth=dg.yBarWidth;this.colX=dg.colX;this.colY=dg.colY;this.colZ=dg.colZ;this.colValue=dg.colValue;this._setScale()};Graph3d.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};Graph3d.prototype._getDataPoints=function(data){var x,y,i,obj;var dataPoints=[];if(this.style===Graph3d.STYLE.GRID||this.style===Graph3d.STYLE.SURFACE){var dataX=this.dataGroup.getDistinctValues(this.colX,data);var dataY=this.dataGroup.getDistinctValues(this.colY,data);dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Graph3d.STYLE.LINE){for(i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};Graph3d.prototype.create=function(){while(this.containerElement.hasChildNodes()){this.containerElement.removeChild(this.containerElement.firstChild)}this.frame=document.createElement(\"div\");this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);{var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}this.frame.filter=document.createElement(\"div\");this.frame.filter.style.position=\"absolute\";this.frame.filter.style.bottom=\"0px\";this.frame.filter.style.left=\"0px\";this.frame.filter.style.width=\"100%\";this.frame.appendChild(this.frame.filter);var me=this;var onmousedown=function onmousedown(event){me._onMouseDown(event)};var ontouchstart=function ontouchstart(event){me._onTouchStart(event)};var onmousewheel=function onmousewheel(event){me._onWheel(event)};var ontooltip=function ontooltip(event){me._onTooltip(event)};var onclick=function onclick(event){me._onClick(event)};util.addEventListener(this.frame.canvas,\"mousedown\",onmousedown);util.addEventListener(this.frame.canvas,\"touchstart\",ontouchstart);util.addEventListener(this.frame.canvas,\"mousewheel\",onmousewheel);util.addEventListener(this.frame.canvas,\"mousemove\",ontooltip);util.addEventListener(this.frame.canvas,\"click\",onclick);this.containerElement.appendChild(this.frame)};Graph3d.prototype._setSize=function(width,height){this.frame.style.width=width;this.frame.style.height=height;this._resizeCanvas()};Graph3d.prototype._resizeCanvas=function(){this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=this.frame.canvas.clientWidth;this.frame.canvas.height=this.frame.canvas.clientHeight;this.frame.filter.style.width=this.frame.canvas.clientWidth-2*10+\"px\"};Graph3d.prototype.animationStart=function(){if(!this.animationAutoStart||!this.dataGroup.dataFilter)return;if(!this.frame.filter||!this.frame.filter.slider)throw new Error(\"No animation available\");this.frame.filter.slider.play()};Graph3d.prototype.animationStop=function(){if(!this.frame.filter||!this.frame.filter.slider)return;this.frame.filter.slider.stop()};Graph3d.prototype._resizeCenter=function(){if(this.xCenter.charAt(this.xCenter.length-1)===\"%\"){this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth}else{this.currentXCenter=parseFloat(this.xCenter)}if(this.yCenter.charAt(this.yCenter.length-1)===\"%\"){this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight)}else{this.currentYCenter=parseFloat(this.yCenter)}};Graph3d.prototype.getCameraPosition=function(){var pos=this.camera.getArmRotation();pos.distance=this.camera.getArmLength();return pos};Graph3d.prototype._readData=function(data){this.dataPoints=this.dataGroup.initializeData(this,data,this.style);this._initializeRanges();this._redrawFilter()};Graph3d.prototype.setData=function(data){if(data===undefined||data===null)return;this._readData(data);this.redraw();this.animationStart()};Graph3d.prototype.setOptions=function(options){if(options===undefined)return;var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}this.animationStop();Settings.setOptions(options,this);this.setPointDrawingMethod();this._setSize(this.width,this.height);this.setData(this.dataGroup.getDataTable());this.animationStart()};Graph3d.prototype.setPointDrawingMethod=function(){var method=undefined;switch(this.style){case Graph3d.STYLE.BAR:method=Graph3d.prototype._redrawBarGraphPoint;break;case Graph3d.STYLE.BARCOLOR:method=Graph3d.prototype._redrawBarColorGraphPoint;break;case Graph3d.STYLE.BARSIZE:method=Graph3d.prototype._redrawBarSizeGraphPoint;break;case Graph3d.STYLE.DOT:method=Graph3d.prototype._redrawDotGraphPoint;break;case Graph3d.STYLE.DOTLINE:method=Graph3d.prototype._redrawDotLineGraphPoint;break;case Graph3d.STYLE.DOTCOLOR:method=Graph3d.prototype._redrawDotColorGraphPoint;break;case Graph3d.STYLE.DOTSIZE:method=Graph3d.prototype._redrawDotSizeGraphPoint;break;case Graph3d.STYLE.SURFACE:method=Graph3d.prototype._redrawSurfaceGraphPoint;break;case Graph3d.STYLE.GRID:method=Graph3d.prototype._redrawGridGraphPoint;break;case Graph3d.STYLE.LINE:method=Graph3d.prototype._redrawLineGraphPoint;break;default:throw new Error(\"Can not determine point drawing method \"+\"for graph style '\"+this.style+\"'\")}this._pointDrawingMethod=method};Graph3d.prototype.redraw=function(){if(this.dataPoints===undefined){throw new Error(\"Graph data not initialized\")}this._resizeCanvas();this._resizeCenter();this._redrawSlider();this._redrawClear();this._redrawAxis();this._redrawDataGraph();this._redrawInfo();this._redrawLegend()};Graph3d.prototype._getContext=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.lineJoin=\"round\";ctx.lineCap=\"round\";return ctx};Graph3d.prototype._redrawClear=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.clearRect(0,0,canvas.width,canvas.height)};Graph3d.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio};Graph3d.prototype._getLegendWidth=function(){var width;if(this.style===Graph3d.STYLE.DOTSIZE){var dotSize=this._dotSize();width=dotSize*this.dotSizeMaxFraction}else if(this.style===Graph3d.STYLE.BARSIZE){width=this.xBarWidth}else{width=20}return width};Graph3d.prototype._redrawLegend=function(){if(this.showLegend!==true){return}if(this.style===Graph3d.STYLE.LINE||this.style===Graph3d.STYLE.BARSIZE){return}var isSizeLegend=this.style===Graph3d.STYLE.BARSIZE||this.style===Graph3d.STYLE.DOTSIZE;var isValueLegend=this.style===Graph3d.STYLE.DOTSIZE||this.style===Graph3d.STYLE.DOTCOLOR||this.style===Graph3d.STYLE.BARCOLOR;var height=Math.max(this.frame.clientHeight*.25,100);var top=this.margin;var width=this._getLegendWidth();var right=this.frame.clientWidth-this.margin;var left=right-width;var bottom=top+height;var ctx=this._getContext();ctx.lineWidth=1;ctx.font=\"14px arial\";if(isSizeLegend===false){var ymin=0;var ymax=height;var y;for(y=ymin;y<ymax;y++){var f=(y-ymin)/(ymax-ymin);var hue=f*240;var color=this._hsv2rgb(hue,1,1);ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(left,top+y);ctx.lineTo(right,top+y);ctx.stroke()}ctx.strokeStyle=this.axisColor;ctx.strokeRect(left,top,width,height)}else{var widthMin;if(this.style===Graph3d.STYLE.DOTSIZE){widthMin=width*(this.dotSizeMinFraction/this.dotSizeMaxFraction)}else if(this.style===Graph3d.STYLE.BARSIZE){}ctx.strokeStyle=this.axisColor;ctx.fillStyle=this.dataColor.fill;ctx.beginPath();ctx.moveTo(left,top);ctx.lineTo(right,top);ctx.lineTo(left+widthMin,bottom);ctx.lineTo(left,bottom);ctx.closePath();ctx.fill();ctx.stroke()}var gridLineLen=5;var legendMin=isValueLegend?this.valueRange.min:this.zRange.min;var legendMax=isValueLegend?this.valueRange.max:this.zRange.max;var step=new StepNumber(legendMin,legendMax,(legendMax-legendMin)/5,true);step.start(true);var from;var to;while(!step.end()){y=bottom-(step.getCurrent()-legendMin)/(legendMax-legendMin)*height;from=new Point2d(left-gridLineLen,y);to=new Point2d(left,y);this._line(ctx,from,to);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(step.getCurrent(),left-2*gridLineLen,y);step.next()}ctx.textAlign=\"right\";ctx.textBaseline=\"top\";var label=this.legendLabel;ctx.fillText(label,right,bottom+this.margin)};Graph3d.prototype._redrawFilter=function(){var dataFilter=this.dataGroup.dataFilter;var filter=this.frame.filter;filter.innerHTML=\"\";if(!dataFilter){filter.slider=undefined;return}var options={visible:this.showAnimationControls};var slider=new Slider(filter,options);filter.slider=slider;filter.style.padding=\"10px\";slider.setValues(dataFilter.values);slider.setPlayInterval(this.animationInterval);var me=this;var onchange=function onchange(){var dataFilter=me.dataGroup.dataFilter;var index=slider.getIndex();dataFilter.selectValue(index);me.dataPoints=dataFilter._getDataPoints();me.redraw()};slider.setOnChangeCallback(onchange)};Graph3d.prototype._redrawSlider=function(){if(this.frame.filter.slider!==undefined){this.frame.filter.slider.redraw()}};Graph3d.prototype._redrawInfo=function(){var info=this.dataGroup.getInfo();if(info===undefined)return;var ctx=this._getContext();ctx.font=\"14px arial\";ctx.lineStyle=\"gray\";ctx.fillStyle=\"gray\";ctx.textAlign=\"left\";ctx.textBaseline=\"top\";var x=this.margin;var y=this.margin;ctx.fillText(info,x,y)};Graph3d.prototype._line=function(ctx,from,to,strokeStyle){if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(from.x,from.y);ctx.lineTo(to.x,to.y);ctx.stroke()};Graph3d.prototype.drawAxisLabelX=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)>0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)<0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelY=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)<0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)>0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelZ=function(ctx,point3d,text,offset){if(offset===undefined){offset=0}var point2d=this._convert3Dto2D(point3d);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x-offset,point2d.y)};Graph3d.prototype._line3d=function(ctx,from,to,strokeStyle){var from2d=this._convert3Dto2D(from);var to2d=this._convert3Dto2D(to);this._line(ctx,from2d,to2d,strokeStyle)};Graph3d.prototype._redrawAxis=function(){var ctx=this._getContext(),from,to,step,prettyStep,text,xText,yText,zText,offset,xOffset,yOffset;ctx.font=24/this.camera.getArmLength()+\"px arial\";var gridLenX=.025/this.scale.x;var gridLenY=.025/this.scale.y;var textMargin=5/this.camera.getArmLength();var armAngle=this.camera.getArmRotation().horizontal;var armVector=new Point2d(Math.cos(armAngle),Math.sin(armAngle));var xRange=this.xRange;var yRange=this.yRange;var zRange=this.zRange;var point3d;ctx.lineWidth=1;prettyStep=this.defaultXStep===undefined;step=new StepNumber(xRange.min,xRange.max,this.xStep,prettyStep);step.start(true);while(!step.end()){var x=step.getCurrent();if(this.showGrid){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.max,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showXAxis){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.min+gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(x,yRange.max,zRange.min);to=new Point3d(x,yRange.max-gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){yText=armVector.x>0?yRange.min:yRange.max;point3d=new Point3d(x,yText,zRange.min);var msg=\" \"+this.xValueLabel(x)+\" \";this.drawAxisLabelX(ctx,point3d,msg,armAngle,textMargin)}step.next()}ctx.lineWidth=1;prettyStep=this.defaultYStep===undefined;step=new StepNumber(yRange.min,yRange.max,this.yStep,prettyStep);step.start(true);while(!step.end()){var y=step.getCurrent();if(this.showGrid){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.max,y,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showYAxis){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.min+gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,y,zRange.min);to=new Point3d(xRange.max-gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showYAxis){xText=armVector.y>0?xRange.min:xRange.max;point3d=new Point3d(xText,y,zRange.min);var _msg=\" \"+this.yValueLabel(y)+\" \";this.drawAxisLabelY(ctx,point3d,_msg,armAngle,textMargin)}step.next()}if(this.showZAxis){ctx.lineWidth=1;prettyStep=this.defaultZStep===undefined;step=new StepNumber(zRange.min,zRange.max,this.zStep,prettyStep);step.start(true);xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;while(!step.end()){var z=step.getCurrent();var from3d=new Point3d(xText,yText,z);var from2d=this._convert3Dto2D(from3d);to=new Point2d(from2d.x-textMargin,from2d.y);this._line(ctx,from2d,to,this.axisColor);var _msg2=this.zValueLabel(z)+\" \";this.drawAxisLabelZ(ctx,from3d,_msg2,5);step.next()}ctx.lineWidth=1;from=new Point3d(xText,yText,zRange.min);to=new Point3d(xText,yText,zRange.max);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){var xMin2d;var xMax2d;ctx.lineWidth=1;xMin2d=new Point3d(xRange.min,yRange.min,zRange.min);xMax2d=new Point3d(xRange.max,yRange.min,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor);xMin2d=new Point3d(xRange.min,yRange.max,zRange.min);xMax2d=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor)}if(this.showYAxis){ctx.lineWidth=1;from=new Point3d(xRange.min,yRange.min,zRange.min);to=new Point3d(xRange.min,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,yRange.min,zRange.min);to=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor)}var xLabel=this.xLabel;if(xLabel.length>0&&this.showXAxis){yOffset=.1/this.scale.y;xText=(xRange.max+3*xRange.min)/4;yText=armVector.x>0?yRange.min-yOffset:yRange.max+yOffset\n;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelX(ctx,text,xLabel,armAngle)}var yLabel=this.yLabel;if(yLabel.length>0&&this.showYAxis){xOffset=.1/this.scale.x;xText=armVector.y>0?xRange.min-xOffset:xRange.max+xOffset;yText=(yRange.max+3*yRange.min)/4;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelY(ctx,text,yLabel,armAngle)}var zLabel=this.zLabel;if(zLabel.length>0&&this.showZAxis){offset=30;xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;zText=(zRange.max+3*zRange.min)/4;text=new Point3d(xText,yText,zText);this.drawAxisLabelZ(ctx,text,zLabel,offset)}};Graph3d.prototype._hsv2rgb=function(H,S,V){var R,G,B,C,Hi,X;C=V*S;Hi=Math.floor(H/60);X=C*(1-Math.abs(H/60%2-1));switch(Hi){case 0:R=C;G=X;B=0;break;case 1:R=X;G=C;B=0;break;case 2:R=0;G=C;B=X;break;case 3:R=0;G=X;B=C;break;case 4:R=X;G=0;B=C;break;case 5:R=C;G=0;B=X;break;default:R=0;G=0;B=0;break}return\"RGB(\"+parseInt(R*255)+\",\"+parseInt(G*255)+\",\"+parseInt(B*255)+\")\"};Graph3d.prototype._getStrokeWidth=function(point){if(point!==undefined){if(this.showPerspective){return 1/-point.trans.z*this.dataColor.strokeWidth}else{return-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth}}return this.dataColor.strokeWidth};Graph3d.prototype._redrawBar=function(ctx,point,xWidth,yWidth,color,borderColor){var surface;var me=this;var point3d=point.point;var zMin=this.zRange.min;var top=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,point3d.z)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,point3d.z)}];var bottom=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,zMin)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,zMin)}];top.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});bottom.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});var surfaces=[{corners:top,center:Point3d.avg(bottom[0].point,bottom[2].point)},{corners:[top[0],top[1],bottom[1],bottom[0]],center:Point3d.avg(bottom[1].point,bottom[0].point)},{corners:[top[1],top[2],bottom[2],bottom[1]],center:Point3d.avg(bottom[2].point,bottom[1].point)},{corners:[top[2],top[3],bottom[3],bottom[2]],center:Point3d.avg(bottom[3].point,bottom[2].point)},{corners:[top[3],top[0],bottom[0],bottom[3]],center:Point3d.avg(bottom[0].point,bottom[3].point)}];point.surfaces=surfaces;for(var j=0;j<surfaces.length;j++){surface=surfaces[j];var transCenter=this._convertPointToTranslation(surface.center);surface.dist=this.showPerspective?transCenter.length():-transCenter.z}surfaces.sort(function(a,b){var diff=b.dist-a.dist;if(diff)return diff;if(a.corners===top)return 1;if(b.corners===top)return-1;return 0});ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;for(var _j=2;_j<surfaces.length;_j++){surface=surfaces[_j];this._polygon(ctx,surface.corners)}};Graph3d.prototype._polygon=function(ctx,points,fillStyle,strokeStyle){if(points.length<2){return}if(fillStyle!==undefined){ctx.fillStyle=fillStyle}if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(points[0].screen.x,points[0].screen.y);for(var i=1;i<points.length;++i){var point=points[i];ctx.lineTo(point.screen.x,point.screen.y)}ctx.closePath();ctx.fill();ctx.stroke()};Graph3d.prototype._drawCircle=function(ctx,point,color,borderColor,size){var radius=this._calcRadius(point,size);ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;ctx.beginPath();ctx.arc(point.screen.x,point.screen.y,radius,0,Math.PI*2,true);ctx.fill();ctx.stroke()};Graph3d.prototype._getColorsRegular=function(point){var hue=(1-(point.point.z-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var color=this._hsv2rgb(hue,1,1);var borderColor=this._hsv2rgb(hue,1,.8);return{fill:color,border:borderColor}};Graph3d.prototype._getColorsColor=function(point){var color,borderColor;if(typeof point.point.value===\"string\"){color=point.point.value;borderColor=point.point.value}else{var hue=(1-(point.point.value-this.valueRange.min)*this.scale.value)*240;color=this._hsv2rgb(hue,1,1);borderColor=this._hsv2rgb(hue,1,.8)}return{fill:color,border:borderColor}};Graph3d.prototype._getColorsSize=function(){return{fill:this.dataColor.fill,border:this.dataColor.stroke}};Graph3d.prototype._calcRadius=function(point,size){if(size===undefined){size=this._dotSize()}var radius;if(this.showPerspective){radius=size/-point.trans.z}else{radius=size*-(this.eye.z/this.camera.getArmLength())}if(radius<0){radius=0}return radius};Graph3d.prototype._redrawBarGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsRegular(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarColorGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsColor(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarSizeGraphPoint=function(ctx,point){var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var xWidth=this.xBarWidth/2*(fraction*.8+.2);var yWidth=this.yBarWidth/2*(fraction*.8+.2);var colors=this._getColorsSize();this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawDotGraphPoint=function(ctx,point){var colors=this._getColorsRegular(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotLineGraphPoint=function(ctx,point){var from=this._convert3Dto2D(point.bottom);ctx.lineWidth=1;this._line(ctx,from,point.screen,this.gridColor);this._redrawDotGraphPoint(ctx,point)};Graph3d.prototype._redrawDotColorGraphPoint=function(ctx,point){var colors=this._getColorsColor(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotSizeGraphPoint=function(ctx,point){var dotSize=this._dotSize();var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var sizeMin=dotSize*this.dotSizeMinFraction;var sizeRange=dotSize*this.dotSizeMaxFraction-sizeMin;var size=sizeMin+sizeRange*fraction;var colors=this._getColorsSize();this._drawCircle(ctx,point,colors.fill,colors.border,size)};Graph3d.prototype._redrawSurfaceGraphPoint=function(ctx,point){var right=point.pointRight;var top=point.pointTop;var cross=point.pointCross;if(point===undefined||right===undefined||top===undefined||cross===undefined){return}var topSideVisible=true;var fillStyle;var strokeStyle;if(this.showGrayBottom||this.showShadow){var aDiff=Point3d.subtract(cross.trans,point.trans);var bDiff=Point3d.subtract(top.trans,right.trans);var crossproduct=Point3d.crossProduct(aDiff,bDiff);var len=crossproduct.length();topSideVisible=crossproduct.z>0}if(topSideVisible){var zAvg=(point.point.z+right.point.z+top.point.z+cross.point.z)/4;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var s=1;var v;if(this.showShadow){v=Math.min(1+crossproduct.x/len/2,1);fillStyle=this._hsv2rgb(h,s,v);strokeStyle=fillStyle}else{v=1;fillStyle=this._hsv2rgb(h,s,v);strokeStyle=this.axisColor}}else{fillStyle=\"gray\";strokeStyle=this.axisColor}ctx.lineWidth=this._getStrokeWidth(point);var points=[point,right,cross,top];this._polygon(ctx,points,fillStyle,strokeStyle)};Graph3d.prototype._drawGridLine=function(ctx,from,to){if(from===undefined||to===undefined){return}var zAvg=(from.point.z+to.point.z)/2;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;ctx.lineWidth=this._getStrokeWidth(from)*2;ctx.strokeStyle=this._hsv2rgb(h,1,1);this._line(ctx,from.screen,to.screen)};Graph3d.prototype._redrawGridGraphPoint=function(ctx,point){this._drawGridLine(ctx,point,point.pointRight);this._drawGridLine(ctx,point,point.pointTop)};Graph3d.prototype._redrawLineGraphPoint=function(ctx,point){if(point.pointNext===undefined){return}ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=this.dataColor.stroke;this._line(ctx,point.screen,point.pointNext.screen)};Graph3d.prototype._redrawDataGraph=function(){var ctx=this._getContext();var i;if(this.dataPoints===undefined||this.dataPoints.length<=0)return;this._calcTranslations(this.dataPoints);for(i=0;i<this.dataPoints.length;i++){var point=this.dataPoints[i];this._pointDrawingMethod.call(this,ctx,point)}};Graph3d.prototype._storeMousePosition=function(event){this.startMouseX=getMouseX(event);this.startMouseY=getMouseY(event);this._startCameraOffset=this.camera.getOffset()};Graph3d.prototype._onMouseDown=function(event){event=event||window.event;if(this.leftButtonDown){this._onMouseUp(event)}this.leftButtonDown=event.which?event.which===1:event.button===1;if(!this.leftButtonDown&&!this.touchDown)return;this._storeMousePosition(event);this.startStart=new Date(this.start);this.startEnd=new Date(this.end);this.startArmRotation=this.camera.getArmRotation();this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",me.onmousemove);util.addEventListener(document,\"mouseup\",me.onmouseup);util.preventDefault(event)};Graph3d.prototype._onMouseMove=function(event){this.moving=true;event=event||window.event;var diffX=parseFloat(getMouseX(event))-this.startMouseX;var diffY=parseFloat(getMouseY(event))-this.startMouseY;if(event&&event.ctrlKey===true){var scaleX=this.frame.clientWidth*.5;var scaleY=this.frame.clientHeight*.5;var offXNew=(this._startCameraOffset.x||0)-diffX/scaleX*this.camera.armLength*.8;var offYNew=(this._startCameraOffset.y||0)+diffY/scaleY*this.camera.armLength*.8;this.camera.setOffset(offXNew,offYNew);this._storeMousePosition(event)}else{var horizontalNew=this.startArmRotation.horizontal+diffX/200;var verticalNew=this.startArmRotation.vertical+diffY/200;var snapAngle=4;var snapValue=Math.sin(snapAngle/360*2*Math.PI);if(Math.abs(Math.sin(horizontalNew))<snapValue){horizontalNew=Math.round(horizontalNew/Math.PI)*Math.PI-.001}if(Math.abs(Math.cos(horizontalNew))<snapValue){horizontalNew=(Math.round(horizontalNew/Math.PI-.5)+.5)*Math.PI-.001}if(Math.abs(Math.sin(verticalNew))<snapValue){verticalNew=Math.round(verticalNew/Math.PI)*Math.PI}if(Math.abs(Math.cos(verticalNew))<snapValue){verticalNew=(Math.round(verticalNew/Math.PI-.5)+.5)*Math.PI}this.camera.setArmRotation(horizontalNew,verticalNew)}this.redraw();var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";this.leftButtonDown=false;util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Graph3d.prototype._onClick=function(event){if(!this.onclick_callback)return;if(!this.moving){var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint)this.onclick_callback(dataPoint.point.data)}else{this.moving=false}util.preventDefault(event)};Graph3d.prototype._onTooltip=function(event){var delay=300;var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;if(!this.showTooltip){return}if(this.tooltipTimeout){clearTimeout(this.tooltipTimeout)}if(this.leftButtonDown){this._hideTooltip();return}if(this.tooltip&&this.tooltip.dataPoint){var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint!==this.tooltip.dataPoint){if(dataPoint){this._showTooltip(dataPoint)}else{this._hideTooltip()}}}else{var me=this;this.tooltipTimeout=setTimeout(function(){me.tooltipTimeout=null;var dataPoint=me._dataPointFromXY(mouseX,mouseY);if(dataPoint){me._showTooltip(dataPoint)}},delay)}};Graph3d.prototype._onTouchStart=function(event){this.touchDown=true;var me=this;this.ontouchmove=function(event){me._onTouchMove(event)};this.ontouchend=function(event){me._onTouchEnd(event)};util.addEventListener(document,\"touchmove\",me.ontouchmove);util.addEventListener(document,\"touchend\",me.ontouchend);this._onMouseDown(event)};Graph3d.prototype._onTouchMove=function(event){this._onMouseMove(event)};Graph3d.prototype._onTouchEnd=function(event){this.touchDown=false;util.removeEventListener(document,\"touchmove\",this.ontouchmove);util.removeEventListener(document,\"touchend\",this.ontouchend);this._onMouseUp(event)};Graph3d.prototype._onWheel=function(event){if(!event)event=window.event;var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta){var oldLength=this.camera.getArmLength();var newLength=oldLength*(1-delta/10);this.camera.setArmLength(newLength);this.redraw();this._hideTooltip()}var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._insideTriangle=function(point,triangle){var a=triangle[0],b=triangle[1],c=triangle[2];function sign(x){return x>0?1:x<0?-1:0}var as=sign((b.x-a.x)*(point.y-a.y)-(b.y-a.y)*(point.x-a.x));var bs=sign((c.x-b.x)*(point.y-b.y)-(c.y-b.y)*(point.x-b.x));var cs=sign((a.x-c.x)*(point.y-c.y)-(a.y-c.y)*(point.x-c.x));return(as==0||bs==0||as==bs)&&(bs==0||cs==0||bs==cs)&&(as==0||cs==0||as==cs)};Graph3d.prototype._dataPointFromXY=function(x,y){var i,distMax=100,dataPoint=null,closestDataPoint=null,closestDist=null,center=new Point2d(x,y);if(this.style===Graph3d.STYLE.BAR||this.style===Graph3d.STYLE.BARCOLOR||this.style===Graph3d.STYLE.BARSIZE){for(i=this.dataPoints.length-1;i>=0;i--){dataPoint=this.dataPoints[i];var surfaces=dataPoint.surfaces;if(surfaces){for(var s=surfaces.length-1;s>=0;s--){var surface=surfaces[s];var corners=surface.corners;var triangle1=[corners[0].screen,corners[1].screen,corners[2].screen];var triangle2=[corners[2].screen,corners[3].screen,corners[0].screen];if(this._insideTriangle(center,triangle1)||this._insideTriangle(center,triangle2)){return dataPoint}}}}}else{for(i=0;i<this.dataPoints.length;i++){dataPoint=this.dataPoints[i];var point=dataPoint.screen;if(point){var distX=Math.abs(x-point.x);var distY=Math.abs(y-point.y);var dist=Math.sqrt(distX*distX+distY*distY);if((closestDist===null||dist<closestDist)&&dist<distMax){closestDist=dist;closestDataPoint=dataPoint}}}}return closestDataPoint};Graph3d.prototype.hasBars=function(style){return style==Graph3d.STYLE.BAR||style==Graph3d.STYLE.BARCOLOR||style==Graph3d.STYLE.BARSIZE};Graph3d.prototype._showTooltip=function(dataPoint){var content,line,dot;if(!this.tooltip){content=document.createElement(\"div\");(0,_assign2[\"default\"])(content.style,{},this.tooltipStyle.content);content.style.position=\"absolute\";line=document.createElement(\"div\");(0,_assign2[\"default\"])(line.style,{},this.tooltipStyle.line);line.style.position=\"absolute\";dot=document.createElement(\"div\");(0,_assign2[\"default\"])(dot.style,{},this.tooltipStyle.dot);dot.style.position=\"absolute\";this.tooltip={dataPoint:null,dom:{content:content,line:line,dot:dot}}}else{content=this.tooltip.dom.content;line=this.tooltip.dom.line;dot=this.tooltip.dom.dot}this._hideTooltip();this.tooltip.dataPoint=dataPoint;if(typeof this.showTooltip===\"function\"){content.innerHTML=this.showTooltip(dataPoint.point)}else{content.innerHTML=\"<table>\"+\"<tr><td>\"+this.xLabel+\":</td><td>\"+dataPoint.point.x+\"</td></tr>\"+\"<tr><td>\"+this.yLabel+\":</td><td>\"+dataPoint.point.y+\"</td></tr>\"+\"<tr><td>\"+this.zLabel+\":</td><td>\"+dataPoint.point.z+\"</td></tr>\"+\"</table>\"}content.style.left=\"0\";content.style.top=\"0\";this.frame.appendChild(content);this.frame.appendChild(line);this.frame.appendChild(dot);var contentWidth=content.offsetWidth;var contentHeight=content.offsetHeight;var lineHeight=line.offsetHeight;var dotWidth=dot.offsetWidth;var dotHeight=dot.offsetHeight;var left=dataPoint.screen.x-contentWidth/2;left=Math.min(Math.max(left,10),this.frame.clientWidth-10-contentWidth);line.style.left=dataPoint.screen.x+\"px\";line.style.top=dataPoint.screen.y-lineHeight+\"px\";content.style.left=left+\"px\";content.style.top=dataPoint.screen.y-lineHeight-contentHeight+\"px\";dot.style.left=dataPoint.screen.x-dotWidth/2+\"px\";dot.style.top=dataPoint.screen.y-dotHeight/2+\"px\"};Graph3d.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var prop in this.tooltip.dom){if(this.tooltip.dom.hasOwnProperty(prop)){var elem=this.tooltip.dom[prop];if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}}}};function getMouseX(event){if(\"clientX\"in event)return event.clientX;return event.targetTouches[0]&&event.targetTouches[0].clientX||0}function getMouseY(event){if(\"clientY\"in event)return event.clientY;return event.targetTouches[0]&&event.targetTouches[0].clientY||0}Graph3d.prototype.setCameraPosition=function(pos){Settings.setCameraPosition(pos,this);this.redraw()};Graph3d.prototype.setSize=function(width,height){this._setSize(width,height);this.redraw()};module.exports=Graph3d},function(module,exports,__webpack_require__){__webpack_require__(163);module.exports=__webpack_require__(7).Object.assign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F,\"Object\",{assign:__webpack_require__(164)})},function(module,exports,__webpack_require__){\"use strict\";var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);var toObject=__webpack_require__(41);var IObject=__webpack_require__(78);var $assign=Object.assign;module.exports=!$assign||__webpack_require__(28)(function(){var A={};var B={};var S=Symbol();var K=\"abcdefghijklmnopqrst\";A[S]=7;K.split(\"\").forEach(function(k){B[k]=k});return $assign({},A)[S]!=7||Object.keys($assign({},B)).join(\"\")!=K})?function assign(target,source){var T=toObject(target);var aLen=arguments.length;var index=1;var getSymbols=gOPS.f;var isEnum=pIE.f;while(aLen>index){var S=IObject(arguments[index++]);var keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S);var length=keys.length;var j=0;var key;while(length>j)if(isEnum.call(S,key=keys[j++]))T[key]=S[key]}return T}:$assign},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(166),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(167);module.exports=__webpack_require__(7).Math.sign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Math\",{sign:__webpack_require__(168)})},function(module,exports){module.exports=Math.sign||function sign(x){return(x=+x)==0||x!=x?x:x<0?-1:1}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(170),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(171);var $Object=__webpack_require__(7).Object;module.exports=function defineProperty(it,key,desc){return $Object.defineProperty(it,key,desc)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F*!__webpack_require__(21),\"Object\",{defineProperty:__webpack_require__(20).f})},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var object=\"object\";var colorOptions={fill:{string:string},stroke:{string:string},strokeWidth:{number:number},__type__:{string:string,object:object,undefined:\"undefined\"}};var allOptions={animationAutoStart:{boolean:bool,undefined:\"undefined\"},animationInterval:{number:number},animationPreload:{boolean:bool},axisColor:{string:string},backgroundColor:colorOptions,xBarWidth:{number:number,undefined:\"undefined\"},yBarWidth:{number:number,undefined:\"undefined\"},cameraPosition:{distance:{number:number},horizontal:{number:number},vertical:{number:number},__type__:{object:object}},xCenter:{string:string},yCenter:{string:string},dataColor:colorOptions,dotSizeMinFraction:{number:number},dotSizeMaxFraction:{number:number},dotSizeRatio:{number:number},filterLabel:{string:string},gridColor:{string:string},onclick:{function:\"function\"},keepAspectRatio:{boolean:bool},xLabel:{string:string},yLabel:{string:string},zLabel:{string:string},legendLabel:{string:string},xMin:{number:number,undefined:\"undefined\"},yMin:{number:number,undefined:\"undefined\"},zMin:{number:number,undefined:\"undefined\"},xMax:{number:number,undefined:\"undefined\"},yMax:{number:number,undefined:\"undefined\"},zMax:{number:number,undefined:\"undefined\"},showAnimationControls:{boolean:bool,undefined:\"undefined\"},showGrid:{boolean:bool},showLegend:{boolean:bool,undefined:\"undefined\"},showPerspective:{boolean:bool},showShadow:{boolean:bool},showXAxis:{boolean:bool},showYAxis:{boolean:bool},showZAxis:{boolean:bool},xStep:{number:number,undefined:\"undefined\"},yStep:{number:number,undefined:\"undefined\"},zStep:{number:number,undefined:\"undefined\"},style:{number:number,string:[\"bar\",\"bar-color\",\"bar-size\",\"dot\",\"dot-line\",\"dot-color\",\"dot-size\",\"line\",\"grid\",\"surface\"]},tooltip:{boolean:bool,function:\"function\"},tooltipStyle:{content:{color:{string:string},background:{string:string},border:{string:string},borderRadius:{string:string},boxShadow:{string:string},padding:{string:string},__type__:{object:object}},line:{borderLeft:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},dot:{border:{string:string},borderRadius:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},__type__:{object:object}},xValueLabel:{function:\"function\"},yValueLabel:{function:\"function\"},zValueLabel:{function:\"function\"},valueMax:{number:number,undefined:\"undefined\"},valueMin:{number:number,undefined:\"undefined\"},verticalRatio:{number:number},height:{string:string},width:{string:string},__type__:{object:object}};exports.allOptions=allOptions},function(module,exports,__webpack_require__){\"use strict\";var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(174);var Filter=__webpack_require__(96);var Settings=__webpack_require__(94);var Point3d=__webpack_require__(34);function DataGroup(){this.dataTable=null}DataGroup.prototype.initializeData=function(graph3d,rawData,style){if(rawData===undefined)return;if(Array.isArray(rawData)){rawData=new DataSet(rawData)}var data;if(rawData instanceof DataSet||rawData instanceof DataView){data=rawData.get()}else{throw new Error(\"Array, DataSet, or DataView expected\")}if(data.length==0)return;this.style=style;if(this.dataSet){this.dataSet.off(\"*\",this._onChange)}this.dataSet=rawData;this.dataTable=data;var me=this;this._onChange=function(){graph3d.setData(me.dataSet)};this.dataSet.on(\"*\",this._onChange);this.colX=\"x\";this.colY=\"y\";this.colZ=\"z\";var withBars=graph3d.hasBars(style);if(withBars){if(graph3d.defaultXBarWidth!==undefined){this.xBarWidth=graph3d.defaultXBarWidth}else{this.xBarWidth=this.getSmallestDifference(data,this.colX)||1}if(graph3d.defaultYBarWidth!==undefined){this.yBarWidth=graph3d.defaultYBarWidth}else{this.yBarWidth=this.getSmallestDifference(data,this.colY)||1}}this._initializeRange(data,this.colX,graph3d,withBars);this._initializeRange(data,this.colY,graph3d,withBars);this._initializeRange(data,this.colZ,graph3d,false);if(data[0].hasOwnProperty(\"style\")){this.colValue=\"style\";var valueRange=this.getColumnRange(data,this.colValue);this._setRangeDefaults(valueRange,graph3d.defaultValueMin,graph3d.defaultValueMax);this.valueRange=valueRange}var table=this.getDataTable();if(table[0].hasOwnProperty(\"filter\")){if(this.dataFilter===undefined){this.dataFilter=new Filter(this,\"filter\",graph3d);this.dataFilter.setOnLoadCallback(function(){graph3d.redraw()})}}var dataPoints;if(this.dataFilter){dataPoints=this.dataFilter._getDataPoints()}else{dataPoints=this._getDataPoints(this.getDataTable())}return dataPoints};DataGroup.prototype._collectRangeSettings=function(column,graph3d){var index=[\"x\",\"y\",\"z\"].indexOf(column);if(index==-1){throw new Error(\"Column '\"+column+\"' invalid\")}var upper=column.toUpperCase();return{barWidth:this[column+\"BarWidth\"],min:graph3d[\"default\"+upper+\"Min\"],max:graph3d[\"default\"+upper+\"Max\"],step:graph3d[\"default\"+upper+\"Step\"],range_label:column+\"Range\",step_label:column+\"Step\"}};DataGroup.prototype._initializeRange=function(data,column,graph3d,withBars){var NUMSTEPS=5;var settings=this._collectRangeSettings(column,graph3d);var range=this.getColumnRange(data,column);if(withBars&&column!=\"z\"){range.expand(settings.barWidth/2)}this._setRangeDefaults(range,settings.min,settings.max);this[settings.range_label]=range;this[settings.step_label]=settings.step!==undefined?settings.step:range.range()/NUMSTEPS};DataGroup.prototype.getDistinctValues=function(column,data){if(data===undefined){data=this.dataTable}var values=[];for(var i=0;i<data.length;i++){var value=data[i][column]||0;if(values.indexOf(value)===-1){values.push(value)}}return values.sort(function(a,b){return a-b})};DataGroup.prototype.getSmallestDifference=function(data,column){var values=this.getDistinctValues(data,column);var smallest_diff=null;for(var i=1;i<values.length;i++){var diff=values[i]-values[i-1];if(smallest_diff==null||smallest_diff>diff){smallest_diff=diff}}return smallest_diff};DataGroup.prototype.getColumnRange=function(data,column){var range=new Range;for(var i=0;i<data.length;i++){var item=data[i][column];range.adjust(item)}return range};DataGroup.prototype.getNumberOfRows=function(){return this.dataTable.length};DataGroup.prototype._setRangeDefaults=function(range,defaultMin,defaultMax){if(defaultMin!==undefined){range.min=defaultMin}if(defaultMax!==undefined){range.max=defaultMax}if(range.max<=range.min)range.max=range.min+1};DataGroup.prototype.getDataTable=function(){return this.dataTable};DataGroup.prototype.getDataSet=function(){return this.dataSet};DataGroup.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};DataGroup.prototype.initDataAsMatrix=function(data){var x,y,i,obj;var dataX=this.getDistinctValues(this.colX,data);var dataY=this.getDistinctValues(this.colY,data);var dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}return dataPoints};DataGroup.prototype.getInfo=function(){var dataFilter=this.dataFilter;if(!dataFilter)return undefined;return dataFilter.getLabel()+\": \"+dataFilter.getSelectedValue()};DataGroup.prototype.reload=function(){if(this.dataTable){this.setData(this.dataTable)}};DataGroup.prototype._getDataPoints=function(data){var dataPoints=[];if(this.style===Settings.STYLE.GRID||this.style===Settings.STYLE.SURFACE){dataPoints=this.initDataAsMatrix(data)}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Settings.STYLE.LINE){for(var i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};DataGroup.prototype._checkValueField=function(data){var hasValueField=this.style===Settings.STYLE.BARCOLOR||this.style===Settings.STYLE.BARSIZE||this.style===Settings.STYLE.DOTCOLOR||this.style===Settings.STYLE.DOTSIZE;if(!hasValueField){return}if(this.colValue===undefined){throw new Error(\"Expected data to have \"+\" field 'style' \"+\" for graph style '\"+this.style+\"'\")}if(data[0][this.colValue]===undefined){throw new Error(\"Expected data to have \"+\" field '\"+this.colValue+\"' \"+\" for graph style '\"+this.style+\"'\")}};module.exports=DataGroup},function(module,exports,__webpack_require__){\"use strict\";function Range(){this.min=undefined;this.max=undefined}Range.prototype.adjust=function(value){if(value===undefined)return;if(this.min===undefined||this.min>value){this.min=value}if(this.max===undefined||this.max<value){this.max=value}};Range.prototype.combine=function(range){this.add(range.min);this.add(range.max)};Range.prototype.expand=function(val){if(val===undefined){return}var newMin=this.min-val;var newMax=this.max+val;if(newMin>newMax){throw new Error(\"Passed expansion value makes range invalid\")}this.min=newMin;this.max=newMax};Range.prototype.range=function(){return this.max-this.min};Range.prototype.center=function(){return(this.min+this.max)/2};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{window.propagating=factory()}})(function(){var _firstTarget=null;return function propagating(hammer,options){var _options=options||{preventDefault:false};if(hammer.Manager){var Hammer=hammer;var PropagatingHammer=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer(element,o),o)};Hammer.assign(PropagatingHammer,Hammer);PropagatingHammer.Manager=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer.Manager(element,o),o)};return PropagatingHammer}var wrapper=Object.create(hammer);var element=hammer.element;if(!element.hammer)element.hammer=[];element.hammer.push(wrapper);hammer.on(\"hammer.input\",function(event){if(_options.preventDefault===true||_options.preventDefault===event.pointerType){event.preventDefault()}if(event.isFirst){_firstTarget=event.target}});wrapper._handlers={};wrapper.on=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(!_handlers){wrapper._handlers[event]=_handlers=[];hammer.on(event,propagatedHandler)}_handlers.push(handler)});return wrapper};wrapper.off=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(_handlers){_handlers=handler?_handlers.filter(function(h){return h!==handler}):[];if(_handlers.length>0){wrapper._handlers[event]=_handlers}else{hammer.off(event,propagatedHandler);delete wrapper._handlers[event]}}});return wrapper};wrapper.emit=function(eventType,event){_firstTarget=event.target;hammer.emit(eventType,event)};wrapper.destroy=function(){var hammers=hammer.element.hammer;var idx=hammers.indexOf(wrapper);if(idx!==-1)hammers.splice(idx,1);if(!hammers.length)delete hammer.element.hammer;wrapper._handlers={};hammer.destroy()};function split(events){return events.match(/[^ ]+/g)}function propagatedHandler(event){if(event.type!==\"hammer.input\"){if(!event.srcEvent._handled){event.srcEvent._handled={}}if(event.srcEvent._handled[event.type]){return}else{event.srcEvent._handled[event.type]=true}}var stopped=false\n;event.stopPropagation=function(){stopped=true};var srcStop=event.srcEvent.stopPropagation.bind(event.srcEvent);if(typeof srcStop==\"function\"){event.srcEvent.stopPropagation=function(){srcStop();event.stopPropagation()}}event.firstTarget=_firstTarget;var elem=_firstTarget;while(elem&&!stopped){var elemHammer=elem.hammer;if(elemHammer){var _handlers;for(var k=0;k<elemHammer.length;k++){_handlers=elemHammer[k]._handlers[event.type];if(_handlers)for(var i=0;i<_handlers.length&&!stopped;i++){_handlers[i](event)}}}elem=elem.parentNode}}return wrapper}})},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;(function(window,document,exportName,undefined){\"use strict\";var VENDOR_PREFIXES=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"];var TEST_ELEMENT=document.createElement(\"div\");var TYPE_FUNCTION=\"function\";var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout)}function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true}return false}function each(obj,iterator,context){var i;if(!obj){return}if(obj.forEach){obj.forEach(iterator,context)}else if(obj.length!==undefined){i=0;while(i<obj.length){iterator.call(context,obj[i],i,obj);i++}}else{for(i in obj){obj.hasOwnProperty(i)&&iterator.call(context,obj[i],i,obj)}}}function deprecate(method,name,message){var deprecationMessage=\"DEPRECATED METHOD: \"+name+\"\\n\"+message+\" AT \\n\";return function(){var e=new Error(\"get-stack-trace\");var stack=e&&e.stack?e.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\";var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack)}return method.apply(this,arguments)}}var assign;if(typeof Object.assign!==\"function\"){assign=function assign(target){if(target===undefined||target===null){throw new TypeError(\"Cannot convert undefined or null to object\")}var output=Object(target);for(var index=1;index<arguments.length;index++){var source=arguments[index];if(source!==undefined&&source!==null){for(var nextKey in source){if(source.hasOwnProperty(nextKey)){output[nextKey]=source[nextKey]}}}}return output}}else{assign=Object.assign}var extend=deprecate(function extend(dest,src,merge){var keys=Object.keys(src);var i=0;while(i<keys.length){if(!merge||merge&&dest[keys[i]]===undefined){dest[keys[i]]=src[keys[i]]}i++}return dest},\"extend\",\"Use `assign`.\");var merge=deprecate(function merge(dest,src){return extend(dest,src,true)},\"merge\",\"Use `assign`.\");function inherit(child,base,properties){var baseP=base.prototype,childP;childP=child.prototype=Object.create(baseP);childP.constructor=child;childP._super=baseP;if(properties){assign(childP,properties)}}function bindFn(fn,context){return function boundFn(){return fn.apply(context,arguments)}}function boolOrFn(val,args){if(typeof val==TYPE_FUNCTION){return val.apply(args?args[0]||undefined:undefined,args)}return val}function ifUndefined(val1,val2){return val1===undefined?val2:val1}function addEventListeners(target,types,handler){each(splitStr(types),function(type){target.addEventListener(type,handler,false)})}function removeEventListeners(target,types,handler){each(splitStr(types),function(type){target.removeEventListener(type,handler,false)})}function hasParent(node,parent){while(node){if(node==parent){return true}node=node.parentNode}return false}function inStr(str,find){return str.indexOf(find)>-1}function splitStr(str){return str.trim().split(/\\s+/g)}function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find)}else{var i=0;while(i<src.length){if(findByKey&&src[i][findByKey]==find||!findByKey&&src[i]===find){return i}i++}return-1}}function toArray(obj){return Array.prototype.slice.call(obj,0)}function uniqueArray(src,key,sort){var results=[];var values=[];var i=0;while(i<src.length){var val=key?src[i][key]:src[i];if(inArray(values,val)<0){results.push(src[i])}values[i]=val;i++}if(sort){if(!key){results=results.sort()}else{results=results.sort(function sortUniqueArray(a,b){return a[key]>b[key]})}}return results}function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i<VENDOR_PREFIXES.length){prefix=VENDOR_PREFIXES[i];prop=prefix?prefix+camelProp:property;if(prop in obj){return prop}i++}return undefined}var _uniqueId=1;function uniqueId(){return _uniqueId++}function getWindowForElement(element){var doc=element.ownerDocument||element;return doc.defaultView||doc.parentWindow||window}var MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i;var SUPPORT_TOUCH=\"ontouchstart\"in window;var SUPPORT_POINTER_EVENTS=prefixed(window,\"PointerEvent\")!==undefined;var SUPPORT_ONLY_TOUCH=SUPPORT_TOUCH&&MOBILE_REGEX.test(navigator.userAgent);var INPUT_TYPE_TOUCH=\"touch\";var INPUT_TYPE_PEN=\"pen\";var INPUT_TYPE_MOUSE=\"mouse\";var INPUT_TYPE_KINECT=\"kinect\";var COMPUTE_INTERVAL=25;var INPUT_START=1;var INPUT_MOVE=2;var INPUT_END=4;var INPUT_CANCEL=8;var DIRECTION_NONE=1;var DIRECTION_LEFT=2;var DIRECTION_RIGHT=4;var DIRECTION_UP=8;var DIRECTION_DOWN=16;var DIRECTION_HORIZONTAL=DIRECTION_LEFT|DIRECTION_RIGHT;var DIRECTION_VERTICAL=DIRECTION_UP|DIRECTION_DOWN;var DIRECTION_ALL=DIRECTION_HORIZONTAL|DIRECTION_VERTICAL;var PROPS_XY=[\"x\",\"y\"];var PROPS_CLIENT_XY=[\"clientX\",\"clientY\"];function Input(manager,callback){var self=this;this.manager=manager;this.callback=callback;this.element=manager.element;this.target=manager.options.inputTarget;this.domHandler=function(ev){if(boolOrFn(manager.options.enable,[manager])){self.handler(ev)}};this.init()}Input.prototype={handler:function(){},init:function(){this.evEl&&addEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&addEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&addEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&removeEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&removeEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&removeEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)}};function createInputInstance(manager){var Type;var inputClass=manager.options.inputClass;if(inputClass){Type=inputClass}else if(SUPPORT_POINTER_EVENTS){Type=PointerEventInput}else if(SUPPORT_ONLY_TOUCH){Type=TouchInput}else if(!SUPPORT_TOUCH){Type=MouseInput}else{Type=TouchMouseInput}return new Type(manager,inputHandler)}function inputHandler(manager,eventType,input){var pointersLen=input.pointers.length;var changedPointersLen=input.changedPointers.length;var isFirst=eventType&INPUT_START&&pointersLen-changedPointersLen===0;var isFinal=eventType&(INPUT_END|INPUT_CANCEL)&&pointersLen-changedPointersLen===0;input.isFirst=!!isFirst;input.isFinal=!!isFinal;if(isFirst){manager.session={}}input.eventType=eventType;computeInputData(manager,input);manager.emit(\"hammer.input\",input);manager.recognize(input);manager.session.prevInput=input}function computeInputData(manager,input){var session=manager.session;var pointers=input.pointers;var pointersLength=pointers.length;if(!session.firstInput){session.firstInput=simpleCloneInputData(input)}if(pointersLength>1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input)}else if(pointersLength===1){session.firstMultiple=false}var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=abs(overallVelocity.x)>abs(overallVelocity.y)?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:input.pointers.length>session.prevInput.maxPointers?input.pointers.length:session.prevInput.maxPointers;computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target}input.target=target}function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y}}input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y)}function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=abs(v.x)>abs(v.y)?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction}input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction}function simpleCloneInputData(input){var pointers=[];var i=0;while(i<input.pointers.length){pointers[i]={clientX:round(input.pointers[i].clientX),clientY:round(input.pointers[i].clientY)};i++}return{timeStamp:now(),pointers:pointers,center:getCenter(pointers),deltaX:input.deltaX,deltaY:input.deltaY}}function getCenter(pointers){var pointersLength=pointers.length;if(pointersLength===1){return{x:round(pointers[0].clientX),y:round(pointers[0].clientY)}}var x=0,y=0,i=0;while(i<pointersLength){x+=pointers[i].clientX;y+=pointers[i].clientY;i++}return{x:round(x/pointersLength),y:round(y/pointersLength)}}function getVelocity(deltaTime,x,y){return{x:x/deltaTime||0,y:y/deltaTime||0}}function getDirection(x,y){if(x===y){return DIRECTION_NONE}if(abs(x)>=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT}return y<0?DIRECTION_UP:DIRECTION_DOWN}function getDistance(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt(x*x+y*y)}function getAngle(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI}function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY)}function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY)}var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS=\"mousedown\";var MOUSE_WINDOW_EVENTS=\"mousemove mouseup\";function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments)}inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true}if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END}if(!this.pressed){return}if(eventType&INPUT_END){this.pressed=false}this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev})}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS=\"pointerdown\";var POINTER_WINDOW_EVENTS=\"pointermove pointerup pointercancel\";if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS=\"MSPointerDown\";POINTER_WINDOW_EVENTS=\"MSPointerMove MSPointerUp MSPointerCancel\"}function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace(\"ms\",\"\");var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=pointerType==INPUT_TYPE_TOUCH;var storeIndex=inArray(store,ev.pointerId,\"pointerId\");if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true}if(storeIndex<0){return}store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1)}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS=\"touchstart\";var SINGLE_TOUCH_WINDOW_EVENTS=\"touchstart touchmove touchend touchcancel\";function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments)}inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true}if(!this.started){return}var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),\"identifier\",true)}return[all,changed]}var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS=\"touchstart touchmove touchend touchcancel\";function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments)}inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches]}var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target)});if(type===INPUT_START){i=0;while(i<targetTouches.length){targetIds[targetTouches[i].identifier]=true;i++}}i=0;while(i<changedTouches.length){if(targetIds[changedTouches[i].identifier]){changedTargetTouches.push(changedTouches[i])}if(type&(INPUT_END|INPUT_CANCEL)){delete targetIds[changedTouches[i].identifier]}i++}if(!changedTargetTouches.length){return}return[uniqueArray(targetTouches.concat(changedTargetTouches),\"identifier\",true),changedTargetTouches]}var DEDUP_TIMEOUT=2500;var DEDUP_DISTANCE=25;function TouchMouseInput(){Input.apply(this,arguments);var handler=bindFn(this.handler,this);this.touch=new TouchInput(this.manager,handler);this.mouse=new MouseInput(this.manager,handler);this.primaryTouch=null;this.lastTouches=[]}inherit(TouchMouseInput,Input,{handler:function TMEhandler(manager,inputEvent,inputData){var isTouch=inputData.pointerType==INPUT_TYPE_TOUCH,isMouse=inputData.pointerType==INPUT_TYPE_MOUSE;if(isMouse&&inputData.sourceCapabilities&&inputData.sourceCapabilities.firesTouchEvents){return}if(isTouch){recordTouches.call(this,inputEvent,inputData)}else if(isMouse&&isSyntheticEvent.call(this,inputData)){return}this.callback(manager,inputEvent,inputData)},destroy:function destroy(){this.touch.destroy();this.mouse.destroy()}});function recordTouches(eventType,eventData){if(eventType&INPUT_START){this.primaryTouch=eventData.changedPointers[0].identifier;setLastTouch.call(this,eventData)}else if(eventType&(INPUT_END|INPUT_CANCEL)){setLastTouch.call(this,eventData)}}function setLastTouch(eventData){var touch=eventData.changedPointers[0];if(touch.identifier===this.primaryTouch){var lastTouch={x:touch.clientX,y:touch.clientY};this.lastTouches.push(lastTouch);var lts=this.lastTouches;var removeLastTouch=function(){var i=lts.indexOf(lastTouch);if(i>-1){lts.splice(i,1)}};setTimeout(removeLastTouch,DEDUP_TIMEOUT)}}function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i<this.lastTouches.length;i++){var t=this.lastTouches[i];var dx=Math.abs(x-t.x),dy=Math.abs(y-t.y);if(dx<=DEDUP_DISTANCE&&dy<=DEDUP_DISTANCE){return true}}return false}var PREFIXED_TOUCH_ACTION=prefixed(TEST_ELEMENT.style,\"touchAction\");var NATIVE_TOUCH_ACTION=PREFIXED_TOUCH_ACTION!==undefined;var TOUCH_ACTION_COMPUTE=\"compute\";var TOUCH_ACTION_AUTO=\"auto\";var TOUCH_ACTION_MANIPULATION=\"manipulation\";var TOUCH_ACTION_NONE=\"none\";var TOUCH_ACTION_PAN_X=\"pan-x\";var TOUCH_ACTION_PAN_Y=\"pan-y\";var TOUCH_ACTION_MAP=getTouchActionProps();function TouchAction(manager,value){this.manager=manager;this.set(value)}TouchAction.prototype={set:function(value){if(value==TOUCH_ACTION_COMPUTE){value=this.compute()}if(NATIVE_TOUCH_ACTION&&this.manager.element.style&&TOUCH_ACTION_MAP[value]){this.manager.element.style[PREFIXED_TOUCH_ACTION]=value}this.actions=value.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var actions=[];each(this.manager.recognizers,function(recognizer){if(boolOrFn(recognizer.options.enable,[recognizer])){actions=actions.concat(recognizer.getTouchAction())}});return cleanTouchActions(actions.join(\" \"))},preventDefaults:function(input){var srcEvent=input.srcEvent;var direction=input.offsetDirection;if(this.manager.session.prevented){srcEvent.preventDefault();return}var actions=this.actions;var hasNone=inStr(actions,TOUCH_ACTION_NONE)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];if(hasNone){var isTapPointer=input.pointers.length===1;var isTapMovement=input.distance<2;var isTapTouchTime=input.deltaTime<250;if(isTapPointer&&isTapMovement&&isTapTouchTime){return}}if(hasPanX&&hasPanY){return}if(hasNone||hasPanY&&direction&DIRECTION_HORIZONTAL||hasPanX&&direction&DIRECTION_VERTICAL){return this.preventSrc(srcEvent)}},preventSrc:function(srcEvent){this.manager.session.prevented=true;srcEvent.preventDefault()}};function cleanTouchActions(actions){if(inStr(actions,TOUCH_ACTION_NONE)){return TOUCH_ACTION_NONE}var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X);var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y);if(hasPanX&&hasPanY){return TOUCH_ACTION_NONE}if(hasPanX||hasPanY){return hasPanX?TOUCH_ACTION_PAN_X:TOUCH_ACTION_PAN_Y}if(inStr(actions,TOUCH_ACTION_MANIPULATION)){return TOUCH_ACTION_MANIPULATION}return TOUCH_ACTION_AUTO}function getTouchActionProps(){if(!NATIVE_TOUCH_ACTION){return false}var touchMap={};var cssSupports=window.CSS&&window.CSS.supports;[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(val){touchMap[val]=cssSupports?window.CSS.supports(\"touch-action\",val):true});return touchMap}var STATE_POSSIBLE=1;var STATE_BEGAN=2;var STATE_CHANGED=4;var STATE_ENDED=8;var STATE_RECOGNIZED=STATE_ENDED;var STATE_CANCELLED=16;var STATE_FAILED=32;function Recognizer(options){this.options=assign({},this.defaults,options||{});this.id=uniqueId();this.manager=null;this.options.enable=ifUndefined(this.options.enable,true);this.state=STATE_POSSIBLE;this.simultaneous={};this.requireFail=[]}Recognizer.prototype={defaults:{},set:function(options){assign(this.options,options);this.manager&&this.manager.touchAction.update();return this},recognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"recognizeWith\",this)){return this}var simultaneous=this.simultaneous;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(!simultaneous[otherRecognizer.id]){simultaneous[otherRecognizer.id]=otherRecognizer;otherRecognizer.recognizeWith(this)}return this},dropRecognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRecognizeWith\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);delete this.simultaneous[otherRecognizer.id];return this},requireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"requireFailure\",this)){return this}var requireFail=this.requireFail;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(inArray(requireFail,otherRecognizer)===-1){requireFail.push(otherRecognizer);otherRecognizer.requireFailure(this)}return this},dropRequireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRequireFailure\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);var index=inArray(this.requireFail,otherRecognizer);if(index>-1){this.requireFail.splice(index,1)}return this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id]},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input)}if(state<STATE_ENDED){emit(self.options.event+stateStr(state))}emit(self.options.event);if(input.additionalEvent){emit(input.additionalEvent)}if(state>=STATE_ENDED){emit(self.options.event+stateStr(state))}},tryEmit:function(input){if(this.canEmit()){return this.emit(input)}this.state=STATE_FAILED},canEmit:function(){var i=0;while(i<this.requireFail.length){if(!(this.requireFail[i].state&(STATE_FAILED|STATE_POSSIBLE))){return false}i++}return true},recognize:function(inputData){var inputDataClone=assign({},inputData);if(!boolOrFn(this.options.enable,[this,inputDataClone])){this.reset();this.state=STATE_FAILED;return}if(this.state&(STATE_RECOGNIZED|STATE_CANCELLED|STATE_FAILED)){this.state=STATE_POSSIBLE}this.state=this.process(inputDataClone);if(this.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED|STATE_CANCELLED)){this.tryEmit(inputDataClone)}},process:function(inputData){},getTouchAction:function(){},reset:function(){}};function stateStr(state){if(state&STATE_CANCELLED){return\"cancel\"}else if(state&STATE_ENDED){return\"end\"}else if(state&STATE_CHANGED){return\"move\"}else if(state&STATE_BEGAN){return\"start\"}return\"\"}function directionStr(direction){if(direction==DIRECTION_DOWN){return\"down\"}else if(direction==DIRECTION_UP){return\"up\"}else if(direction==DIRECTION_LEFT){return\"left\"}else if(direction==DIRECTION_RIGHT){return\"right\"}return\"\"}function getRecognizerByNameIfManager(otherRecognizer,recognizer){var manager=recognizer.manager;if(manager){return manager.get(otherRecognizer)}return otherRecognizer}function AttrRecognizer(){Recognizer.apply(this,arguments)}inherit(AttrRecognizer,Recognizer,{defaults:{pointers:1},attrTest:function(input){var optionPointers=this.options.pointers;return optionPointers===0||input.pointers.length===optionPointers},process:function(input){var state=this.state;var eventType=input.eventType;var isRecognized=state&(STATE_BEGAN|STATE_CHANGED);var isValid=this.attrTest(input);if(isRecognized&&(eventType&INPUT_CANCEL||!isValid)){return state|STATE_CANCELLED}else if(isRecognized||isValid){if(eventType&INPUT_END){return state|STATE_ENDED}else if(!(state&STATE_BEGAN)){return STATE_BEGAN}return state|STATE_CHANGED}return STATE_FAILED}});function PanRecognizer(){AttrRecognizer.apply(this,arguments);this.pX=null;this.pY=null}inherit(PanRecognizer,AttrRecognizer,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:DIRECTION_ALL},getTouchAction:function(){var direction=this.options.direction;var actions=[];if(direction&DIRECTION_HORIZONTAL){actions.push(TOUCH_ACTION_PAN_Y)}if(direction&DIRECTION_VERTICAL){actions.push(TOUCH_ACTION_PAN_X)}return actions},directionTest:function(input){var options=this.options;var hasMoved=true;var distance=input.distance;var direction=input.direction;var x=input.deltaX;var y=input.deltaY;if(!(direction&options.direction)){if(options.direction&DIRECTION_HORIZONTAL){direction=x===0?DIRECTION_NONE:x<0?DIRECTION_LEFT:DIRECTION_RIGHT;hasMoved=x!=this.pX;distance=Math.abs(input.deltaX)}else{direction=y===0?DIRECTION_NONE:y<0?DIRECTION_UP:DIRECTION_DOWN;hasMoved=y!=this.pY;distance=Math.abs(input.deltaY)}}input.direction=direction;return hasMoved&&distance>options.threshold&&direction&options.direction},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||!(this.state&STATE_BEGAN)&&this.directionTest(input))},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction}this._super.emit.call(this,input)}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN)},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?\"in\":\"out\";input.additionalEvent=this.options.event+inOut}this._super.emit.call(this,input)}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null}inherit(PressRecognizer,Recognizer,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTime=input.deltaTime>options.time;this._input=input;if(!validMovement||!validPointers||input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime){this.reset()}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.time,this)}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED}return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(input){if(this.state!==STATE_RECOGNIZED){return}if(input&&input.eventType&INPUT_END){this.manager.emit(this.options.event+\"up\",input)}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input)}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN)}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this)},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY}return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input)}this.manager.emit(this.options.event,input)}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0}inherit(TapRecognizer,Recognizer,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTouchTime=input.deltaTime<options.time;this.reset();if(input.eventType&INPUT_START&&this.count===0){return this.failTimeout()}if(validMovement&&validTouchTime&&validPointers){if(input.eventType!=INPUT_END){return this.failTimeout()}var validInterval=this.pTime?input.timeStamp-this.pTime<options.interval:true;var validMultiTap=!this.pCenter||getDistance(this.pCenter,input.center)<options.posThreshold;this.pTime=input.timeStamp;this.pCenter=input.center;if(!validMultiTap||!validInterval){this.count=1}else{this.count+=1}this._input=input;var tapCount=this.count%options.taps;if(tapCount===0){if(!this.hasRequireFailures()){return STATE_RECOGNIZED}else{this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.interval,this);return STATE_BEGAN}}}return STATE_FAILED},failTimeout:function(){this._timer=setTimeoutContext(function(){this.state=STATE_FAILED},this.options.interval,this);return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(){if(this.state==STATE_RECOGNIZED){this._input.tapCount=this.count;this.manager.emit(this.options.event,this._input)}}});function Hammer(element,options){options=options||{};options.recognizers=ifUndefined(options.recognizers,Hammer.defaults.preset);return new Manager(element,options)}Hammer.VERSION=\"2.0.7\";Hammer.defaults={domEvents:false,touchAction:TOUCH_ACTION_COMPUTE,enable:true,inputTarget:null,inputClass:null,preset:[[RotateRecognizer,{enable:false}],[PinchRecognizer,{enable:false},[\"rotate\"]],[SwipeRecognizer,{direction:DIRECTION_HORIZONTAL}],[PanRecognizer,{direction:DIRECTION_HORIZONTAL},[\"swipe\"]],[TapRecognizer],[TapRecognizer,{event:\"doubletap\",taps:2},[\"tap\"]],[PressRecognizer]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var STOP=1;var FORCED_STOP=2;function Manager(element,options){this.options=assign({},Hammer.defaults,options||{});this.options.inputTarget=this.options.inputTarget||element;this.handlers={};this.session={};this.recognizers=[];this.oldCssProps={};this.element=element;this.input=createInputInstance(this);this.touchAction=new TouchAction(this,this.options.touchAction);toggleCssProps(this,true);each(this.options.recognizers,function(item){var recognizer=this.add(new item[0](item[1]));item[2]&&recognizer.recognizeWith(item[2]);item[3]&&recognizer.requireFailure(item[3])},this)}Manager.prototype={set:function(options){assign(this.options,options);if(options.touchAction){this.touchAction.update()}if(options.inputTarget){this.input.destroy();this.input.target=options.inputTarget;this.input.init()}return this},stop:function(force){this.session.stopped=force?FORCED_STOP:STOP},recognize:function(inputData){var session=this.session;if(session.stopped){return}this.touchAction.preventDefaults(inputData)\n;var recognizer;var recognizers=this.recognizers;var curRecognizer=session.curRecognizer;if(!curRecognizer||curRecognizer&&curRecognizer.state&STATE_RECOGNIZED){curRecognizer=session.curRecognizer=null}var i=0;while(i<recognizers.length){recognizer=recognizers[i];if(session.stopped!==FORCED_STOP&&(!curRecognizer||recognizer==curRecognizer||recognizer.canRecognizeWith(curRecognizer))){recognizer.recognize(inputData)}else{recognizer.reset()}if(!curRecognizer&&recognizer.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED)){curRecognizer=session.curRecognizer=recognizer}i++}},get:function(recognizer){if(recognizer instanceof Recognizer){return recognizer}var recognizers=this.recognizers;for(var i=0;i<recognizers.length;i++){if(recognizers[i].options.event==recognizer){return recognizers[i]}}return null},add:function(recognizer){if(invokeArrayArg(recognizer,\"add\",this)){return this}var existing=this.get(recognizer.options.event);if(existing){this.remove(existing)}this.recognizers.push(recognizer);recognizer.manager=this;this.touchAction.update();return recognizer},remove:function(recognizer){if(invokeArrayArg(recognizer,\"remove\",this)){return this}recognizer=this.get(recognizer);if(recognizer){var recognizers=this.recognizers;var index=inArray(recognizers,recognizer);if(index!==-1){recognizers.splice(index,1);this.touchAction.update()}}return this},on:function(events,handler){if(events===undefined){return}if(handler===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){handlers[event]=handlers[event]||[];handlers[event].push(handler)});return this},off:function(events,handler){if(events===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){if(!handler){delete handlers[event]}else{handlers[event]&&handlers[event].splice(inArray(handlers[event],handler),1)}});return this},emit:function(event,data){if(this.options.domEvents){triggerDomEvent(event,data)}var handlers=this.handlers[event]&&this.handlers[event].slice();if(!handlers||!handlers.length){return}data.type=event;data.preventDefault=function(){data.srcEvent.preventDefault()};var i=0;while(i<handlers.length){handlers[i](data);i++}},destroy:function(){this.element&&toggleCssProps(this,false);this.handlers={};this.session={};this.input.destroy();this.element=null}};function toggleCssProps(manager,add){var element=manager.element;if(!element.style){return}var prop;each(manager.options.cssProps,function(value,name){prop=prefixed(element.style,name);if(add){manager.oldCssProps[prop]=element.style[prop];element.style[prop]=value}else{element.style[prop]=manager.oldCssProps[prop]||\"\"}});if(!add){manager.oldCssProps={}}}function triggerDomEvent(event,data){var gestureEvent=document.createEvent(\"Event\");gestureEvent.initEvent(event,true,true);gestureEvent.gesture=data;data.target.dispatchEvent(gestureEvent)}assign(Hammer,{INPUT_START:INPUT_START,INPUT_MOVE:INPUT_MOVE,INPUT_END:INPUT_END,INPUT_CANCEL:INPUT_CANCEL,STATE_POSSIBLE:STATE_POSSIBLE,STATE_BEGAN:STATE_BEGAN,STATE_CHANGED:STATE_CHANGED,STATE_ENDED:STATE_ENDED,STATE_RECOGNIZED:STATE_RECOGNIZED,STATE_CANCELLED:STATE_CANCELLED,STATE_FAILED:STATE_FAILED,DIRECTION_NONE:DIRECTION_NONE,DIRECTION_LEFT:DIRECTION_LEFT,DIRECTION_RIGHT:DIRECTION_RIGHT,DIRECTION_UP:DIRECTION_UP,DIRECTION_DOWN:DIRECTION_DOWN,DIRECTION_HORIZONTAL:DIRECTION_HORIZONTAL,DIRECTION_VERTICAL:DIRECTION_VERTICAL,DIRECTION_ALL:DIRECTION_ALL,Manager:Manager,Input:Input,TouchAction:TouchAction,TouchInput:TouchInput,MouseInput:MouseInput,PointerEventInput:PointerEventInput,TouchMouseInput:TouchMouseInput,SingleTouchInput:SingleTouchInput,Recognizer:Recognizer,AttrRecognizer:AttrRecognizer,Tap:TapRecognizer,Pan:PanRecognizer,Swipe:SwipeRecognizer,Pinch:PinchRecognizer,Rotate:RotateRecognizer,Press:PressRecognizer,on:addEventListeners,off:removeEventListeners,each:each,merge:merge,extend:extend,assign:assign,inherit:inherit,bindFn:bindFn,prefixed:prefixed});var freeGlobal=typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:{};freeGlobal.Hammer=Hammer;if(true){!(__WEBPACK_AMD_DEFINE_RESULT__=function(){return Hammer}.call(exports,__webpack_require__,exports,module),__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof module!=\"undefined\"&&module.exports){module.exports=Hammer}else{window[exportName]=Hammer}})(window,document,\"Hammer\")},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Timeline=__webpack_require__(178);exports.Graph2d=__webpack_require__(180);exports.timeline={Core:__webpack_require__(65),DateUtil:__webpack_require__(36),Range:__webpack_require__(64),stack:__webpack_require__(100),TimeStep:__webpack_require__(66),components:{items:{Item:__webpack_require__(38),BackgroundItem:__webpack_require__(103),BoxItem:__webpack_require__(101),PointItem:__webpack_require__(102),RangeItem:__webpack_require__(70)},BackgroundGroup:__webpack_require__(69),Component:__webpack_require__(16),CurrentTime:__webpack_require__(67),CustomTime:__webpack_require__(46),DataAxis:__webpack_require__(107),DataScale:__webpack_require__(108),GraphGroup:__webpack_require__(109),Group:__webpack_require__(68),ItemSet:__webpack_require__(99),Legend:__webpack_require__(112),LineGraph:__webpack_require__(106),TimeAxis:__webpack_require__(45)}};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var ItemSet=__webpack_require__(99);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(105).allOptions;var configureOptions=__webpack_require__(105).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Timeline(container,items,groups,options){if(!(this instanceof Timeline)){throw new SyntaxError(\"Constructor must be called with the new operator\")}if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Timeline option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);if(!options||options&&typeof options.rtl==\"undefined\"){this.dom.root.style.visibility=\"hidden\";var directionFromDom,domNode=this.dom.root;while(!directionFromDom&&domNode){directionFromDom=window.getComputedStyle(domNode,null).direction;domNode=domNode.parentElement}this.options.rtl=directionFromDom&&directionFromDom.toLowerCase()==\"rtl\"}else{this.options.rtl=options.rtl}this.options.rollingMode=options&&options.rollingMode;this.options.onInitialDrawComplete=options&&options.onInitialDrawComplete;this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function getScale(){return me.timeAxis.step.scale},getStep:function getStep(){return me.timeAxis.step.step},toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body,this.options);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body,this.options);this.timeAxis2=null;this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body,this.options);this.components.push(this.currentTime);this.itemSet=new ItemSet(this.body,this.options);this.components.push(this.itemSet);this.itemsData=null;this.groupsData=null;this.dom.root.onclick=function(event){me.emit(\"click\",me.getEventProperties(event))};this.dom.root.ondblclick=function(event){me.emit(\"doubleClick\",me.getEventProperties(event))};this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};this.dom.root.onmouseover=function(event){me.emit(\"mouseOver\",me.getEventProperties(event))};if(window.PointerEvent){this.dom.root.onpointerdown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onpointermove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onpointerup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}else{this.dom.root.onmousemove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onmousedown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onmouseup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}this.initialFitDone=false;this.on(\"changed\",function(){if(this.itemsData==null||this.options.rollingMode)return;if(!me.initialFitDone){me.initialFitDone=true;if(me.options.start!=undefined||me.options.end!=undefined){if(me.options.start==undefined||me.options.end==undefined){var range=me.getItemRange()}var start=me.options.start!=undefined?me.options.start:range.min;var end=me.options.end!=undefined?me.options.end:range.max;me.setWindow(start,end,{animation:false})}else{me.fit({animation:false})}}if(!me.initialDrawDone&&me.initialRangeChangeDone){me.initialDrawDone=true;me.dom.root.style.visibility=\"visible\";if(me.options.onInitialDrawComplete){setTimeout(function(){return me.options.onInitialDrawComplete()},0)}}});if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Timeline.prototype=new Core;Timeline.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};Timeline.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:true});this._redraw()};Timeline.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options);if(\"type\"in options){if(options.type!==this.options.type){this.options.type=options.type;var itemsData=this.itemsData;if(itemsData){var selection=this.getSelection();this.setItems(null);this.setItems(itemsData);this.setSelection(selection)}}}};Timeline.prototype.setItems=function(items){var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.itemSet&&this.itemSet.setItems(newDataSet)};Timeline.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else{var filter=function filter(group){return group.visible!==false};if(groups instanceof DataSet||groups instanceof DataView){newDataSet=new DataView(groups,{filter:filter})}else{newDataSet=new DataSet(groups.filter(filter))}}this.groupsData=newDataSet;this.itemSet.setGroups(newDataSet)};Timeline.prototype.setData=function(data){if(data&&data.groups){this.setGroups(data.groups)}if(data&&data.items){this.setItems(data.items)}};Timeline.prototype.setSelection=function(ids,options){this.itemSet&&this.itemSet.setSelection(ids);if(options&&options.focus){this.focus(ids,options)}};Timeline.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]};Timeline.prototype.focus=function(id,options){if(!this.itemsData||id==undefined)return;var ids=Array.isArray(id)?id:[id];var itemsData=this.itemsData.getDataSet().get(ids,{type:{start:\"Date\",end:\"Date\"}});var start=null;var end=null;itemsData.forEach(function(itemData){var s=itemData.start.valueOf();var e=\"end\"in itemData?itemData.end.valueOf():itemData.start.valueOf();if(start===null||s<start){start=s}if(end===null||e>end){end=e}});if(start!==null&&end!==null){var me=this;var item=this.itemSet.items[ids[0]];var startPos=this._getScrollTop()*-1;var initialVerticalScroll=null;var verticalAnimationFrame=function verticalAnimationFrame(ease,willDraw,done){var verticalScroll=getItemVerticalScroll(me,item);if(!initialVerticalScroll){initialVerticalScroll=verticalScroll}if(initialVerticalScroll.itemTop==verticalScroll.itemTop&&!initialVerticalScroll.shouldScroll){return}else if(initialVerticalScroll.itemTop!=verticalScroll.itemTop&&verticalScroll.shouldScroll){initialVerticalScroll=verticalScroll;startPos=me._getScrollTop()*-1}var from=startPos;var to=initialVerticalScroll.scrollOffset;var scrollTop=done?to:from+(to-from)*ease;me._setScrollTop(-scrollTop);if(!willDraw){me._redraw()}};var setFinalVerticalPosition=function setFinalVerticalPosition(){var finalVerticalScroll=getItemVerticalScroll(me,item);if(finalVerticalScroll.shouldScroll&&finalVerticalScroll.itemTop!=initialVerticalScroll.itemTop){me._setScrollTop(-finalVerticalScroll.scrollOffset);me._redraw()}};var finalVerticalCallback=function finalVerticalCallback(){setFinalVerticalPosition();setTimeout(setFinalVerticalPosition,100)};var middle=(start+end)/2;var interval=Math.max(this.range.end-this.range.start,(end-start)*1.1);var animation=options&&options.animation!==undefined?options.animation:true;if(!animation){initialVerticalScroll={shouldScroll:false,scrollOffset:-1,itemTop:-1}}this.range.setRange(middle-interval/2,middle+interval/2,{animation:animation},finalVerticalCallback,verticalAnimationFrame)}};Timeline.prototype.fit=function(options,callback){var animation=options&&options.animation!==undefined?options.animation:true;var range;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset.length===1&&dataset.get()[0].end===undefined){range=this.getDataRange();this.moveTo(range.min.valueOf(),{animation:animation},callback)}else{range=this.getItemRange();this.range.setRange(range.min,range.max,{animation:animation},callback)}};function getStart(item){return util.convert(item.data.start,\"Date\").valueOf()}function getEnd(item){var end=item.data.end!=undefined?item.data.end:item.data.start;return util.convert(end,\"Date\").valueOf()}function getItemVerticalScroll(timeline,item){var leftHeight=timeline.props.leftContainer.height;var contentHeight=timeline.props.left.height;var group=item.parent;var offset=group.top;var shouldScroll=true;var orientation=timeline.timeAxis.options.orientation.axis;var itemTop=function itemTop(){if(orientation==\"bottom\"){return group.height-item.top-item.height}else{return item.top}};var currentScrollHeight=timeline._getScrollTop()*-1;var targetOffset=offset+itemTop();var height=item.height;if(targetOffset<currentScrollHeight){if(offset+leftHeight<=offset+itemTop()+height){offset+=itemTop()-timeline.itemSet.options.margin.item.vertical}}else if(targetOffset+height>currentScrollHeight+leftHeight){offset+=itemTop()+height-leftHeight+timeline.itemSet.options.margin.item.vertical}else{shouldScroll=false}offset=Math.min(offset,contentHeight-leftHeight);return{shouldScroll:shouldScroll,scrollOffset:offset,itemTop:targetOffset}}Timeline.prototype.getItemRange=function(){var range=this.getDataRange();var min=range.min!==null?range.min.valueOf():null;var max=range.max!==null?range.max.valueOf():null;var minItem=null;var maxItem=null;if(min!=null&&max!=null){var interval=max-min;if(interval<=0){interval=10}var factor=interval/this.props.center.width;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.itemSet.items,function(item,key){if(item.groupShowing){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.itemSet.items,function(item){var start=getStart(item);var end=getEnd(item);var startSide;var endSide;if(this.options.rtl){startSide=start-(item.getWidthRight()+10)*factor;endSide=end+(item.getWidthLeft()+10)*factor}else{startSide=start-(item.getWidthLeft()+10)*factor;endSide=end+(item.getWidthRight()+10)*factor}if(startSide<min){min=startSide;minItem=item}if(endSide>max){max=endSide;maxItem=item}}.bind(this));if(minItem&&maxItem){var lhs=minItem.getWidthLeft()+10;var rhs=maxItem.getWidthRight()+10;var delta=this.props.center.width-lhs-rhs;if(delta>0){if(this.options.rtl){min=getStart(minItem)-rhs*interval/delta;max=getEnd(maxItem)+lhs*interval/delta}else{min=getStart(minItem)-lhs*interval/delta;max=getEnd(maxItem)+rhs*interval/delta}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getDataRange=function(){var min=null;var max=null;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset){dataset.forEach(function(item){var start=util.convert(item.start,\"Date\").valueOf();var end=util.convert(item.end!=undefined?item.end:item.start,\"Date\").valueOf();if(min===null||start<min){min=start}if(max===null||end>max){max=end}})}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x;if(this.options.rtl){x=util.getAbsoluteRight(this.dom.centerContainer)-clientX}else{x=clientX-util.getAbsoluteLeft(this.dom.centerContainer)}var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var item=this.itemSet.itemFromTarget(event);var group=this.itemSet.groupFromTarget(event);var customTime=CustomTime.customTimeFromTarget(event);var snap=this.itemSet.options.snap||null;var scale=this.body.util.getScale();var step=this.body.util.getStep();var time=this._toTime(x);var snappedTime=snap?snap(time,scale,step):time;var element=util.getTarget(event);var what=null;if(item!=null){what=\"item\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.itemSet.dom.labelSet)){what=\"group-label\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}return{event:event,item:item?item.id:null,group:group?group.groupId:null,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,snappedTime:snappedTime}};Timeline.prototype.toggleRollingMode=function(){if(this.range.rolling){this.range.stopRolling()}else{if(this.options.rollingMode==undefined){this.setOptions(this.options)}this.range.startRolling()}};module.exports=Timeline},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var ColorPicker=function(){function ColorPicker(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;(0,_classCallCheck3[\"default\"])(this,ColorPicker);this.pixelRatio=pixelRatio;this.generated=false;this.centerCoordinates={x:289/2,y:289/2};this.r=289*.49;this.color={r:255,g:255,b:255,a:1};this.hueCircle=undefined;this.initialColor={r:255,g:255,b:255,a:1};this.previousColor=undefined;this.applied=false;this.updateCallback=function(){};this.closeCallback=function(){};this._create()}(0,_createClass3[\"default\"])(ColorPicker,[{key:\"insertTo\",value:function insertTo(container){if(this.hammer!==undefined){this.hammer.destroy();this.hammer=undefined}this.container=container;this.container.appendChild(this.frame);this._bindHammer();this._setSize()}},{key:\"setUpdateCallback\",value:function setUpdateCallback(callback){if(typeof callback===\"function\"){this.updateCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\")}}},{key:\"setCloseCallback\",value:function setCloseCallback(callback){if(typeof callback===\"function\"){this.closeCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\")}}},{key:\"_isColorString\",value:function _isColorString(color){var htmlColors={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"};if(typeof color===\"string\"){return htmlColors[color]}}},{key:\"setColor\",value:function setColor(color){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(color===\"none\"){return}var rgba=void 0;var htmlColor=this._isColorString(color);if(htmlColor!==undefined){color=htmlColor}if(util.isString(color)===true){if(util.isValidRGB(color)===true){var rgbaArray=color.substr(4).substr(0,color.length-5).split(\",\");rgba={r:rgbaArray[0],g:rgbaArray[1],b:rgbaArray[2],a:1}}else if(util.isValidRGBA(color)===true){var _rgbaArray=color.substr(5).substr(0,color.length-6).split(\",\");rgba={r:_rgbaArray[0],g:_rgbaArray[1],b:_rgbaArray[2],a:_rgbaArray[3]}}else if(util.isValidHex(color)===true){var rgbObj=util.hexToRGB(color);rgba={r:rgbObj.r,g:rgbObj.g,b:rgbObj.b,a:1}}}else{if(color instanceof Object){if(color.r!==undefined&&color.g!==undefined&&color.b!==undefined){var alpha=color.a!==undefined?color.a:\"1.0\";rgba={r:color.r,g:color.g,b:color.b,a:alpha}}}}if(rgba===undefined){throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+(0,_stringify2[\"default\"])(color))}else{this._setColor(rgba,setInitial)}}},{key:\"show\",value:function show(){if(this.closeCallback!==undefined){this.closeCallback();this.closeCallback=undefined}this.applied=false;this.frame.style.display=\"block\";this._generateHueCircle()}},{key:\"_hide\",value:function _hide(){var _this=this;var storePrevious=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;if(storePrevious===true){this.previousColor=util.extend({},this.color)}if(this.applied===true){this.updateCallback(this.initialColor)}this.frame.style.display=\"none\";setTimeout(function(){if(_this.closeCallback!==undefined){_this.closeCallback();_this.closeCallback=undefined}},0)}},{key:\"_save\",value:function _save(){this.updateCallback(this.color);this.applied=false;this._hide()}},{key:\"_apply\",value:function _apply(){this.applied=true;this.updateCallback(this.color);this._updatePicker(this.color)}},{key:\"_loadLast\",value:function _loadLast(){if(this.previousColor!==undefined){this.setColor(this.previousColor,false)}else{alert(\"There is no last color to load...\")}}},{key:\"_setColor\",value:function _setColor(rgba){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(setInitial===true){this.initialColor=util.extend({},rgba)}this.color=rgba;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var angleConvert=2*Math.PI;var radius=this.r*hsv.s;var x=this.centerCoordinates.x+radius*Math.sin(angleConvert*hsv.h);var y=this.centerCoordinates.y+radius*Math.cos(angleConvert*hsv.h);this.colorPickerSelector.style.left=x-.5*this.colorPickerSelector.clientWidth+\"px\";this.colorPickerSelector.style.top=y-.5*this.colorPickerSelector.clientHeight+\"px\";this._updatePicker(rgba)}},{key:\"_setOpacity\",value:function _setOpacity(value){this.color.a=value/100;this._updatePicker(this.color)}},{key:\"_setBrightness\",value:function _setBrightness(value){var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.v=value/100;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this._updatePicker()}},{key:\"_updatePicker\",value:function _updatePicker(){var rgba=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.color;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);ctx.putImageData(this.hueCircle,0,0);ctx.fillStyle=\"rgba(0,0,0,\"+(1-hsv.v)+\")\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.fill();this.brightnessRange.value=100*hsv.v;this.opacityRange.value=100*rgba.a;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}},{key:\"_setSize\",value:function _setSize(){this.colorPickerCanvas.style.width=\"100%\";this.colorPickerCanvas.style.height=\"100%\";this.colorPickerCanvas.width=289*this.pixelRatio;this.colorPickerCanvas.height=289*this.pixelRatio}},{key:\"_create\",value:function _create(){this.frame=document.createElement(\"div\");this.frame.className=\"vis-color-picker\";this.colorPickerDiv=document.createElement(\"div\");this.colorPickerSelector=document.createElement(\"div\");this.colorPickerSelector.className=\"vis-selector\";this.colorPickerDiv.appendChild(this.colorPickerSelector);this.colorPickerCanvas=document.createElement(\"canvas\");this.colorPickerDiv.appendChild(this.colorPickerCanvas);if(!this.colorPickerCanvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.colorPickerCanvas.appendChild(noCanvas)}else{var ctx=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1);this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}this.colorPickerDiv.className=\"vis-color\";this.opacityDiv=document.createElement(\"div\");this.opacityDiv.className=\"vis-opacity\";this.brightnessDiv=document.createElement(\"div\");this.brightnessDiv.className=\"vis-brightness\";this.arrowDiv=document.createElement(\"div\");this.arrowDiv.className=\"vis-arrow\";this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\";this.opacityRange.min=\"0\";this.opacityRange.max=\"100\"}catch(err){}this.opacityRange.value=\"100\";this.opacityRange.className=\"vis-range\";this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\";this.brightnessRange.min=\"0\";this.brightnessRange.max=\"100\"}catch(err){}this.brightnessRange.value=\"100\";this.brightnessRange.className=\"vis-range\";this.opacityDiv.appendChild(this.opacityRange);this.brightnessDiv.appendChild(this.brightnessRange);var me=this;this.opacityRange.onchange=function(){me._setOpacity(this.value)};this.opacityRange.oninput=function(){me._setOpacity(this.value)};this.brightnessRange.onchange=function(){me._setBrightness(this.value)};this.brightnessRange.oninput=function(){me._setBrightness(this.value)};this.brightnessLabel=document.createElement(\"div\");this.brightnessLabel.className=\"vis-label vis-brightness\";this.brightnessLabel.innerHTML=\"brightness:\";this.opacityLabel=document.createElement(\"div\");this.opacityLabel.className=\"vis-label vis-opacity\";this.opacityLabel.innerHTML=\"opacity:\";this.newColorDiv=document.createElement(\"div\");this.newColorDiv.className=\"vis-new-color\";this.newColorDiv.innerHTML=\"new\";this.initialColorDiv=document.createElement(\"div\");this.initialColorDiv.className=\"vis-initial-color\";this.initialColorDiv.innerHTML=\"initial\";this.cancelButton=document.createElement(\"div\");this.cancelButton.className=\"vis-button vis-cancel\";this.cancelButton.innerHTML=\"cancel\";this.cancelButton.onclick=this._hide.bind(this,false);this.applyButton=document.createElement(\"div\");this.applyButton.className=\"vis-button vis-apply\";this.applyButton.innerHTML=\"apply\";this.applyButton.onclick=this._apply.bind(this);this.saveButton=document.createElement(\"div\");this.saveButton.className=\"vis-button vis-save\";this.saveButton.innerHTML=\"save\";this.saveButton.onclick=this._save.bind(this);this.loadButton=document.createElement(\"div\");this.loadButton.className=\"vis-button vis-load\";this.loadButton.innerHTML=\"load last\";this.loadButton.onclick=this._loadLast.bind(this)\n;this.frame.appendChild(this.colorPickerDiv);this.frame.appendChild(this.arrowDiv);this.frame.appendChild(this.brightnessLabel);this.frame.appendChild(this.brightnessDiv);this.frame.appendChild(this.opacityLabel);this.frame.appendChild(this.opacityDiv);this.frame.appendChild(this.newColorDiv);this.frame.appendChild(this.initialColorDiv);this.frame.appendChild(this.cancelButton);this.frame.appendChild(this.applyButton);this.frame.appendChild(this.saveButton);this.frame.appendChild(this.loadButton)}},{key:\"_bindHammer\",value:function _bindHammer(){var _this2=this;this.drag={};this.pinch={};this.hammer=new Hammer(this.colorPickerCanvas);this.hammer.get(\"pinch\").set({enable:true});hammerUtil.onTouch(this.hammer,function(event){_this2._moveSelector(event)});this.hammer.on(\"tap\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panstart\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panmove\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panend\",function(event){_this2._moveSelector(event)})}},{key:\"_generateHueCircle\",value:function _generateHueCircle(){if(this.generated===false){var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);var x=void 0,y=void 0,hue=void 0,sat=void 0;this.centerCoordinates={x:w*.5,y:h*.5};this.r=.49*w;var angleConvert=2*Math.PI/360;var hfac=1/360;var sfac=1/this.r;var rgb=void 0;for(hue=0;hue<360;hue++){for(sat=0;sat<this.r;sat++){x=this.centerCoordinates.x+sat*Math.sin(angleConvert*hue);y=this.centerCoordinates.y+sat*Math.cos(angleConvert*hue);rgb=util.HSVToRGB(hue*hfac,sat*sfac,1);ctx.fillStyle=\"rgb(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\")\";ctx.fillRect(x-.5,y-.5,2,2)}}ctx.strokeStyle=\"rgba(0,0,0,1)\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.stroke();this.hueCircle=ctx.getImageData(0,0,w,h)}this.generated=true}},{key:\"_moveSelector\",value:function _moveSelector(event){var rect=this.colorPickerDiv.getBoundingClientRect();var left=event.center.x-rect.left;var top=event.center.y-rect.top;var centerY=.5*this.colorPickerDiv.clientHeight;var centerX=.5*this.colorPickerDiv.clientWidth;var x=left-centerX;var y=top-centerY;var angle=Math.atan2(x,y);var radius=.98*Math.min(Math.sqrt(x*x+y*y),centerX);var newTop=Math.cos(angle)*radius+centerY;var newLeft=Math.sin(angle)*radius+centerX;this.colorPickerSelector.style.top=newTop-.5*this.colorPickerSelector.clientHeight+\"px\";this.colorPickerSelector.style.left=newLeft-.5*this.colorPickerSelector.clientWidth+\"px\";var h=angle/(2*Math.PI);h=h<0?h+1:h;var s=radius/this.r;var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.h=h;hsv.s=s;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}}]);return ColorPicker}();exports[\"default\"]=ColorPicker},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var LineGraph=__webpack_require__(106);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(113).allOptions;var configureOptions=__webpack_require__(113).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Graph2d(container,items,groups,options){if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Graph2d option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body);this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body);this.components.push(this.currentTime);this.linegraph=new LineGraph(this.body);this.components.push(this.linegraph);this.itemsData=null;this.groupsData=null;this.on(\"tap\",function(event){me.emit(\"click\",me.getEventProperties(event))});this.on(\"doubletap\",function(event){me.emit(\"doubleClick\",me.getEventProperties(event))});this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Graph2d.prototype=new Core;Graph2d.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options)};Graph2d.prototype.setItems=function(items){var initialLoad=this.itemsData==null;var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.linegraph&&this.linegraph.setItems(newDataSet);if(initialLoad){if(this.options.start!=undefined||this.options.end!=undefined){var start=this.options.start!=undefined?this.options.start:null;var end=this.options.end!=undefined?this.options.end:null;this.setWindow(start,end,{animation:false})}else{this.fit({animation:false})}}};Graph2d.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else if(groups instanceof DataSet||groups instanceof DataView){newDataSet=groups}else{newDataSet=new DataSet(groups)}this.groupsData=newDataSet;this.linegraph.setGroups(newDataSet)};Graph2d.prototype.getLegend=function(groupId,width,height){if(width===undefined){width=15}if(height===undefined){height=15}if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].getLegend(width,height)}else{return\"cannot find group:'\"+groupId+\"'\"}};Graph2d.prototype.isGroupVisible=function(groupId){if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].visible&&(this.linegraph.options.groups.visibility[groupId]===undefined||this.linegraph.options.groups.visibility[groupId]==true)}else{return false}};Graph2d.prototype.getDataRange=function(){var min=null;var max=null;for(var groupId in this.linegraph.groups){if(this.linegraph.groups.hasOwnProperty(groupId)){if(this.linegraph.groups[groupId].visible==true){for(var i=0;i<this.linegraph.groups[groupId].itemsData.length;i++){var item=this.linegraph.groups[groupId].itemsData[i];var value=util.convert(item.x,\"Date\").valueOf();min=min==null?value:min>value?value:min;max=max==null?value:max<value?value:max}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Graph2d.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x=clientX-util.getAbsoluteLeft(this.dom.centerContainer);var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var time=this._toTime(x);var customTime=CustomTime.customTimeFromTarget(event);var element=util.getTarget(event);var what=null;if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.linegraph.yAxisLeft.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.yAxisRight.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.legendLeft.dom.frame)){what=\"legend\"}else if(util.hasParent(element,this.linegraph.legendRight.dom.frame)){what=\"legend\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}var value=[];var yAxisLeft=this.linegraph.yAxisLeft;var yAxisRight=this.linegraph.yAxisRight;if(!yAxisLeft.hidden&&this.itemsData.length>0){value.push(yAxisLeft.screenToValue(y))}if(!yAxisRight.hidden&&this.itemsData.length>0){value.push(yAxisRight.screenToValue(y))}return{event:event,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,value:value}};Graph2d.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};module.exports=Graph2d},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Network=__webpack_require__(182);exports.network={Images:__webpack_require__(116),dotparser:__webpack_require__(114),gephiParser:__webpack_require__(115),allOptions:__webpack_require__(122)};exports.network.convertDot=function(input){return exports.network.dotparser.DOTToGraph(input)};exports.network.convertGephi=function(input,options){return exports.network.gephiParser.parseGephi(input,options)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";__webpack_require__(183);var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var dotparser=__webpack_require__(114);var gephiParser=__webpack_require__(115);var Activator=__webpack_require__(97);var locales=__webpack_require__(184);var Images=__webpack_require__(116)[\"default\"];var Groups=__webpack_require__(186)[\"default\"];var NodesHandler=__webpack_require__(187)[\"default\"];var EdgesHandler=__webpack_require__(214)[\"default\"];var PhysicsEngine=__webpack_require__(220)[\"default\"];var ClusterEngine=__webpack_require__(227)[\"default\"];var CanvasRenderer=__webpack_require__(229)[\"default\"];var Canvas=__webpack_require__(230)[\"default\"];var View=__webpack_require__(231)[\"default\"];var InteractionHandler=__webpack_require__(232)[\"default\"];var SelectionHandler=__webpack_require__(234)[\"default\"];var LayoutEngine=__webpack_require__(235)[\"default\"];var ManipulationSystem=__webpack_require__(237)[\"default\"];var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(122),allOptions=_require2.allOptions,configureOptions=_require2.configureOptions;var KamadaKawai=__webpack_require__(238)[\"default\"];function Network(container,data,options){var _this=this;if(!(this instanceof Network)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.options={};this.defaultOptions={locale:\"en\",locales:locales,clickToUse:false};util.extend(this.options,this.defaultOptions);this.body={container:container,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function onTap(){},onTouch:function onTouch(){},onDoubleTap:function onDoubleTap(){},onHold:function onHold(){},onDragStart:function onDragStart(){},onDrag:function onDrag(){},onDragEnd:function onDragEnd(){},onMouseWheel:function onMouseWheel(){},onPinch:function onPinch(){},onMouseMove:function onMouseMove(){},onRelease:function onRelease(){},onContext:function onContext(){}},data:{nodes:null,edges:null},functions:{createNode:function createNode(){},createEdge:function createEdge(){},getPointer:function getPointer(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}};this.bindEventListeners();this.images=new Images(function(){return _this.body.emitter.emit(\"_requestRedraw\")});this.groups=new Groups;this.canvas=new Canvas(this.body);this.selectionHandler=new SelectionHandler(this.body,this.canvas);this.interactionHandler=new InteractionHandler(this.body,this.canvas,this.selectionHandler);this.view=new View(this.body,this.canvas);this.renderer=new CanvasRenderer(this.body,this.canvas);this.physics=new PhysicsEngine(this.body);this.layoutEngine=new LayoutEngine(this.body);this.clustering=new ClusterEngine(this.body);this.manipulation=new ManipulationSystem(this.body,this.canvas,this.selectionHandler);this.nodesHandler=new NodesHandler(this.body,this.images,this.groups,this.layoutEngine);this.edgesHandler=new EdgesHandler(this.body,this.images,this.groups);this.body.modules[\"kamadaKawai\"]=new KamadaKawai(this.body,150,.05);this.body.modules[\"clustering\"]=this.clustering;this.canvas._create();this.setOptions(options);this.setData(data)}Emitter(Network.prototype);Network.prototype.setOptions=function(options){var _this2=this;if(options!==undefined){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}var fields=[\"locale\",\"locales\",\"clickToUse\"];util.selectiveDeepExtend(fields,this.options,options);options=this.layoutEngine.setOptions(options.layout,options);this.canvas.setOptions(options);this.groups.setOptions(options.groups);this.nodesHandler.setOptions(options.nodes);this.edgesHandler.setOptions(options.edges);this.physics.setOptions(options.physics);this.manipulation.setOptions(options.manipulation,options,this.options);this.interactionHandler.setOptions(options.interaction);this.renderer.setOptions(options.interaction);this.selectionHandler.setOptions(options.interaction);if(options.groups!==undefined){this.body.emitter.emit(\"refreshNodes\")}if(\"configure\"in options){if(!this.configurator){this.configurator=new Configurator(this,this.body.container,configureOptions,this.canvas.pixelRatio)}this.configurator.setOptions(options.configure)}if(this.configurator&&this.configurator.options.enabled===true){var networkOptions={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};util.deepExtend(networkOptions.nodes,this.nodesHandler.options);util.deepExtend(networkOptions.edges,this.edgesHandler.options);util.deepExtend(networkOptions.layout,this.layoutEngine.options);util.deepExtend(networkOptions.interaction,this.selectionHandler.options);util.deepExtend(networkOptions.interaction,this.renderer.options);util.deepExtend(networkOptions.interaction,this.interactionHandler.options);util.deepExtend(networkOptions.manipulation,this.manipulation.options);util.deepExtend(networkOptions.physics,this.physics.options);util.deepExtend(networkOptions.global,this.canvas.options);util.deepExtend(networkOptions.global,this.options);this.configurator.setModuleOptions(networkOptions)}if(options.clickToUse!==undefined){if(options.clickToUse===true){if(this.activator===undefined){this.activator=new Activator(this.canvas.frame);this.activator.on(\"change\",function(){_this2.body.emitter.emit(\"activate\")})}}else{if(this.activator!==undefined){this.activator.destroy();delete this.activator}this.body.emitter.emit(\"activate\")}}else{this.body.emitter.emit(\"activate\")}this.canvas.setSize();this.body.emitter.emit(\"startSimulation\")}};Network.prototype._updateVisibleIndices=function(){var nodes=this.body.nodes;var edges=this.body.edges;this.body.nodeIndices=[];this.body.edgeIndices=[];for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(!this.clustering._isClusteredNode(nodeId)&&nodes[nodeId].options.hidden===false){this.body.nodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){var edge=edges[edgeId];var fromNode=nodes[edge.fromId];var toNode=nodes[edge.toId];var edgeNodesPresent=fromNode!==undefined&&toNode!==undefined;var isVisible=!this.clustering._isClusteredEdge(edgeId)&&edge.options.hidden===false&&edgeNodesPresent&&fromNode.options.hidden===false&&toNode.options.hidden===false;if(isVisible){this.body.edgeIndices.push(edge.id)}}}};Network.prototype.bindEventListeners=function(){var _this3=this;this.body.emitter.on(\"_dataChanged\",function(){_this3.edgesHandler._updateState();_this3.body.emitter.emit(\"_dataUpdated\")});this.body.emitter.on(\"_dataUpdated\",function(){_this3.clustering._updateState();_this3._updateVisibleIndices();_this3._updateValueRange(_this3.body.nodes);_this3._updateValueRange(_this3.body.edges);_this3.body.emitter.emit(\"startSimulation\");_this3.body.emitter.emit(\"_requestRedraw\")})};Network.prototype.setData=function(data){this.body.emitter.emit(\"resetPhysics\");this.body.emitter.emit(\"_resetData\");this.selectionHandler.unselectAll();if(data&&data.dot&&(data.nodes||data.edges)){throw new SyntaxError('Data must contain either parameter \"dot\" or '+' parameter pair \"nodes\" and \"edges\", but not both.')}this.setOptions(data&&data.options);if(data&&data.dot){console.log(\"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\");var dotData=dotparser.DOTToGraph(data.dot);this.setData(dotData);return}else if(data&&data.gephi){console.log(\"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\");var gephiData=gephiParser.parseGephi(data.gephi);this.setData(gephiData);return}else{this.nodesHandler.setData(data&&data.nodes,true);this.edgesHandler.setData(data&&data.edges,true)}this.body.emitter.emit(\"_dataChanged\");this.body.emitter.emit(\"_dataLoaded\");this.body.emitter.emit(\"initPhysics\")};Network.prototype.destroy=function(){this.body.emitter.emit(\"destroy\");this.body.emitter.off();this.off();delete this.groups;delete this.canvas;delete this.selectionHandler;delete this.interactionHandler;delete this.view;delete this.renderer;delete this.physics;delete this.layoutEngine;delete this.clustering;delete this.manipulation;delete this.nodesHandler;delete this.edgesHandler;delete this.configurator;delete this.images;for(var nodeId in this.body.nodes){if(!this.body.nodes.hasOwnProperty(nodeId))continue;delete this.body.nodes[nodeId]}for(var edgeId in this.body.edges){if(!this.body.edges.hasOwnProperty(edgeId))continue;delete this.body.edges[edgeId]}util.recursiveDOMDelete(this.body.container)};Network.prototype._updateValueRange=function(obj){var id;var valueMin=undefined;var valueMax=undefined;var valueTotal=0;for(id in obj){if(obj.hasOwnProperty(id)){var value=obj[id].getValue();if(value!==undefined){valueMin=valueMin===undefined?value:Math.min(value,valueMin);valueMax=valueMax===undefined?value:Math.max(value,valueMax);valueTotal+=value}}}if(valueMin!==undefined&&valueMax!==undefined){for(id in obj){if(obj.hasOwnProperty(id)){obj[id].setValueRange(valueMin,valueMax,valueTotal)}}}};Network.prototype.isActive=function(){return!this.activator||this.activator.active};Network.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};Network.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};Network.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};Network.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};Network.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};Network.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};Network.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};Network.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};Network.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};Network.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};Network.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};Network.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};Network.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};Network.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};Network.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};Network.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.editNodeMode=function(){console.log(\"Deprecated: Please use editNode instead of editNodeMode.\");return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};Network.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};Network.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};Network.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};Network.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};Network.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};Network.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};Network.prototype.getConnectedNodes=function(objectId){if(this.body.nodes[objectId]!==undefined){return this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments)}else{return this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)}};Network.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};Network.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};Network.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};Network.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};Network.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};Network.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)};Network.prototype.getNodeAt=function(){var node=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);if(node!==undefined&&node.id!==undefined){return node.id}return node};Network.prototype.getEdgeAt=function(){var edge=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);if(edge!==undefined&&edge.id!==undefined){return edge.id}return edge};Network.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};Network.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};Network.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments);this.redraw()};Network.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};Network.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};Network.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};Network.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};Network.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};Network.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};Network.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};Network.prototype.getOptionsFromConfigurator=function(){var options={};if(this.configurator){options=this.configurator.getOptions.apply(this.configurator)}return options};module.exports=Network},function(module,exports,__webpack_require__){\"use strict\";if(typeof CanvasRenderingContext2D!==\"undefined\"){CanvasRenderingContext2D.prototype.circle=function(x,y,r){this.beginPath();this.arc(x,y,r,0,2*Math.PI,false);this.closePath()};CanvasRenderingContext2D.prototype.square=function(x,y,r){this.beginPath();this.rect(x-r,y-r,r*2,r*2);this.closePath()};CanvasRenderingContext2D.prototype.triangle=function(x,y,r){this.beginPath();r*=1.15;y+=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y-(h-ir));this.lineTo(x+s2,y+ir);this.lineTo(x-s2,y+ir);this.lineTo(x,y-(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.triangleDown=function(x,y,r){this.beginPath();r*=1.15;y-=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y+(h-ir));this.lineTo(x+s2,y-ir);this.lineTo(x-s2,y-ir);this.lineTo(x,y+(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.star=function(x,y,r){this.beginPath();r*=.82;y+=.1*r;for(var n=0;n<10;n++){var radius=n%2===0?r*1.3:r*.5;this.lineTo(x+radius*Math.sin(n*2*Math.PI/10),y-radius*Math.cos(n*2*Math.PI/10))}this.closePath()};CanvasRenderingContext2D.prototype.diamond=function(x,y,r){this.beginPath();this.lineTo(x,y+r);this.lineTo(x+r,y);this.lineTo(x,y-r);this.lineTo(x-r,y);this.closePath()};CanvasRenderingContext2D.prototype.roundRect=function(x,y,w,h,r){var r2d=Math.PI/180;if(w-2*r<0){r=w/2}if(h-2*r<0){r=h/2}this.beginPath();this.moveTo(x+r,y);this.lineTo(x+w-r,y);this.arc(x+w-r,y+r,r,r2d*270,r2d*360,false);this.lineTo(x+w,y+h-r);this.arc(x+w-r,y+h-r,r,0,r2d*90,false);this.lineTo(x+r,y+h);this.arc(x+r,y+h-r,r,r2d*90,r2d*180,false);this.lineTo(x,y+r);this.arc(x+r,y+r,r,r2d*180,r2d*270,false);this.closePath()};CanvasRenderingContext2D.prototype.ellipse_vis=function(x,y,w,h){var kappa=.5522848,ox=w/2*kappa,oy=h/2*kappa,xe=x+w,ye=y+h,xm=x+w/2,ym=y+h/2;this.beginPath();this.moveTo(x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.closePath()};CanvasRenderingContext2D.prototype.database=function(x,y,w,h){var f=1/3;var wEllipse=w;var hEllipse=h*f;var kappa=.5522848,ox=wEllipse/2*kappa,oy=hEllipse/2*kappa,xe=x+wEllipse,ye=y+hEllipse,xm=x+wEllipse/2,ym=y+hEllipse/2,ymb=y+(h-hEllipse/2),yeb=y+h;this.beginPath();this.moveTo(xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.lineTo(xe,ymb);this.bezierCurveTo(xe,ymb+oy,xm+ox,yeb,xm,yeb);this.bezierCurveTo(xm-ox,yeb,x,ymb+oy,x,ymb);this.lineTo(x,ym)};CanvasRenderingContext2D.prototype.dashedLine=function(x,y,x2,y2,pattern){this.beginPath();this.moveTo(x,y);var patternLength=pattern.length;var dx=x2-x;var dy=y2-y;var slope=dy/dx;var distRemaining=Math.sqrt(dx*dx+dy*dy);var patternIndex=0;var draw=true;var xStep=0;var dashLength=pattern[0];while(distRemaining>=.1){dashLength=pattern[patternIndex++%patternLength];if(dashLength>distRemaining){dashLength=distRemaining}xStep=Math.sqrt(dashLength*dashLength/(1+slope*slope));xStep=dx<0?-xStep:xStep;x+=xStep;y+=slope*xStep;if(draw===true){this.lineTo(x,y)}else{this.moveTo(x,y)}distRemaining-=dashLength;draw=!draw}};CanvasRenderingContext2D.prototype.hexagon=function(x,y,r){this.beginPath();var sides=6;var a=Math.PI*2/sides;this.moveTo(x+r,y);for(var i=1;i<sides;i++){this.lineTo(x+r*Math.cos(a*i),y+r*Math.sin(a*i))}this.closePath()}}},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={edit:\"Edit\",del:\"Delete selected\",back:\"Back\",addNode:\"Add Node\",addEdge:\"Add Edge\",editNode:\"Edit Node\",editEdge:\"Edit Edge\",addDescription:\"Click in an empty space to place a new node.\",edgeDescription:\"Click on a node and drag the edge to another node to connect them.\",editEdgeDescription:\"Click on the control points and drag them to a node to connect to it.\",createEdgeError:\"Cannot link edges to a cluster.\",deleteClusterError:\"Clusters cannot be deleted.\",editClusterError:\"Clusters cannot be edited.\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"de\"]={edit:\"Editieren\",del:\"Lösche Auswahl\",back:\"Zurück\",addNode:\"Knoten hinzufügen\",addEdge:\"Kante hinzufügen\",editNode:\"Knoten editieren\",editEdge:\"Kante editieren\",addDescription:\"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",edgeDescription:\"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",editEdgeDescription:\"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",createEdgeError:\"Es ist nicht möglich, Kanten mit Clustern zu verbinden.\",deleteClusterError:\"Cluster können nicht gelöscht werden.\",editClusterError:\"Cluster können nicht editiert werden.\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"es\"]={edit:\"Editar\",del:\"Eliminar selección\",back:\"Átras\",addNode:\"Añadir nodo\",addEdge:\"Añadir arista\",editNode:\"Editar nodo\",editEdge:\"Editar arista\",addDescription:\"Haga clic en un lugar vacío para colocar un nuevo nodo.\",edgeDescription:\"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",editEdgeDescription:\"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",createEdgeError:\"No se puede conectar una arista a un grupo.\",deleteClusterError:\"No es posible eliminar grupos.\",editClusterError:\"No es posible editar grupos.\"};exports[\"es_ES\"]=exports[\"es\"];exports[\"it\"]={edit:\"Modifica\",del:\"Cancella la selezione\",back:\"Indietro\",addNode:\"Aggiungi un nodo\",addEdge:\"Aggiungi un vertice\",editNode:\"Modifica il nodo\",editEdge:\"Modifica il vertice\",addDescription:\"Clicca per aggiungere un nuovo nodo\",edgeDescription:\"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",editEdgeDescription:\"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",createEdgeError:\"Non si possono collegare vertici ad un cluster\",deleteClusterError:\"I cluster non possono essere cancellati\",editClusterError:\"I clusters non possono essere modificati.\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"nl\"]={edit:\"Wijzigen\",del:\"Selectie verwijderen\",\nback:\"Terug\",addNode:\"Node toevoegen\",addEdge:\"Link toevoegen\",editNode:\"Node wijzigen\",editEdge:\"Link wijzigen\",addDescription:\"Klik op een leeg gebied om een nieuwe node te maken.\",edgeDescription:\"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",editEdgeDescription:\"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",createEdgeError:\"Kan geen link maken naar een cluster.\",deleteClusterError:\"Clusters kunnen niet worden verwijderd.\",editClusterError:\"Clusters kunnen niet worden aangepast.\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"pt-br\"]={edit:\"Editar\",del:\"Remover selecionado\",back:\"Voltar\",addNode:\"Adicionar nó\",addEdge:\"Adicionar aresta\",editNode:\"Editar nó\",editEdge:\"Editar aresta\",addDescription:\"Clique em um espaço em branco para adicionar um novo nó\",edgeDescription:\"Clique em um nó e arraste a aresta até outro nó para conectá-los\",editEdgeDescription:\"Clique nos pontos de controle e os arraste para um nó para conectá-los\",createEdgeError:\"Não foi possível linkar arestas a um cluster.\",deleteClusterError:\"Clusters não puderam ser removidos.\",editClusterError:\"Clusters não puderam ser editados.\"};exports[\"pt-BR\"]=exports[\"pt-br\"];exports[\"pt_BR\"]=exports[\"pt-br\"];exports[\"pt_br\"]=exports[\"pt-br\"];exports[\"ru\"]={edit:\"Редактировать\",del:\"Удалить выбранное\",back:\"Назад\",addNode:\"Добавить узел\",addEdge:\"Добавить ребро\",editNode:\"Редактировать узел\",editEdge:\"Редактировать ребро\",addDescription:\"Кликните в свободное место, чтобы добавить новый узел.\",edgeDescription:\"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.\",editEdgeDescription:\"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.\",createEdgeError:\"Невозможно соединить ребра в кластер.\",deleteClusterError:\"Кластеры не могут быть удалены\",editClusterError:\"Кластеры недоступны для редактирования.\"};exports[\"ru_RU\"]=exports[\"ru\"];exports[\"cn\"]={edit:\"编辑\",del:\"删除选定\",back:\"返回\",addNode:\"添加节点\",addEdge:\"添加连接线\",editNode:\"编辑节点\",editEdge:\"编辑连接线\",addDescription:\"单击空白处放置新节点。\",edgeDescription:\"单击某个节点并将该连接线拖动到另一个节点以连接它们。\",editEdgeDescription:\"单击控制节点并将它们拖到节点上连接。\",createEdgeError:\"无法将连接线连接到群集。\",deleteClusterError:\"无法删除群集。\",editClusterError:\"无法编辑群集。\"};exports[\"zh_CN\"]=exports[\"cn\"]},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CachedImage=function(){function CachedImage(){(0,_classCallCheck3[\"default\"])(this,CachedImage);this.NUM_ITERATIONS=4;this.image=new Image;this.canvas=document.createElement(\"canvas\")}(0,_createClass3[\"default\"])(CachedImage,[{key:\"init\",value:function init(){if(this.initialized())return;this.src=this.image.src;var w=this.image.width;var h=this.image.height;this.width=w;this.height=h;var h2=Math.floor(h/2);var h4=Math.floor(h/4);var h8=Math.floor(h/8);var h16=Math.floor(h/16);var w2=Math.floor(w/2);var w4=Math.floor(w/4);var w8=Math.floor(w/8);var w16=Math.floor(w/16);this.canvas.width=3*w4;this.canvas.height=h2;this.coordinates=[[0,0,w2,h2],[w2,0,w4,h4],[w2,h4,w8,h8],[5*w8,h4,w16,h16]];this._fillMipMap()}},{key:\"initialized\",value:function initialized(){return this.coordinates!==undefined}},{key:\"_fillMipMap\",value:function _fillMipMap(){var ctx=this.canvas.getContext(\"2d\");var to=this.coordinates[0];ctx.drawImage(this.image,to[0],to[1],to[2],to[3]);for(var iterations=1;iterations<this.NUM_ITERATIONS;iterations++){var from=this.coordinates[iterations-1];var _to=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],_to[0],_to[1],_to[2],_to[3])}}},{key:\"drawImageAtPosition\",value:function drawImageAtPosition(ctx,factor,left,top,width,height){if(!this.initialized())return;if(factor>2){factor*=.5;var iterations=0;while(factor>2&&iterations<this.NUM_ITERATIONS){factor*=.5;iterations+=1}if(iterations>=this.NUM_ITERATIONS){iterations=this.NUM_ITERATIONS-1}var from=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],left,top,width,height)}else{ctx.drawImage(this.image,left,top,width,height)}}}]);return CachedImage}();exports[\"default\"]=CachedImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Groups=function(){function Groups(){(0,_classCallCheck3[\"default\"])(this,Groups);this.clear();this.defaultIndex=0;this.groupsArray=[];this.groupIndex=0;this.defaultGroups=[{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},{border:\"#FFA500\",background:\"#FFFF00\",highlight:{border:\"#FFA500\",background:\"#FFFFA3\"},hover:{border:\"#FFA500\",background:\"#FFFFA3\"}},{border:\"#FA0A10\",background:\"#FB7E81\",highlight:{border:\"#FA0A10\",background:\"#FFAFB1\"},hover:{border:\"#FA0A10\",background:\"#FFAFB1\"}},{border:\"#41A906\",background:\"#7BE141\",highlight:{border:\"#41A906\",background:\"#A1EC76\"},hover:{border:\"#41A906\",background:\"#A1EC76\"}},{border:\"#E129F0\",background:\"#EB7DF4\",highlight:{border:\"#E129F0\",background:\"#F0B3F5\"},hover:{border:\"#E129F0\",background:\"#F0B3F5\"}},{border:\"#7C29F0\",background:\"#AD85E4\",highlight:{border:\"#7C29F0\",background:\"#D3BDF0\"},hover:{border:\"#7C29F0\",background:\"#D3BDF0\"}},{border:\"#C37F00\",background:\"#FFA807\",highlight:{border:\"#C37F00\",background:\"#FFCA66\"},hover:{border:\"#C37F00\",background:\"#FFCA66\"}},{border:\"#4220FB\",background:\"#6E6EFD\",highlight:{border:\"#4220FB\",background:\"#9B9BFD\"},hover:{border:\"#4220FB\",background:\"#9B9BFD\"}},{border:\"#FD5A77\",background:\"#FFC0CB\",highlight:{border:\"#FD5A77\",background:\"#FFD1D9\"},hover:{border:\"#FD5A77\",background:\"#FFD1D9\"}},{border:\"#4AD63A\",background:\"#C2FABC\",highlight:{border:\"#4AD63A\",background:\"#E6FFE3\"},hover:{border:\"#4AD63A\",background:\"#E6FFE3\"}},{border:\"#990000\",background:\"#EE0000\",highlight:{border:\"#BB0000\",background:\"#FF3333\"},hover:{border:\"#BB0000\",background:\"#FF3333\"}},{border:\"#FF6000\",background:\"#FF6000\",highlight:{border:\"#FF6000\",background:\"#FF6000\"},hover:{border:\"#FF6000\",background:\"#FF6000\"}},{border:\"#97C2FC\",background:\"#2B7CE9\",highlight:{border:\"#D2E5FF\",background:\"#2B7CE9\"},hover:{border:\"#D2E5FF\",background:\"#2B7CE9\"}},{border:\"#399605\",background:\"#255C03\",highlight:{border:\"#399605\",background:\"#255C03\"},hover:{border:\"#399605\",background:\"#255C03\"}},{border:\"#B70054\",background:\"#FF007E\",highlight:{border:\"#B70054\",background:\"#FF007E\"},hover:{border:\"#B70054\",background:\"#FF007E\"}},{border:\"#AD85E4\",background:\"#7C29F0\",highlight:{border:\"#D3BDF0\",background:\"#7C29F0\"},hover:{border:\"#D3BDF0\",background:\"#7C29F0\"}},{border:\"#4557FA\",background:\"#000EA1\",highlight:{border:\"#6E6EFD\",background:\"#000EA1\"},hover:{border:\"#6E6EFD\",background:\"#000EA1\"}},{border:\"#FFC0CB\",background:\"#FD5A77\",highlight:{border:\"#FFD1D9\",background:\"#FD5A77\"},hover:{border:\"#FFD1D9\",background:\"#FD5A77\"}},{border:\"#C2FABC\",background:\"#74D66A\",highlight:{border:\"#E6FFE3\",background:\"#74D66A\"},hover:{border:\"#E6FFE3\",background:\"#74D66A\"}},{border:\"#EE0000\",background:\"#990000\",highlight:{border:\"#FF3333\",background:\"#BB0000\"},hover:{border:\"#FF3333\",background:\"#BB0000\"}}];this.options={};this.defaultOptions={useDefaultGroups:true};util.extend(this.options,this.defaultOptions)}(0,_createClass3[\"default\"])(Groups,[{key:\"setOptions\",value:function setOptions(options){var optionFields=[\"useDefaultGroups\"];if(options!==undefined){for(var groupName in options){if(options.hasOwnProperty(groupName)){if(optionFields.indexOf(groupName)===-1){var group=options[groupName];this.add(groupName,group)}}}}}},{key:\"clear\",value:function clear(){this.groups={};this.groupsArray=[]}},{key:\"get\",value:function get(groupname){var shouldCreate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var group=this.groups[groupname];if(group===undefined&&shouldCreate){if(this.options.useDefaultGroups===false&&this.groupsArray.length>0){var index=this.groupIndex%this.groupsArray.length;this.groupIndex++;group={};group.color=this.groups[this.groupsArray[index]];this.groups[groupname]=group}else{var _index=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++;group={};group.color=this.defaultGroups[_index];this.groups[groupname]=group}}return group}},{key:\"add\",value:function add(groupName,style){this.groups[groupName]=style;this.groupsArray.push(groupName);return style}}]);return Groups}();exports[\"default\"]=Groups},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Node=__webpack_require__(47)[\"default\"];var NodesHandler=function(){function NodesHandler(body,images,groups,layoutEngine){var _this=this;(0,_classCallCheck3[\"default\"])(this,NodesHandler);this.body=body;this.images=images;this.groups=groups;this.layoutEngine=layoutEngine;this.body.functions.createNode=this.create.bind(this);this.nodesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items,params.data,params.oldData)},remove:function remove(event,params){_this.remove(params.items)}};this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:undefined,color:{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},fixed:{x:false,y:false},font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:0,strokeColor:\"#ffffff\",align:\"center\",vadjust:0,multi:false,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"monospace\",vadjust:2}},group:undefined,hidden:false,icon:{face:\"FontAwesome\",code:undefined,size:50,color:\"#2B7CE9\"},image:undefined,label:undefined,labelHighlightBold:true,level:undefined,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:true,scaling:{min:10,max:30,label:{enabled:false,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},shape:\"ellipse\",shapeProperties:{borderDashes:false,borderRadius:6,interpolation:true,useImageSize:false,useBorderWithImage:false},size:25,title:undefined,value:undefined,x:undefined,y:undefined};if(this.defaultOptions.mass<=0){throw\"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\"}this.options=util.bridgeObject(this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(NodesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"refreshNodes\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.nodesListeners,function(callback,event){if(_this2.body.data.nodes)_this2.body.data.nodes.off(event,callback)});delete _this2.body.functions.createNode;delete _this2.nodesListeners.add;delete _this2.nodesListeners.update;delete _this2.nodesListeners.remove;delete _this2.nodesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Node.parseOptions(this.options,options);if(options.shape!==undefined){for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){this.body.nodes[nodeId].updateShape()}}}if(options.font!==undefined){for(var _nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId)){this.body.nodes[_nodeId].updateLabelModule();this.body.nodes[_nodeId].needsRefresh()}}}if(options.size!==undefined){for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.body.nodes[_nodeId2].needsRefresh()}}}if(options.hidden!==undefined||options.physics!==undefined){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(nodes){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldNodesData=this.body.data.nodes;if(nodes instanceof DataSet||nodes instanceof DataView){this.body.data.nodes=nodes}else if(Array.isArray(nodes)){this.body.data.nodes=new DataSet;this.body.data.nodes.add(nodes)}else if(!nodes){this.body.data.nodes=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldNodesData){util.forEach(this.nodesListeners,function(callback,event){oldNodesData.off(event,callback)})}this.body.nodes={};if(this.body.data.nodes){var me=this;util.forEach(this.nodesListeners,function(callback,event){me.body.data.nodes.on(event,callback)});var ids=this.body.data.nodes.getIds();this.add(ids,true)}if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var id=void 0;var newNodes=[];for(var i=0;i<ids.length;i++){id=ids[i];var properties=this.body.data.nodes.get(id);var node=this.create(properties);newNodes.push(node);this.body.nodes[id]=node}this.layoutEngine.positionInitially(newNodes);if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids,changedData,oldData){var nodes=this.body.nodes;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var node=nodes[id];var data=changedData[i];if(node!==undefined){if(node.setOptions(data)){dataChanged=true}}else{dataChanged=true;node=this.create(data);nodes[id]=node}}if(!dataChanged&&oldData!==undefined){dataChanged=changedData.some(function(newValue,index){var oldValue=oldData[index];return oldValue&&oldValue.level!==newValue.level})}if(dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var nodes=this.body.nodes;for(var i=0;i<ids.length;i++){var id=ids[i];delete nodes[id]}this.body.emitter.emit(\"_dataChanged\")}},{key:\"create\",value:function create(properties){var constructorClass=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Node;return new constructorClass(properties,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:\"refresh\",value:function refresh(){var _this3=this;var clearPositions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;util.forEach(this.body.nodes,function(node,nodeId){var data=_this3.body.data.nodes.get(nodeId);if(data!==undefined){if(clearPositions===true){node.setOptions({x:null,y:null})}node.setOptions({fixed:false});node.setOptions(data)}})}},{key:\"getPositions\",value:function getPositions(ids){var dataArray={};if(ids!==undefined){if(Array.isArray(ids)===true){for(var i=0;i<ids.length;i++){if(this.body.nodes[ids[i]]!==undefined){var node=this.body.nodes[ids[i]];dataArray[ids[i]]={x:Math.round(node.x),y:Math.round(node.y)}}}}else{if(this.body.nodes[ids]!==undefined){var _node=this.body.nodes[ids];dataArray[ids]={x:Math.round(_node.x),y:Math.round(_node.y)}}}}else{for(var _i=0;_i<this.body.nodeIndices.length;_i++){var _node2=this.body.nodes[this.body.nodeIndices[_i]];dataArray[this.body.nodeIndices[_i]]={x:Math.round(_node2.x),y:Math.round(_node2.y)}}}return dataArray}},{key:\"storePositions\",value:function storePositions(){var dataArray=[];var dataset=this.body.data.nodes.getDataSet();for(var nodeId in dataset._data){if(dataset._data.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(dataset._data[nodeId].x!=Math.round(node.x)||dataset._data[nodeId].y!=Math.round(node.y)){dataArray.push({id:node.id,x:Math.round(node.x),y:Math.round(node.y)})}}}dataset.update(dataArray)}},{key:\"getBoundingBox\",value:function getBoundingBox(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].shape.boundingBox}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(nodeId,direction){var nodeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];var nodeObj={};for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(direction!==\"to\"&&edge.toId==node.id){if(nodeObj[edge.fromId]===undefined){nodeList.push(edge.fromId);nodeObj[edge.fromId]=true}}else if(direction!==\"from\"&&edge.fromId==node.id){if(nodeObj[edge.toId]===undefined){nodeList.push(edge.toId);nodeObj[edge.toId]=true}}}}return nodeList}},{key:\"getConnectedEdges\",value:function getConnectedEdges(nodeId){var edgeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];for(var i=0;i<node.edges.length;i++){edgeList.push(node.edges[i].id)}}else{console.log(\"NodeId provided for getConnectedEdges does not exist. Provided: \",nodeId)}return edgeList}},{key:\"moveNode\",value:function moveNode(nodeId,x,y){var _this4=this;if(this.body.nodes[nodeId]!==undefined){this.body.nodes[nodeId].x=Number(x);this.body.nodes[nodeId].y=Number(y);setTimeout(function(){_this4.body.emitter.emit(\"startSimulation\")},0)}else{console.log(\"Node id supplied to moveNode does not exist. Provided: \",nodeId)}}}]);return NodesHandler}();exports[\"default\"]=NodesHandler},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(189),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(190)},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).isIterable=function(it){var O=Object(it);return O[ITERATOR]!==undefined||\"@@iterator\"in O||Iterators.hasOwnProperty(classof(O))}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=__webpack_require__(192)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=function(){function LabelSplitter(ctx,parent,selected,hover){var _this=this;(0,_classCallCheck3[\"default\"])(this,LabelSplitter);this.ctx=ctx;this.parent=parent;var textWidth=function textWidth(text,mod){if(text===undefined)return 0;var values=_this.parent.getFormattingValues(ctx,selected,hover,mod);var width=0;if(text!==\"\"){var measure=_this.ctx.measureText(text);width=measure.width}return{width:width,values:values}};this.lines=new LabelAccumulator(textWidth)}(0,_createClass3[\"default\"])(LabelSplitter,[{key:\"process\",value:function process(text){if(!ComponentUtil.isValidLabel(text)){return this.lines.finalize()}var font=this.parent.fontOptions;text=text.replace(/\\r\\n/g,\"\\n\");text=text.replace(/\\r/g,\"\\n\");var nlLines=String(text).split(\"\\n\");var lineCount=nlLines.length;if(font.multi){for(var i=0;i<lineCount;i++){var blocks=this.splitBlocks(nlLines[i],font.multi);if(blocks===undefined)continue;if(blocks.length===0){this.lines.newLine(\"\");continue}if(font.maxWdt>0){for(var j=0;j<blocks.length;j++){var mod=blocks[j].mod;var _text=blocks[j].text;this.splitStringIntoLines(_text,mod,true)}}else{for(var _j=0;_j<blocks.length;_j++){var _mod=blocks[_j].mod;var _text2=blocks[_j].text;this.lines.append(_text2,_mod)}}this.lines.newLine()}}else{if(font.maxWdt>0){for(var _i=0;_i<lineCount;_i++){this.splitStringIntoLines(nlLines[_i])}}else{for(var _i2=0;_i2<lineCount;_i2++){this.lines.newLine(nlLines[_i2])}}}return this.lines.finalize()}},{key:\"decodeMarkupSystem\",value:function decodeMarkupSystem(markupSystem){var system=\"none\";if(markupSystem===\"markdown\"||markupSystem===\"md\"){system=\"markdown\"}else if(markupSystem===true||markupSystem===\"html\"){system=\"html\"}return system}},{key:\"splitHtmlBlocks\",value:function splitHtmlBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}}else if(/</.test(ch)){if(!s.mono&&!s.bold&&/<b>/.test(text.substr(s.position,3))){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\");s.position+=2}else if(!s.mono&&!s.ital&&/<i>/.test(text.substr(s.position,3))){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\");s.position+=2}else if(!s.mono&&/<code>/.test(text.substr(s.position,6))){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\");s.position+=5}else if(!s.mono&&s.mod()===\"bold\"&&/<\\/b>/.test(text.substr(s.position,4))){s.emitBlock();s.bold=false;s.modStack.shift();s.position+=3}else if(!s.mono&&s.mod()===\"ital\"&&/<\\/i>/.test(text.substr(s.position,4))){s.emitBlock();s.ital=false;s.modStack.shift();s.position+=3}else if(s.mod()===\"mono\"&&/<\\/code>/.test(text.substr(s.position,7))){s.emitBlock();s.mono=false;s.modStack.shift();s.position+=6}else{s.add(ch)}}else if(/&/.test(ch)){if(/</.test(text.substr(s.position,4))){s.add(\"<\");s.position+=3}else if(/&/.test(text.substr(s.position,5))){s.add(\"&\");s.position+=4}else{s.add(\"&\")}}else{s.add(ch)}s.position++}s.emitBlock();return blocks}},{key:\"splitMarkdownBlocks\",value:function splitMarkdownBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,beginable:true,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}s.beginable=true}else if(/\\\\/.test(ch)){if(s.position<text.length+1){s.position++;ch=text.charAt(s.position);if(/ \\t/.test(ch)){s.spacing=true}else{s.add(ch);s.beginable=false}}}else if(!s.mono&&!s.bold&&(s.beginable||s.spacing)&&/\\*/.test(ch)){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\")}else if(!s.mono&&!s.ital&&(s.beginable||s.spacing)&&/\\_/.test(ch)){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\")}else if(!s.mono&&(s.beginable||s.spacing)&&/`/.test(ch)){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\")}else if(!s.mono&&s.mod()===\"bold\"&&/\\*/.test(ch)){if(s.position===text.length-1||/[.,_` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.bold=false;s.modStack.shift()}else{s.add(ch)}}else if(!s.mono&&s.mod()===\"ital\"&&/\\_/.test(ch)){if(s.position===text.length-1||/[.,*` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.ital=false;s.modStack.shift()}else{s.add(ch)}}else if(s.mono&&s.mod()===\"mono\"&&/`/.test(ch)){if(s.position===text.length-1||/[.,*_ \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.mono=false;s.modStack.shift()}else{s.add(ch)}}else{s.add(ch);s.beginable=false}s.position++}s.emitBlock();return blocks}},{key:\"splitBlocks\",value:function splitBlocks(text,markupSystem){var system=this.decodeMarkupSystem(markupSystem);if(system===\"none\"){return[{text:text,mod:\"normal\"}]}else if(system===\"markdown\"){return this.splitMarkdownBlocks(text)}else if(system===\"html\"){return this.splitHtmlBlocks(text)}}},{key:\"overMaxWidth\",value:function overMaxWidth(text){var width=this.ctx.measureText(text).width;return this.lines.curWidth()+width>this.parent.fontOptions.maxWdt}},{key:\"getLongestFit\",value:function getLongestFit(words){var text=\"\";var w=0;while(w<words.length){var pre=text===\"\"?\"\":\" \";var newText=text+pre+words[w];if(this.overMaxWidth(newText))break;text=newText;w++}return w}},{key:\"getLongestFitWord\",value:function getLongestFitWord(words){var w=0;while(w<words.length){if(this.overMaxWidth(words.slice(0,w)))break;w++}return w}},{key:\"splitStringIntoLines\",value:function splitStringIntoLines(str){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";var appendLast=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;str=str.replace(/^( +)/g,\"$1\\r\");str=str.replace(/([^\\r][^ ]*)( +)/g,\"$1\\r$2\\r\");var words=str.split(\"\\r\");while(words.length>0){var w=this.getLongestFit(words);if(w===0){var word=words[0];var x=this.getLongestFitWord(word);this.lines.newLine(word.slice(0,x),mod);words[0]=word.slice(x)}else{var newW=w;if(words[w-1]===\" \"){w--}else if(words[newW]===\" \"){newW++}var text=words.slice(0,w).join(\"\");if(w==words.length&&appendLast){this.lines.append(text,mod)}else{this.lines.newLine(text,mod)}words=words.slice(newW)}}}}]);return LabelSplitter}();exports[\"default\"]=LabelSplitter},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=function(){function LabelAccumulator(measureText){(0,_classCallCheck3[\"default\"])(this,LabelAccumulator);this.measureText=measureText;this.current=0;this.width=0;this.height=0;this.lines=[]}(0,_createClass3[\"default\"])(LabelAccumulator,[{key:\"_add\",value:function _add(l,text){var mod=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"normal\";if(this.lines[l]===undefined){this.lines[l]={width:0,height:0,blocks:[]}}var tmpText=text;if(text===undefined||text===\"\")tmpText=\" \";var result=this.measureText(tmpText,mod);var block=(0,_assign2[\"default\"])({},result.values);block.text=text;block.width=result.width;block.mod=mod;if(text===undefined||text===\"\"){block.width=0}this.lines[l].blocks.push(block);this.lines[l].width+=block.width}},{key:\"curWidth\",value:function curWidth(){var line=this.lines[this.current];if(line===undefined)return 0;return line.width}},{key:\"append\",value:function append(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod)}},{key:\"newLine\",value:function newLine(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod);this.current++}},{key:\"determineLineHeights\",value:function determineLineHeights(){for(var k=0;k<this.lines.length;k++){var line=this.lines[k];var height=0;if(line.blocks!==undefined){for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(height<block.height){height=block.height}}}line.height=height}}},{key:\"determineLabelSize\",value:function determineLabelSize(){var width=0;var height=0;for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.width>width){width=line.width}height+=line.height}this.width=width;this.height=height}},{key:\"removeEmptyBlocks\",value:function removeEmptyBlocks(){var tmpLines=[];for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.blocks.length===0)continue;if(k===this.lines.length-1){if(line.width===0)continue}var tmpLine={};(0,_assign2[\"default\"])(tmpLine,line);tmpLine.blocks=[];var firstEmptyBlock=void 0;var tmpBlocks=[];for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(block.width!==0){tmpBlocks.push(block)}else{if(firstEmptyBlock===undefined){firstEmptyBlock=block}}}if(tmpBlocks.length===0&&firstEmptyBlock!==undefined){tmpBlocks.push(firstEmptyBlock)}tmpLine.blocks=tmpBlocks;tmpLines.push(tmpLine)}return tmpLines}},{key:\"finalize\",value:function finalize(){this.determineLineHeights();this.determineLabelSize();var tmpLines=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:tmpLines}}}]);return LabelAccumulator}();exports[\"default\"]=LabelAccumulator},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Box=function(_NodeBase){(0,_inherits3[\"default\"])(Box,_NodeBase);function Box(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Box);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Box.__proto__||(0,_getPrototypeOf2[\"default\"])(Box)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Box,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.width=dimensions.width+this.margin.right+this.margin.left;this.height=dimensions.height+this.margin.top+this.margin.bottom;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.roundRect(this.left,this.top,this.width,this.height,values.borderRadius);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)\n;var borderRadius=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(borderRadius)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var borderWidth=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}}]);return Box}(_NodeBase3[\"default\"]);exports[\"default\"]=Box},function(module,exports,__webpack_require__){__webpack_require__(195);module.exports=__webpack_require__(7).Object.getPrototypeOf},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $getPrototypeOf=__webpack_require__(85);__webpack_require__(87)(\"getPrototypeOf\",function(){return function getPrototypeOf(it){return $getPrototypeOf(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(197),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(198);module.exports=__webpack_require__(7).Object.setPrototypeOf},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{setPrototypeOf:__webpack_require__(199).set})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var anObject=__webpack_require__(27);var check=function(O,proto){anObject(O);if(!isObject(proto)&&proto!==null)throw TypeError(proto+\": can't set as prototype!\")};module.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(test,buggy,set){try{set=__webpack_require__(80)(Function.call,__webpack_require__(89).f(Object.prototype,\"__proto__\").set,2);set(test,[]);buggy=!(test instanceof Array)}catch(e){buggy=true}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O}}({},false):undefined),check:check}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Circle=function(_CircleImageBase){(0,_inherits3[\"default\"])(Circle,_CircleImageBase);function Circle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Circle);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Circle.__proto__||(0,_getPrototypeOf2[\"default\"])(Circle)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Circle,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var diameter=Math.max(dimensions.width+this.margin.right+this.margin.left,dimensions.height+this.margin.top+this.margin.bottom);this.options.size=diameter/2;this.width=diameter;this.height=diameter;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);this.updateBoundingBox(x,y);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,y,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return Circle}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Circle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircularImage=function(_CircleImageBase){(0,_inherits3[\"default\"])(CircularImage,_CircleImageBase);function CircularImage(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,CircularImage);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircularImage.__proto__||(0,_getPrototypeOf2[\"default\"])(CircularImage)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(CircularImage,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var diameter=this.options.size*2;this.width=diameter;this.height=diameter;this.radius=.5*this.width;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);ctx.save();ctx.clip();this._drawImageAtPosition(ctx,values);ctx.restore();this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return CircularImage}(_CircleImageBase3[\"default\"]);exports[\"default\"]=CircularImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Database=function(_NodeBase){(0,_inherits3[\"default\"])(Database,_NodeBase);function Database(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Database);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Database.__proto__||(0,_getPrototypeOf2[\"default\"])(Database)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Database,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var size=dimensions.width+this.margin.right+this.margin.left;this.width=size;this.height=size;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.database(x-this.width/2,y-this.height/2,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Database}(_NodeBase3[\"default\"]);exports[\"default\"]=Database},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Diamond=function(_ShapeBase){(0,_inherits3[\"default\"])(Diamond,_ShapeBase);function Diamond(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Diamond);return(0,_possibleConstructorReturn3[\"default\"])(this,(Diamond.__proto__||(0,_getPrototypeOf2[\"default\"])(Diamond)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Diamond,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"diamond\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Diamond}(_ShapeBase3[\"default\"]);exports[\"default\"]=Diamond},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Dot=function(_ShapeBase){(0,_inherits3[\"default\"])(Dot,_ShapeBase);function Dot(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Dot);return(0,_possibleConstructorReturn3[\"default\"])(this,(Dot.__proto__||(0,_getPrototypeOf2[\"default\"])(Dot)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Dot,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"circle\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.options.size}}]);return Dot}(_ShapeBase3[\"default\"]);exports[\"default\"]=Dot},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Ellipse=function(_NodeBase){(0,_inherits3[\"default\"])(Ellipse,_NodeBase);function Ellipse(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Ellipse);return(0,_possibleConstructorReturn3[\"default\"])(this,(Ellipse.__proto__||(0,_getPrototypeOf2[\"default\"])(Ellipse)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Ellipse,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.height=dimensions.height*2;this.width=dimensions.width+dimensions.height;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width*.5;this.top=y-this.height*.5;this.initContextForDraw(ctx,values);ctx.ellipse_vis(this.left,this.top,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,x,y,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var a=this.width*.5;var b=this.height*.5;var w=Math.sin(angle)*a;var h=Math.cos(angle)*b;return a*b/Math.sqrt(w*w+h*h)}}]);return Ellipse}(_NodeBase3[\"default\"]);exports[\"default\"]=Ellipse},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Icon=function(_NodeBase){(0,_inherits3[\"default\"])(Icon,_NodeBase);function Icon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Icon);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Icon.__proto__||(0,_getPrototypeOf2[\"default\"])(Icon)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Icon,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=this.iconSize.width+this.margin.right+this.margin.left;this.height=this.iconSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.options.icon.size=this.options.icon.size||50;this.left=x-this.width/2;this.top=y-this.height/2;this._icon(ctx,x,y,selected,hover,values);if(this.options.label!==undefined){var iconTextSpacing=5;this.labelModule.draw(ctx,this.left+this.iconSize.width/2+this.margin.left,y+this.height/2+iconTextSpacing,selected)}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.icon.size*.5;this.boundingBox.left=x-this.options.icon.size*.5;this.boundingBox.right=x+this.options.icon.size*.5;this.boundingBox.bottom=y+this.options.icon.size*.5;if(this.options.label!==undefined&&this.labelModule.size.width>0){var iconTextSpacing=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+iconTextSpacing)}}},{key:\"_icon\",value:function _icon(ctx,x,y,selected,hover,values){var iconSize=Number(this.options.icon.size);if(this.options.icon.code!==undefined){ctx.font=(selected?\"bold \":\"\")+iconSize+\"px \"+this.options.icon.face;ctx.fillStyle=this.options.icon.color||\"black\";ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";this.enableShadow(ctx,values);ctx.fillText(this.options.icon.code,x,y);this.disableShadow(ctx,values)}else{console.error(\"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\")}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Icon}(_NodeBase3[\"default\"]);exports[\"default\"]=Icon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Image=function(_CircleImageBase){(0,_inherits3[\"default\"])(Image,_CircleImageBase);function Image(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,Image);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Image.__proto__||(0,_getPrototypeOf2[\"default\"])(Image)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(Image,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var side=this.options.size*2;this.width=side;this.height=side;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;if(this.options.shapeProperties.useBorderWithImage===true){var neutralborderWidth=this.options.borderWidth;var selectionLineWidth=this.options.borderWidthSelected||2*this.options.borderWidth;var borderWidth=(selected?selectionLineWidth:neutralborderWidth)/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.beginPath();ctx.strokeStyle=selected?this.options.color.highlight.border:hover?this.options.color.hover.border:this.options.color.border;ctx.fillStyle=selected?this.options.color.highlight.background:hover?this.options.color.hover.background:this.options.color.background;ctx.rect(this.left-.5*ctx.lineWidth,this.top-.5*ctx.lineWidth,this.width+ctx.lineWidth,this.height+ctx.lineWidth);ctx.fill();this.performStroke(ctx,values);ctx.closePath()}this._drawImageAtPosition(ctx,values);this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.resize();this._updateBoundingBox(x,y);if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Image}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Image},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Square=function(_ShapeBase){(0,_inherits3[\"default\"])(Square,_ShapeBase);function Square(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Square);return(0,_possibleConstructorReturn3[\"default\"])(this,(Square.__proto__||(0,_getPrototypeOf2[\"default\"])(Square)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Square,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"square\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Square}(_ShapeBase3[\"default\"]);exports[\"default\"]=Square},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hexagon=function(_ShapeBase){(0,_inherits3[\"default\"])(Hexagon,_ShapeBase);function Hexagon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Hexagon);return(0,_possibleConstructorReturn3[\"default\"])(this,(Hexagon.__proto__||(0,_getPrototypeOf2[\"default\"])(Hexagon)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Hexagon,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"hexagon\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Hexagon}(_ShapeBase3[\"default\"]);exports[\"default\"]=Hexagon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Star=function(_ShapeBase){(0,_inherits3[\"default\"])(Star,_ShapeBase);function Star(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Star);return(0,_possibleConstructorReturn3[\"default\"])(this,(Star.__proto__||(0,_getPrototypeOf2[\"default\"])(Star)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Star,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"star\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Star}(_ShapeBase3[\"default\"]);exports[\"default\"]=Star},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Text=function(_NodeBase){(0,_inherits3[\"default\"])(Text,_NodeBase);function Text(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Text);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Text.__proto__||(0,_getPrototypeOf2[\"default\"])(Text)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Text,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);this.width=this.textSize.width+this.margin.right+this.margin.left;this.height=this.textSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.enableShadow(ctx,values);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover);this.disableShadow(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Text}(_NodeBase3[\"default\"]);exports[\"default\"]=Text},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Triangle=function(_ShapeBase){(0,_inherits3[\"default\"])(Triangle,_ShapeBase);function Triangle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Triangle);return(0,_possibleConstructorReturn3[\"default\"])(this,(Triangle.__proto__||(0,_getPrototypeOf2[\"default\"])(Triangle)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Triangle,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangle\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Triangle}(_ShapeBase3[\"default\"]);exports[\"default\"]=Triangle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var TriangleDown=function(_ShapeBase){(0,_inherits3[\"default\"])(TriangleDown,_ShapeBase);function TriangleDown(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,TriangleDown);return(0,_possibleConstructorReturn3[\"default\"])(this,(TriangleDown.__proto__||(0,_getPrototypeOf2[\"default\"])(TriangleDown)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(TriangleDown,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangleDown\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return TriangleDown}(_ShapeBase3[\"default\"]);exports[\"default\"]=TriangleDown},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Edge=__webpack_require__(74)[\"default\"];var EdgesHandler=function(){function EdgesHandler(body,images,groups){var _this=this;(0,_classCallCheck3[\"default\"])(this,EdgesHandler);this.body=body;this.images=images;this.groups=groups;this.body.functions.createEdge=this.create.bind(this);this.edgesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items)},remove:function remove(event,params){_this.remove(params.items)}};this.options={};this.defaultOptions={arrows:{to:{enabled:false,\nscaleFactor:1,type:\"arrow\"},middle:{enabled:false,scaleFactor:1,type:\"arrow\"},from:{enabled:false,scaleFactor:1,type:\"arrow\"}},arrowStrikethrough:true,color:{color:\"#848484\",highlight:\"#848484\",hover:\"#848484\",inherit:\"from\",opacity:1},dashes:false,font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:2,strokeColor:\"#ffffff\",align:\"horizontal\",multi:false,vadjust:0,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"courier new\",vadjust:2}},hidden:false,hoverWidth:1.5,label:undefined,labelHighlightBold:true,length:undefined,physics:true,scaling:{min:1,max:15,label:{enabled:true,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},smooth:{enabled:true,type:\"dynamic\",forceDirection:\"none\",roundness:.5},title:undefined,width:1,value:undefined};util.deepExtend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(EdgesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_forceDisableDynamicCurves\",function(type){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(type===\"dynamic\"){type=\"continuous\"}var dataChanged=false;for(var edgeId in _this2.body.edges){if(_this2.body.edges.hasOwnProperty(edgeId)){var edge=_this2.body.edges[edgeId];var edgeData=_this2.body.data.edges._data[edgeId];if(edgeData!==undefined){var smoothOptions=edgeData.smooth;if(smoothOptions!==undefined){if(smoothOptions.enabled===true&&smoothOptions.type===\"dynamic\"){if(type===undefined){edge.setOptions({smooth:false})}else{edge.setOptions({smooth:{type:type}})}dataChanged=true}}}}}if(emit===true&&dataChanged===true){_this2.body.emitter.emit(\"_dataChanged\")}});this.body.emitter.on(\"_dataUpdated\",function(){_this2.reconnectEdges()});this.body.emitter.on(\"refreshEdges\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.edgesListeners,function(callback,event){if(_this2.body.data.edges)_this2.body.data.edges.off(event,callback)});delete _this2.body.functions.createEdge;delete _this2.edgesListeners.add;delete _this2.edgesListeners.update;delete _this2.edgesListeners.remove;delete _this2.edgesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Edge.parseOptions(this.options,options,true,this.defaultOptions,true);var dataChanged=false;if(options.smooth!==undefined){for(var edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(edgeId)){dataChanged=this.body.edges[edgeId].updateEdgeType()||dataChanged}}}if(options.font!==undefined){for(var _edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(_edgeId)){this.body.edges[_edgeId].updateLabelModule()}}}if(options.hidden!==undefined||options.physics!==undefined||dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(edges){var _this3=this;var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldEdgesData=this.body.data.edges;if(edges instanceof DataSet||edges instanceof DataView){this.body.data.edges=edges}else if(Array.isArray(edges)){this.body.data.edges=new DataSet;this.body.data.edges.add(edges)}else if(!edges){this.body.data.edges=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldEdgesData){util.forEach(this.edgesListeners,function(callback,event){oldEdgesData.off(event,callback)})}this.body.edges={};if(this.body.data.edges){util.forEach(this.edgesListeners,function(callback,event){_this3.body.data.edges.on(event,callback)});var ids=this.body.data.edges.getIds();this.add(ids,true)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var edges=this.body.edges;var edgesData=this.body.data.edges;for(var i=0;i<ids.length;i++){var id=ids[i];var oldEdge=edges[id];if(oldEdge){oldEdge.disconnect()}var data=edgesData.get(id,{showInternalIds:true});edges[id]=this.create(data)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids){var edges=this.body.edges;var edgesData=this.body.data.edges;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var data=edgesData.get(id);var edge=edges[id];if(edge!==undefined){edge.disconnect();dataChanged=edge.setOptions(data)||dataChanged;edge.connect()}else{this.body.edges[id]=this.create(data);dataChanged=true}}if(dataChanged===true){this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(ids.length===0)return;var edges=this.body.edges;util.forEach(ids,function(id){var edge=edges[id];if(edge!==undefined){edge.remove()}});if(emit){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"refresh\",value:function refresh(){var _this4=this;util.forEach(this.body.edges,function(edge,edgeId){var data=_this4.body.data.edges._data[edgeId];if(data!==undefined){edge.setOptions(data)}})}},{key:\"create\",value:function create(properties){return new Edge(properties,this.body,this.options,this.defaultOptions)}},{key:\"reconnectEdges\",value:function reconnectEdges(){var id;var nodes=this.body.nodes;var edges=this.body.edges;for(id in nodes){if(nodes.hasOwnProperty(id)){nodes[id].edges=[]}}for(id in edges){if(edges.hasOwnProperty(id)){var edge=edges[id];edge.from=null;edge.to=null;edge.connect()}}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(edgeId){var nodeList=[];if(this.body.edges[edgeId]!==undefined){var edge=this.body.edges[edgeId];if(edge.fromId!==undefined){nodeList.push(edge.fromId)}if(edge.toId!==undefined){nodeList.push(edge.toId)}}return nodeList}},{key:\"_updateState\",value:function _updateState(){this._addMissingEdges();this._removeInvalidEdges()}},{key:\"_removeInvalidEdges\",value:function _removeInvalidEdges(){var _this5=this;var edgesToDelete=[];util.forEach(this.body.edges,function(edge,id){var toNode=_this5.body.nodes[edge.toId];var fromNode=_this5.body.nodes[edge.fromId];if(toNode!==undefined&&toNode.isCluster===true||fromNode!==undefined&&fromNode.isCluster===true){return}if(toNode===undefined||fromNode===undefined){edgesToDelete.push(id)}});this.remove(edgesToDelete,false)}},{key:\"_addMissingEdges\",value:function _addMissingEdges(){var edges=this.body.edges;var edgesData=this.body.data.edges;var addIds=[];edgesData.forEach(function(edgeData,edgeId){var edge=edges[edgeId];if(edge===undefined){addIds.push(edgeId)}});this.add(addIds,true)}}]);return EdgesHandler}();exports[\"default\"]=EdgesHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CubicBezierEdgeBase2=__webpack_require__(216);var _CubicBezierEdgeBase3=_interopRequireDefault(_CubicBezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdge=function(_CubicBezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdge,_CubicBezierEdgeBase);function CubicBezierEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdge,[{key:\"_line\",value:function _line(ctx,values,viaNodes){var via1=viaNodes[0];var via2=viaNodes[1];this._bezierCurve(ctx,values,via1,via2)}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var dx=this.from.x-this.to.x;var dy=this.from.y-this.to.y;var x1=void 0,y1=void 0,x2=void 0,y2=void 0;var roundness=this.options.smooth.roundness;if((Math.abs(dx)>Math.abs(dy)||this.options.smooth.forceDirection===true||this.options.smooth.forceDirection===\"horizontal\")&&this.options.smooth.forceDirection!==\"vertical\"){y1=this.from.y;y2=this.to.y;x1=this.from.x-roundness*dx;x2=this.to.x+roundness*dx}else{y1=this.from.y-roundness*dy;y2=this.to.y+roundness*dy;x1=this.from.x;x2=this.to.x}return[{x:x1,y:y1},{x:x2,y:y2}]}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var _ref=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates(),_ref2=(0,_slicedToArray3[\"default\"])(_ref,2),via1=_ref2[0],via2=_ref2[1];return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2)}},{key:\"getPoint\",value:function getPoint(percentage){var _ref3=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates(),_ref4=(0,_slicedToArray3[\"default\"])(_ref3,2),via1=_ref4[0],via2=_ref4[1];var t=percentage;var vec=[];vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);var x=vec[0]*this.fromPoint.x+vec[1]*via1.x+vec[2]*via2.x+vec[3]*this.toPoint.x;var y=vec[0]*this.fromPoint.y+vec[1]*via1.y+vec[2]*via2.y+vec[3]*this.toPoint.y;return{x:x,y:y}}}]);return CubicBezierEdge}(_CubicBezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdgeBase=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdgeBase,_BezierEdgeBase);function CubicBezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdgeBase,[{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;var vec=[0,0,0,0];for(i=1;i<10;i++){t=.1*i;vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);x=vec[0]*x1+vec[1]*via1.x+vec[2]*via2.x+vec[3]*x2;y=vec[0]*y1+vec[1]*via1.y+vec[2]*via2.y+vec[3]*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}}]);return CubicBezierEdgeBase}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeDynamic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeDynamic,_BezierEdgeBase);function BezierEdgeDynamic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeDynamic);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeDynamic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeDynamic)).call(this,options,body,labelModule));_this._boundFunction=function(){_this.positionBezierNode()};_this.body.emitter.on(\"_repositionBezierNodes\",_this._boundFunction);return _this}(0,_createClass3[\"default\"])(BezierEdgeDynamic,[{key:\"setOptions\",value:function setOptions(options){var physicsChange=false;if(this.options.physics!==options.physics){physicsChange=true}this.options=options;this.id=this.options.id;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.setupSupportNode();this.connect();if(physicsChange===true){this.via.setOptions({physics:this.options.physics});this.positionBezierNode()}}},{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];if(this.from===undefined||this.to===undefined||this.options.physics===false){this.via.setOptions({physics:false})}else{if(this.from.id===this.to.id){this.via.setOptions({physics:false})}else{this.via.setOptions({physics:true})}}}},{key:\"cleanup\",value:function cleanup(){this.body.emitter.off(\"_repositionBezierNodes\",this._boundFunction);if(this.via!==undefined){delete this.body.nodes[this.via.id];this.via=undefined;return true}return false}},{key:\"setupSupportNode\",value:function setupSupportNode(){if(this.via===undefined){var nodeId=\"edgeId:\"+this.id;var node=this.body.functions.createNode({id:nodeId,shape:\"circle\",physics:true,hidden:true});this.body.nodes[nodeId]=node;this.via=node;this.via.parentEdgeId=this.id;this.positionBezierNode()}}},{key:\"positionBezierNode\",value:function positionBezierNode(){if(this.via!==undefined&&this.from!==undefined&&this.to!==undefined){this.via.x=.5*(this.from.x+this.to.x);this.via.y=.5*(this.from.y+this.to.y)}else if(this.via!==undefined){this.via.x=0;this.via.y=0}}},{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this.via}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.via;var t=percentage;var x=void 0,y=void 0;if(this.from===this.to){var _getCircleData=this._getCircleData(this.from),_getCircleData2=(0,_slicedToArray3[\"default\"])(_getCircleData,3),cx=_getCircleData2[0],cy=_getCircleData2[1],cr=_getCircleData2[2];var a=2*Math.PI*(1-t);x=cx+cr*Math.sin(a);y=cy+cr-cr*(1-Math.cos(a))}else{x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y}return{x:x,y:y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx,this.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,this.via)}}]);return BezierEdgeDynamic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeDynamic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeStatic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeStatic,_BezierEdgeBase);function BezierEdgeStatic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeStatic);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeStatic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeStatic)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeStatic,[{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var xVia=undefined;var yVia=undefined;var factor=this.options.smooth.roundness;var type=this.options.smooth.type;var dx=Math.abs(this.from.x-this.to.x);var dy=Math.abs(this.from.y-this.to.y);if(type===\"discrete\"||type===\"diagonalCross\"){var stepX=void 0;var stepY=void 0;if(dx<=dy){stepX=stepY=factor*dy}else{stepX=stepY=factor*dx}if(this.from.x>this.to.x)stepX=-stepX;if(this.from.y>=this.to.y)stepY=-stepY;xVia=this.from.x+stepX;yVia=this.from.y+stepY;if(type===\"discrete\"){if(dx<=dy){xVia=dx<factor*dy?this.from.x:xVia}else{yVia=dy<factor*dx?this.from.y:yVia}}}else if(type===\"straightCross\"){var _stepX=(1-factor)*dx;var _stepY=(1-factor)*dy;if(dx<=dy){_stepX=0;if(this.from.y<this.to.y)_stepY=-_stepY}else{if(this.from.x<this.to.x)_stepX=-_stepX;_stepY=0}xVia=this.to.x+_stepX;yVia=this.to.y+_stepY}else if(type===\"horizontal\"){var _stepX2=(1-factor)*dx;if(this.from.x<this.to.x)_stepX2=-_stepX2;xVia=this.to.x+_stepX2;yVia=this.from.y}else if(type===\"vertical\"){var _stepY2=(1-factor)*dy;if(this.from.y<this.to.y)_stepY2=-_stepY2;xVia=this.from.x;yVia=this.to.y+_stepY2}else if(type===\"curvedCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var radius=Math.sqrt(dx*dx+dy*dy);var pi=Math.PI;var originalAngle=Math.atan2(dy,dx);var myAngle=(originalAngle+(factor*.5+.5)*pi)%(2*pi);xVia=this.from.x+(factor*.5+.5)*radius*Math.sin(myAngle);yVia=this.from.y+(factor*.5+.5)*radius*Math.cos(myAngle)}else if(type===\"curvedCCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var _radius=Math.sqrt(dx*dx+dy*dy);var _pi=Math.PI;var _originalAngle=Math.atan2(dy,dx);var _myAngle=(_originalAngle+(-factor*.5+.5)*_pi)%(2*_pi);xVia=this.from.x+(factor*.5+.5)*_radius*Math.sin(_myAngle);yVia=this.from.y+(factor*.5+.5)*_radius*Math.cos(_myAngle)}else{var _stepX3=void 0;var _stepY3=void 0;if(dx<=dy){_stepX3=_stepY3=factor*dy}else{_stepX3=_stepY3=factor*dx}if(this.from.x>this.to.x)_stepX3=-_stepX3;if(this.from.y>=this.to.y)_stepY3=-_stepY3;xVia=this.from.x+_stepX3;yVia=this.from.y+_stepY3;if(dx<=dy){if(this.from.x<=this.to.x){xVia=this.to.x<xVia?this.to.x:xVia}else{xVia=this.to.x>xVia?this.to.x:xVia}}else{if(this.from.y>=this.to.y){yVia=this.to.y>yVia?this.to.y:yVia}else{yVia=this.to.y<yVia?this.to.y:yVia}}}return{x:xVia,y:yVia}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return this._findBorderPositionBezier(nearNode,ctx,options.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var viaNode=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,viaNode)}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates();var t=percentage;var x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;var y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y;return{x:x,y:y}}}]);return BezierEdgeStatic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeStatic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var StraightEdge=function(_EdgeBase){(0,_inherits3[\"default\"])(StraightEdge,_EdgeBase);function StraightEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,StraightEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(StraightEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(StraightEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(StraightEdge,[{key:\"_line\",value:function _line(ctx,values){ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);ctx.lineTo(this.toPoint.x,this.toPoint.y);this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return undefined}},{key:\"getPoint\",value:function getPoint(percentage){return{x:(1-percentage)*this.fromPoint.x+percentage*this.toPoint.x,y:(1-percentage)*this.fromPoint.y+percentage*this.toPoint.y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var node1=this.to;var node2=this.from;if(nearNode.id===this.from.id){node1=this.from;node2=this.to}var angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);var dx=node1.x-node2.x;var dy=node1.y-node2.y;var edgeSegmentLength=Math.sqrt(dx*dx+dy*dy);var toBorderDist=nearNode.distanceToBorder(ctx,angle);var toBorderPoint=(edgeSegmentLength-toBorderDist)/edgeSegmentLength;var borderPos={};borderPos.x=(1-toBorderPoint)*node2.x+toBorderPoint*node1.x;borderPos.y=(1-toBorderPoint)*node2.y+toBorderPoint*node1.y;return borderPos}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToLine(x1,y1,x2,y2,x3,y3)}}]);return StraightEdge}(_EdgeBase3[\"default\"]);exports[\"default\"]=StraightEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=__webpack_require__(120)[\"default\"];var Repulsion=__webpack_require__(221)[\"default\"];var HierarchicalRepulsion=__webpack_require__(222)[\"default\"];var SpringSolver=__webpack_require__(223)[\"default\"];var HierarchicalSpringSolver=__webpack_require__(224)[\"default\"];var CentralGravitySolver=__webpack_require__(121)[\"default\"];var ForceAtlas2BasedRepulsionSolver=__webpack_require__(225)[\"default\"];var ForceAtlas2BasedCentralGravitySolver=__webpack_require__(226)[\"default\"];var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var PhysicsEngine=function(){function PhysicsEngine(body){(0,_classCallCheck3[\"default\"])(this,PhysicsEngine);this.body=body;this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}};this.physicsEnabled=true;this.simulationInterval=1e3/60;this.requiresTimeout=true;this.previousStates={};this.referenceState={};this.freezeCache={};this.renderTimer=undefined;this.adaptiveTimestep=false;this.adaptiveTimestepEnabled=false;this.adaptiveCounter=0;this.adaptiveInterval=3;this.stabilized=false;this.startedStabilization=false;this.stabilizationIterations=0;this.ready=false;this.options={};this.defaultOptions={enabled:true,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:\"barnesHut\",stabilization:{enabled:true,iterations:1e3,updateInterval:50,onlyDynamicEdges:false,fit:true},timestep:.5,adaptiveTimestep:true};util.extend(this.options,this.defaultOptions);this.timestep=.5;this.layoutFailed=false;this.bindEventListeners()}(0,_createClass3[\"default\"])(PhysicsEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"initPhysics\",function(){_this.initPhysics()});this.body.emitter.on(\"_layoutFailed\",function(){_this.layoutFailed=true});this.body.emitter.on(\"resetPhysics\",function(){_this.stopSimulation();_this.ready=false});this.body.emitter.on(\"disablePhysics\",function(){_this.physicsEnabled=false;_this.stopSimulation()});this.body.emitter.on(\"restorePhysics\",function(){_this.setOptions(_this.options);if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"startSimulation\",function(){if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"stopSimulation\",function(){_this.stopSimulation()});this.body.emitter.on(\"destroy\",function(){_this.stopSimulation(false);_this.body.emitter.off()});this.body.emitter.on(\"_dataChanged\",function(){_this.updatePhysicsData()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){if(options===false){this.options.enabled=false;this.physicsEnabled=false;this.stopSimulation()}else if(options===true){this.options.enabled=true;this.physicsEnabled=true;this.startSimulation()}else{this.physicsEnabled=true;util.selectiveNotDeepExtend([\"stabilization\"],this.options,options);util.mergeOptions(this.options,options,\"stabilization\");if(options.enabled===undefined){this.options.enabled=true}if(this.options.enabled===false){this.physicsEnabled=false;this.stopSimulation()}this.timestep=this.options.timestep}}this.init()}},{key:\"init\",value:function init(){var options;if(this.options.solver===\"forceAtlas2Based\"){options=this.options.forceAtlas2Based;this.nodesSolver=new ForceAtlas2BasedRepulsionSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new ForceAtlas2BasedCentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"repulsion\"){options=this.options.repulsion;this.nodesSolver=new Repulsion(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"hierarchicalRepulsion\"){options=this.options.hierarchicalRepulsion;this.nodesSolver=new HierarchicalRepulsion(this.body,this.physicsBody,options);this.edgesSolver=new HierarchicalSpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else{options=this.options.barnesHut;this.nodesSolver=new BarnesHutSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}this.modelOptions=options}},{key:\"initPhysics\",value:function initPhysics(){if(this.physicsEnabled===true&&this.options.enabled===true){if(this.options.stabilization.enabled===true){this.stabilize()}else{this.stabilized=false;this.ready=true;this.body.emitter.emit(\"fit\",{},this.layoutFailed);this.startSimulation()}}else{this.ready=true;this.body.emitter.emit(\"fit\")}}},{key:\"startSimulation\",value:function startSimulation(){if(this.physicsEnabled===true&&this.options.enabled===true){this.stabilized=false;this.adaptiveTimestep=false;this.body.emitter.emit(\"_resizeNodes\");if(this.viewFunction===undefined){this.viewFunction=this.simulationStep.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}else{this.body.emitter.emit(\"_redraw\")}}},{key:\"stopSimulation\",value:function stopSimulation(){var emit=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.stabilized=true;if(emit===true){this._emitStabilized()}if(this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.viewFunction=undefined;if(emit===true){this.body.emitter.emit(\"_stopRendering\")}}}},{key:\"simulationStep\",value:function simulationStep(){var startTime=Date.now();this.physicsTick();var physicsTime=Date.now()-startTime;if((physicsTime<.4*this.simulationInterval||this.runDoubleSpeed===true)&&this.stabilized===false){this.physicsTick();this.runDoubleSpeed=true}if(this.stabilized===true){this.stopSimulation()}}},{key:\"_emitStabilized\",value:function _emitStabilized(){var _this2=this;var amountOfIterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.stabilizationIterations;if(this.stabilizationIterations>1||this.startedStabilization===true){setTimeout(function(){_this2.body.emitter.emit(\"stabilized\",{iterations:amountOfIterations});_this2.startedStabilization=false;_this2.stabilizationIterations=0},0)}}},{key:\"physicsStep\",value:function physicsStep(){this.gravitySolver.solve();this.nodesSolver.solve();this.edgesSolver.solve();this.moveNodes()}},{key:\"adjustTimeStep\",value:function adjustTimeStep(){var factor=1.2;if(this._evaluateStepQuality()===true){this.timestep=factor*this.timestep}else{if(this.timestep/factor<this.options.timestep){this.timestep=this.options.timestep}else{this.adaptiveCounter=-1;this.timestep=Math.max(this.options.timestep,this.timestep/factor)}}}},{key:\"physicsTick\",value:function physicsTick(){this._startStabilizing();if(this.stabilized===true)return;if(this.adaptiveTimestep===true&&this.adaptiveTimestepEnabled===true){var doAdaptive=this.adaptiveCounter%this.adaptiveInterval===0;if(doAdaptive){this.timestep=2*this.timestep;this.physicsStep();this.revert();this.timestep=.5*this.timestep;this.physicsStep();this.physicsStep();this.adjustTimeStep()}else{this.physicsStep()}this.adaptiveCounter+=1}else{this.timestep=this.options.timestep;this.physicsStep()}\nif(this.stabilized===true)this.revert();this.stabilizationIterations++}},{key:\"updatePhysicsData\",value:function updatePhysicsData(){this.physicsBody.forces={};this.physicsBody.physicsNodeIndices=[];this.physicsBody.physicsEdgeIndices=[];var nodes=this.body.nodes;var edges=this.body.edges;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(nodes[nodeId].options.physics===true){this.physicsBody.physicsNodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){if(edges[edgeId].options.physics===true){this.physicsBody.physicsEdgeIndices.push(edges[edgeId].id)}}}for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var _nodeId=this.physicsBody.physicsNodeIndices[i];this.physicsBody.forces[_nodeId]={x:0,y:0};if(this.physicsBody.velocities[_nodeId]===undefined){this.physicsBody.velocities[_nodeId]={x:0,y:0}}}for(var _nodeId2 in this.physicsBody.velocities){if(nodes[_nodeId2]===undefined){delete this.physicsBody.velocities[_nodeId2]}}}},{key:\"revert\",value:function revert(){var nodeIds=(0,_keys2[\"default\"])(this.previousStates);var nodes=this.body.nodes;var velocities=this.physicsBody.velocities;this.referenceState={};for(var i=0;i<nodeIds.length;i++){var nodeId=nodeIds[i];if(nodes[nodeId]!==undefined){if(nodes[nodeId].options.physics===true){this.referenceState[nodeId]={positions:{x:nodes[nodeId].x,y:nodes[nodeId].y}};velocities[nodeId].x=this.previousStates[nodeId].vx;velocities[nodeId].y=this.previousStates[nodeId].vy;nodes[nodeId].x=this.previousStates[nodeId].x;nodes[nodeId].y=this.previousStates[nodeId].y}}else{delete this.previousStates[nodeId]}}}},{key:\"_evaluateStepQuality\",value:function _evaluateStepQuality(){var dx=void 0,dy=void 0,dpos=void 0;var nodes=this.body.nodes;var reference=this.referenceState;var posThreshold=.3;for(var nodeId in this.referenceState){if(this.referenceState.hasOwnProperty(nodeId)&&nodes[nodeId]!==undefined){dx=nodes[nodeId].x-reference[nodeId].positions.x;dy=nodes[nodeId].y-reference[nodeId].positions.y;dpos=Math.sqrt(Math.pow(dx,2)+Math.pow(dy,2));if(dpos>posThreshold){return false}}}return true}},{key:\"moveNodes\",value:function moveNodes(){var nodeIndices=this.physicsBody.physicsNodeIndices;var maxNodeVelocity=0;var averageNodeVelocity=0;var velocityAdaptiveThreshold=5;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];var nodeVelocity=this._performStep(nodeId);maxNodeVelocity=Math.max(maxNodeVelocity,nodeVelocity);averageNodeVelocity+=nodeVelocity}this.adaptiveTimestepEnabled=averageNodeVelocity/nodeIndices.length<velocityAdaptiveThreshold;this.stabilized=maxNodeVelocity<this.options.minVelocity}},{key:\"calculateComponentVelocity\",value:function calculateComponentVelocity(v,f,m){var df=this.modelOptions.damping*v;var a=(f-df)/m;v+=a*this.timestep;var maxV=this.options.maxVelocity||1e9;if(Math.abs(v)>maxV){v=v>0?maxV:-maxV}return v}},{key:\"_performStep\",value:function _performStep(nodeId){var node=this.body.nodes[nodeId];var force=this.physicsBody.forces[nodeId];var velocity=this.physicsBody.velocities[nodeId];this.previousStates[nodeId]={x:node.x,y:node.y,vx:velocity.x,vy:velocity.y};if(node.options.fixed.x===false){velocity.x=this.calculateComponentVelocity(velocity.x,force.x,node.options.mass);node.x+=velocity.x*this.timestep}else{force.x=0;velocity.x=0}if(node.options.fixed.y===false){velocity.y=this.calculateComponentVelocity(velocity.y,force.y,node.options.mass);node.y+=velocity.y*this.timestep}else{force.y=0;velocity.y=0}var totalVelocity=Math.sqrt(Math.pow(velocity.x,2)+Math.pow(velocity.y,2));return totalVelocity}},{key:\"_freezeNodes\",value:function _freezeNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(nodes[id].x&&nodes[id].y){var fixed=nodes[id].options.fixed;this.freezeCache[id]={x:fixed.x,y:fixed.y};fixed.x=true;fixed.y=true}}}}},{key:\"_restoreFrozenNodes\",value:function _restoreFrozenNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(this.freezeCache[id]!==undefined){nodes[id].options.fixed.x=this.freezeCache[id].x;nodes[id].options.fixed.y=this.freezeCache[id].y}}}this.freezeCache={}}},{key:\"stabilize\",value:function stabilize(){var _this3=this;var iterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.stabilization.iterations;if(typeof iterations!==\"number\"){iterations=this.options.stabilization.iterations;console.log(\"The stabilize method needs a numeric amount of iterations. Switching to default: \",iterations)}if(this.physicsBody.physicsNodeIndices.length===0){this.ready=true;return}this.adaptiveTimestep=true&&this.options.adaptiveTimestep;this.body.emitter.emit(\"_resizeNodes\");this.stopSimulation();this.stabilized=false;this.body.emitter.emit(\"_blockRedraw\");this.targetIterations=iterations;if(this.options.stabilization.onlyDynamicEdges===true){this._freezeNodes()}this.stabilizationIterations=0;setTimeout(function(){return _this3._stabilizationBatch()},0)}},{key:\"_startStabilizing\",value:function _startStabilizing(){if(this.startedStabilization===true)return false;this.body.emitter.emit(\"startStabilizing\");this.startedStabilization=true;return true}},{key:\"_stabilizationBatch\",value:function _stabilizationBatch(){var _this4=this;var running=function running(){return _this4.stabilized===false&&_this4.stabilizationIterations<_this4.targetIterations};var sendProgress=function sendProgress(){_this4.body.emitter.emit(\"stabilizationProgress\",{iterations:_this4.stabilizationIterations,total:_this4.targetIterations})};if(this._startStabilizing()){sendProgress()}var count=0;while(running()&&count<this.options.stabilization.updateInterval){this.physicsTick();count++}sendProgress();if(running()){setTimeout(this._stabilizationBatch.bind(this),0)}else{this._finalizeStabilization()}}},{key:\"_finalizeStabilization\",value:function _finalizeStabilization(){this.body.emitter.emit(\"_allowRedraw\");if(this.options.stabilization.fit===true){this.body.emitter.emit(\"fit\")}if(this.options.stabilization.onlyDynamicEdges===true){this._restoreFrozenNodes()}this.body.emitter.emit(\"stabilizationIterationsDone\");this.body.emitter.emit(\"_requestRedraw\");if(this.stabilized===true){this._emitStabilized()}else{this.startSimulation()}this.ready=true}},{key:\"_drawForces\",value:function _drawForces(ctx){for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var index=this.physicsBody.physicsNodeIndices[i];var node=this.body.nodes[index];var force=this.physicsBody.forces[index];var factor=20;var colorFactor=.03;var forceSize=Math.sqrt(Math.pow(force.x,2)+Math.pow(force.x,2));var size=Math.min(Math.max(5,forceSize),15);var arrowSize=3*size;var color=util.HSVToHex((180-Math.min(1,Math.max(0,colorFactor*forceSize))*180)/360,1,1);var point={x:node.x+factor*force.x,y:node.y+factor*force.y};ctx.lineWidth=size;ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(node.x,node.y);ctx.lineTo(point.x,point.y);ctx.stroke();var angle=Math.atan2(force.y,force.x);ctx.fillStyle=color;EndPoints.draw(ctx,{type:\"arrow\",point:point,angle:angle,length:arrowSize});ctx.fill()}}}]);return PhysicsEngine}();exports[\"default\"]=PhysicsEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var RepulsionSolver=function(){function RepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,RepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(RepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;var a=-2/3/nodeDistance;var b=4/3;for(var i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(var j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance===0){distance=.1*Math.random();dx=distance}if(distance<2*nodeDistance){if(distance<.5*nodeDistance){repulsingForce=1}else{repulsingForce=a*distance+b}repulsingForce=repulsingForce/distance;fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return RepulsionSolver}();exports[\"default\"]=RepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalRepulsionSolver=function(){function HierarchicalRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalRepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalRepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2,i,j;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;for(i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];if(node1.level===node2.level){dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);var steepness=.05;if(distance<nodeDistance){repulsingForce=-Math.pow(steepness*distance,2)+Math.pow(steepness*nodeDistance,2)}else{repulsingForce=0}if(distance===0){distance=.01}else{repulsingForce=repulsingForce/distance}fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return HierarchicalRepulsionSolver}();exports[\"default\"]=HierarchicalRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var SpringSolver=function(){function SpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,SpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(SpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength=void 0,edge=void 0;var edgeIndices=this.physicsBody.physicsEdgeIndices;var edges=this.body.edges;var node1=void 0,node2=void 0,node3=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true&&edge.toId!==edge.fromId){if(this.body.nodes[edge.toId]!==undefined&&this.body.nodes[edge.fromId]!==undefined){if(edge.edgeType.via!==undefined){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;node1=edge.to;node2=edge.edgeType.via;node3=edge.from;this._calculateSpringForce(node1,node2,.5*edgeLength);this._calculateSpringForce(node2,node3,.5*edgeLength)}else{edgeLength=edge.options.length===undefined?this.options.springLength*1.5:edge.options.length;this._calculateSpringForce(edge.from,edge.to,edgeLength)}}}}}},{key:\"_calculateSpringForce\",value:function _calculateSpringForce(node1,node2,edgeLength){var dx=node1.x-node2.x;var dy=node1.y-node2.y;var distance=Math.max(Math.sqrt(dx*dx+dy*dy),.01);var springForce=this.options.springConstant*(edgeLength-distance)/distance;var fx=dx*springForce;var fy=dy*springForce;if(this.physicsBody.forces[node1.id]!==undefined){this.physicsBody.forces[node1.id].x+=fx;this.physicsBody.forces[node1.id].y+=fy}if(this.physicsBody.forces[node2.id]!==undefined){this.physicsBody.forces[node2.id].x-=fx;this.physicsBody.forces[node2.id].y-=fy}}}]);return SpringSolver}();exports[\"default\"]=SpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalSpringSolver=function(){function HierarchicalSpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalSpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalSpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength,edge;var dx,dy,fx,fy,springForce,distance;var edges=this.body.edges;var factor=.5;var edgeIndices=this.physicsBody.physicsEdgeIndices;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];forces[nodeId].springFx=0;forces[nodeId].springFy=0}for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.connected===true){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;dx=edge.from.x-edge.to.x;dy=edge.from.y-edge.to.y;distance=Math.sqrt(dx*dx+dy*dy);distance=distance===0?.01:distance;springForce=this.options.springConstant*(edgeLength-distance)/distance;fx=dx*springForce;fy=dy*springForce;if(edge.to.level!=edge.from.level){if(forces[edge.toId]!==undefined){forces[edge.toId].springFx-=fx;forces[edge.toId].springFy-=fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].springFx+=fx;forces[edge.fromId].springFy+=fy}}else{if(forces[edge.toId]!==undefined){forces[edge.toId].x-=factor*fx;forces[edge.toId].y-=factor*fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].x+=factor*fx;forces[edge.fromId].y+=factor*fy}}}}springForce=1;var springFx,springFy;for(var _i2=0;_i2<nodeIndices.length;_i2++){var _nodeId=nodeIndices[_i2];springFx=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFx));springFy=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFy));forces[_nodeId].x+=springFx;forces[_nodeId].y+=springFy}var totalFx=0;var totalFy=0;for(var _i3=0;_i3<nodeIndices.length;_i3++){var _nodeId2=nodeIndices[_i3];totalFx+=forces[_nodeId2].x;totalFy+=forces[_nodeId2].y}var correctionFx=totalFx/nodeIndices.length;var correctionFy=totalFy/nodeIndices.length;for(var _i4=0;_i4<nodeIndices.length;_i4++){var _nodeId3=nodeIndices[_i4];forces[_nodeId3].x-=correctionFx;forces[_nodeId3].y-=correctionFy}}}]);return HierarchicalSpringSolver}();exports[\"default\"]=HierarchicalSpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BarnesHutSolver2=__webpack_require__(120);var _BarnesHutSolver3=_interopRequireDefault(_BarnesHutSolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedRepulsionSolver=function(_BarnesHutSolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedRepulsionSolver,_BarnesHutSolver);function ForceAtlas2BasedRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedRepulsionSolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedRepulsionSolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedRepulsionSolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedRepulsionSolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1*Math.random();dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var degree=node.edges.length+1;var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass*degree/Math.pow(distance,2);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}}]);return ForceAtlas2BasedRepulsionSolver}(_BarnesHutSolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CentralGravitySolver2=__webpack_require__(121);var _CentralGravitySolver3=_interopRequireDefault(_CentralGravitySolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedCentralGravitySolver=function(_CentralGravitySolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,_CentralGravitySolver);function ForceAtlas2BasedCentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedCentralGravitySolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedCentralGravitySolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedCentralGravitySolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){if(distance>0){var degree=node.edges.length+1;var gravityForce=this.options.centralGravity*degree*node.options.mass;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}}]);return ForceAtlas2BasedCentralGravitySolver}(_CentralGravitySolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedCentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var Cluster=__webpack_require__(228)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var Node=__webpack_require__(47)[\"default\"];var ClusterEngine=function(){function ClusterEngine(body){var _this=this;(0,_classCallCheck3[\"default\"])(this,ClusterEngine);this.body=body;this.clusteredNodes={};this.clusteredEdges={};this.options={};this.defaultOptions={};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_resetData\",function(){_this.clusteredNodes={};_this.clusteredEdges={}})}(0,_createClass3[\"default\"])(ClusterEngine,[{key:\"clusterByHubsize\",value:function clusterByHubsize(hubsize,options){if(hubsize===undefined){hubsize=this._getHubSize()}else if((typeof hubsize===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(hubsize))===\"object\"){options=this._checkOptions(hubsize);hubsize=this._getHubSize()}var nodesToCluster=[];for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];if(node.edges.length>=hubsize){nodesToCluster.push(node.id)}}for(var _i=0;_i<nodesToCluster.length;_i++){this.clusterByConnection(nodesToCluster[_i],options,true)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"cluster\",value:function cluster(){var _this2=this;var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(options.joinCondition===undefined){throw new Error(\"Cannot call clusterByNodeData without a joinCondition function in the options.\")}options=this._checkOptions(options);var childNodesObj={};var childEdgesObj={};util.forEach(this.body.nodes,function(node,nodeId){var clonedOptions=NetworkUtil.cloneOptions(node);if(options.joinCondition(clonedOptions)===true){childNodesObj[nodeId]=node;util.forEach(node.edges,function(edge){if(_this2.clusteredEdges[edge.id]===undefined){childEdgesObj[edge.id]=edge}})}});this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"clusterByEdgeCount\",value:function clusterByEdgeCount(edgeCount,options){var _this3=this;var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;options=this._checkOptions(options);var clusters=[];var usedNodes={};var edge=void 0,edges=void 0,relevantEdgeCount=void 0;var _loop=function _loop(i){var childNodesObj={};var childEdgesObj={};var nodeId=_this3.body.nodeIndices[i];var node=_this3.body.nodes[nodeId];if(usedNodes[nodeId]===undefined){relevantEdgeCount=0;edges=[];for(var j=0;j<node.edges.length;j++){edge=node.edges[j];if(_this3.clusteredEdges[edge.id]===undefined){if(edge.toId!==edge.fromId){relevantEdgeCount++}edges.push(edge)}}if(relevantEdgeCount===edgeCount){checkJoinCondition=function checkJoinCondition(node){if(options.joinCondition===undefined||options.joinCondition===null){return true}var clonedOptions=NetworkUtil.cloneOptions(node);return options.joinCondition(clonedOptions)};var gatheringSuccessful=true;for(var _j=0;_j<edges.length;_j++){edge=edges[_j];var childNodeId=_this3._getConnectedId(edge,nodeId);if(checkJoinCondition(node)){childEdgesObj[edge.id]=edge;childNodesObj[nodeId]=node;childNodesObj[childNodeId]=_this3.body.nodes[childNodeId];usedNodes[nodeId]=true}else{gatheringSuccessful=false;break}}if((0,_keys2[\"default\"])(childNodesObj).length>0&&(0,_keys2[\"default\"])(childEdgesObj).length>0&&gatheringSuccessful===true){findClusterData=function findClusterData(){for(var n=0;n<clusters.length;++n){for(var m in childNodesObj){if(clusters[n].nodes[m]!==undefined){return clusters[n]}}}return undefined};foundCluster=findClusterData();if(foundCluster!==undefined){for(var m in childNodesObj){if(foundCluster.nodes[m]===undefined){foundCluster.nodes[m]=childNodesObj[m]}}for(var _m in childEdgesObj){if(foundCluster.edges[_m]===undefined){foundCluster.edges[_m]=childEdgesObj[_m]}}}else{clusters.push({nodes:childNodesObj,edges:childEdgesObj})}}}}};for(var i=0;i<this.body.nodeIndices.length;i++){var checkJoinCondition;var findClusterData;var foundCluster;_loop(i)}for(var i=0;i<clusters.length;i++){this._cluster(clusters[i].nodes,clusters[i].edges,options,false)}if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"clusterOutliers\",value:function clusterOutliers(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(1,options,refreshData)}},{key:\"clusterBridges\",value:function clusterBridges(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(2,options,refreshData)}},{key:\"clusterByConnection\",value:function clusterByConnection(nodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(nodeId===undefined){throw new Error(\"No nodeId supplied to clusterByConnection!\")}if(this.body.nodes[nodeId]===undefined){throw new Error(\"The nodeId given to clusterByConnection does not exist!\")}var node=this.body.nodes[nodeId];options=this._checkOptions(options,node);if(options.clusterNodeProperties.x===undefined){options.clusterNodeProperties.x=node.x}if(options.clusterNodeProperties.y===undefined){options.clusterNodeProperties.y=node.y}if(options.clusterNodeProperties.fixed===undefined){options.clusterNodeProperties.fixed={};options.clusterNodeProperties.fixed.x=node.options.fixed.x;options.clusterNodeProperties.fixed.y=node.options.fixed.y}var childNodesObj={};var childEdgesObj={};var parentNodeId=node.id;var parentClonedOptions=NetworkUtil.cloneOptions(node);childNodesObj[parentNodeId]=node;for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(this.clusteredEdges[edge.id]===undefined){var childNodeId=this._getConnectedId(edge,parentNodeId);if(this.clusteredNodes[childNodeId]===undefined){if(childNodeId!==parentNodeId){if(options.joinCondition===undefined){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}else{var childClonedOptions=NetworkUtil.cloneOptions(this.body.nodes[childNodeId]);if(options.joinCondition(parentClonedOptions,childClonedOptions)===true){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}}}else{childEdgesObj[edge.id]=edge}}}}var childNodeIDs=(0,_keys2[\"default\"])(childNodesObj).map(function(childNode){return childNodesObj[childNode].id});for(childNode in childNodesObj){if(!childNodesObj.hasOwnProperty(childNode))continue;var childNode=childNodesObj[childNode];for(var y=0;y<childNode.edges.length;y++){var childEdge=childNode.edges[y];if(childNodeIDs.indexOf(this._getConnectedId(childEdge,childNode.id))>-1){childEdgesObj[childEdge.id]=childEdge}}}this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"_createClusterEdges\",value:function _createClusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,clusterEdgeProperties){var edge=void 0,childNodeId=void 0,childNode=void 0,toId=void 0,fromId=void 0,otherNodeId=void 0;var childKeys=(0,_keys2[\"default\"])(childNodesObj);var createEdges=[];for(var i=0;i<childKeys.length;i++){childNodeId=childKeys[i];childNode=childNodesObj[childNodeId];for(var j=0;j<childNode.edges.length;j++){edge=childNode.edges[j];if(this.clusteredEdges[edge.id]===undefined){if(edge.toId==edge.fromId){childEdgesObj[edge.id]=edge}else{if(edge.toId==childNodeId){toId=clusterNodeProperties.id;fromId=edge.fromId;otherNodeId=fromId}else{toId=edge.toId;fromId=clusterNodeProperties.id;otherNodeId=toId}}if(childNodesObj[otherNodeId]===undefined){createEdges.push({edge:edge,fromId:fromId,toId:toId})}}}}var newEdges=[];var getNewEdge=function getNewEdge(createdEdge){for(var _j2=0;_j2<newEdges.length;_j2++){var newEdge=newEdges[_j2];var matchToDirection=createdEdge.fromId===newEdge.fromId&&createdEdge.toId===newEdge.toId;var matchFromDirection=createdEdge.fromId===newEdge.toId&&createdEdge.toId===newEdge.fromId;if(matchToDirection||matchFromDirection){return newEdge}}return null};for(var _j3=0;_j3<createEdges.length;_j3++){var createdEdge=createEdges[_j3];var _edge=createdEdge.edge;var newEdge=getNewEdge(createdEdge);if(newEdge===null){newEdge=this._createClusteredEdge(createdEdge.fromId,createdEdge.toId,_edge,clusterEdgeProperties);newEdges.push(newEdge)}else{newEdge.clusteringEdgeReplacingIds.push(_edge.id)}this.body.edges[_edge.id].edgeReplacedById=newEdge.id;this._backupEdgeOptions(_edge);_edge.setOptions({physics:false})}}},{key:\"_checkOptions\",value:function _checkOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(options.clusterEdgeProperties===undefined){options.clusterEdgeProperties={}}if(options.clusterNodeProperties===undefined){options.clusterNodeProperties={}}return options}},{key:\"_cluster\",value:function _cluster(childNodesObj,childEdgesObj,options){var refreshData=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var tmpNodesToRemove=[];for(var _nodeId in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId)){if(this.clusteredNodes[_nodeId]!==undefined){tmpNodesToRemove.push(_nodeId)}}}for(var n=0;n<tmpNodesToRemove.length;++n){delete childNodesObj[tmpNodesToRemove[n]]}if((0,_keys2[\"default\"])(childNodesObj).length==0){return}if((0,_keys2[\"default\"])(childNodesObj).length==1&&options.clusterNodeProperties.allowSingleNodeCluster!=true){return}var clusterNodeProperties=util.deepExtend({},options.clusterNodeProperties);if(options.processProperties!==undefined){var childNodesOptions=[];for(var _nodeId2 in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId2)){var clonedOptions=NetworkUtil.cloneOptions(childNodesObj[_nodeId2]);childNodesOptions.push(clonedOptions)}}var childEdgesOptions=[];for(var edgeId in childEdgesObj){if(childEdgesObj.hasOwnProperty(edgeId)){if(edgeId.substr(0,12)!==\"clusterEdge:\"){var _clonedOptions=NetworkUtil.cloneOptions(childEdgesObj[edgeId],\"edge\");childEdgesOptions.push(_clonedOptions)}}}clusterNodeProperties=options.processProperties(clusterNodeProperties,childNodesOptions,childEdgesOptions);if(!clusterNodeProperties){throw new Error(\"The processProperties function does not return properties!\")}}if(clusterNodeProperties.id===undefined){clusterNodeProperties.id=\"cluster:\"+util.randomUUID()}var clusterId=clusterNodeProperties.id;if(clusterNodeProperties.label===undefined){clusterNodeProperties.label=\"cluster\"}var pos=undefined;if(clusterNodeProperties.x===undefined){pos=this._getClusterPosition(childNodesObj);clusterNodeProperties.x=pos.x}if(clusterNodeProperties.y===undefined){if(pos===undefined){pos=this._getClusterPosition(childNodesObj)}clusterNodeProperties.y=pos.y}clusterNodeProperties.id=clusterId;var clusterNode=this.body.functions.createNode(clusterNodeProperties,Cluster);clusterNode.containedNodes=childNodesObj;clusterNode.containedEdges=childEdgesObj;clusterNode.clusterEdgeProperties=options.clusterEdgeProperties;this.body.nodes[clusterNodeProperties.id]=clusterNode;this._clusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,options.clusterEdgeProperties);clusterNodeProperties.id=undefined;if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"_backupEdgeOptions\",value:function _backupEdgeOptions(edge){if(this.clusteredEdges[edge.id]===undefined){this.clusteredEdges[edge.id]={physics:edge.options.physics}}}},{key:\"_restoreEdge\",value:function _restoreEdge(edge){var originalOptions=this.clusteredEdges[edge.id];if(originalOptions!==undefined){edge.setOptions({physics:originalOptions.physics});delete this.clusteredEdges[edge.id]}}},{key:\"isCluster\",value:function isCluster(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].isCluster===true}else{console.log(\"Node does not exist.\");return false}}},{key:\"_getClusterPosition\",value:function _getClusterPosition(childNodesObj){var childKeys=(0,_keys2[\"default\"])(childNodesObj);var minX=childNodesObj[childKeys[0]].x;var maxX=childNodesObj[childKeys[0]].x;var minY=childNodesObj[childKeys[0]].y;var maxY=childNodesObj[childKeys[0]].y;var node=void 0;for(var i=1;i<childKeys.length;i++){node=childNodesObj[childKeys[i]];minX=node.x<minX?node.x:minX;maxX=node.x>maxX?node.x:maxX\n;minY=node.y<minY?node.y:minY;maxY=node.y>maxY?node.y:maxY}return{x:.5*(minX+maxX),y:.5*(minY+maxY)}}},{key:\"openCluster\",value:function openCluster(clusterNodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(clusterNodeId===undefined){throw new Error(\"No clusterNodeId supplied to openCluster.\")}var clusterNode=this.body.nodes[clusterNodeId];if(clusterNode===undefined){throw new Error(\"The clusterNodeId supplied to openCluster does not exist.\")}if(clusterNode.isCluster!==true||clusterNode.containedNodes===undefined||clusterNode.containedEdges===undefined){throw new Error(\"The node:\"+clusterNodeId+\" is not a valid cluster.\")}var stack=this.findNode(clusterNodeId);var parentIndex=stack.indexOf(clusterNodeId)-1;if(parentIndex>=0){var parentClusterNodeId=stack[parentIndex];var parentClusterNode=this.body.nodes[parentClusterNodeId];parentClusterNode._openChildCluster(clusterNodeId);delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}return}var containedNodes=clusterNode.containedNodes;var containedEdges=clusterNode.containedEdges;if(options!==undefined&&options.releaseFunction!==undefined&&typeof options.releaseFunction===\"function\"){var positions={};var clusterPosition={x:clusterNode.x,y:clusterNode.y};for(var _nodeId3 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId3)){var containedNode=this.body.nodes[_nodeId3];positions[_nodeId3]={x:containedNode.x,y:containedNode.y}}}var newPositions=options.releaseFunction(clusterPosition,positions);for(var _nodeId4 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId4)){var _containedNode=this.body.nodes[_nodeId4];if(newPositions[_nodeId4]!==undefined){_containedNode.x=newPositions[_nodeId4].x===undefined?clusterNode.x:newPositions[_nodeId4].x;_containedNode.y=newPositions[_nodeId4].y===undefined?clusterNode.y:newPositions[_nodeId4].y}}}}else{util.forEach(containedNodes,function(containedNode){if(containedNode.options.fixed.x===false){containedNode.x=clusterNode.x}if(containedNode.options.fixed.y===false){containedNode.y=clusterNode.y}})}for(var _nodeId5 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId5)){var _containedNode2=this.body.nodes[_nodeId5];_containedNode2.vx=clusterNode.vx;_containedNode2.vy=clusterNode.vy;_containedNode2.setOptions({physics:true});delete this.clusteredNodes[_nodeId5]}}var edgesToBeDeleted=[];for(var i=0;i<clusterNode.edges.length;i++){edgesToBeDeleted.push(clusterNode.edges[i])}for(var _i2=0;_i2<edgesToBeDeleted.length;_i2++){var edge=edgesToBeDeleted[_i2];var otherNodeId=this._getConnectedId(edge,clusterNodeId);var otherNode=this.clusteredNodes[otherNodeId];for(var j=0;j<edge.clusteringEdgeReplacingIds.length;j++){var transferId=edge.clusteringEdgeReplacingIds[j];var transferEdge=this.body.edges[transferId];if(transferEdge===undefined)continue;if(otherNode!==undefined){var otherCluster=this.body.nodes[otherNode.clusterId];otherCluster.containedEdges[transferEdge.id]=transferEdge;delete containedEdges[transferEdge.id];var fromId=transferEdge.fromId;var toId=transferEdge.toId;if(transferEdge.toId==otherNodeId){toId=otherNode.clusterId}else{fromId=otherNode.clusterId}this._createClusteredEdge(fromId,toId,transferEdge,otherCluster.clusterEdgeProperties,{hidden:false,physics:true})}else{this._restoreEdge(transferEdge)}}edge.remove()}for(var edgeId in containedEdges){if(containedEdges.hasOwnProperty(edgeId)){this._restoreEdge(containedEdges[edgeId])}}delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"getNodesInCluster\",value:function getNodesInCluster(clusterId){var nodesArray=[];if(this.isCluster(clusterId)===true){var containedNodes=this.body.nodes[clusterId].containedNodes;for(var _nodeId6 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId6)){nodesArray.push(this.body.nodes[_nodeId6].id)}}}return nodesArray}},{key:\"findNode\",value:function findNode(nodeId){var stack=[];var max=100;var counter=0;var node=void 0;while(this.clusteredNodes[nodeId]!==undefined&&counter<max){node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);nodeId=this.clusteredNodes[nodeId].clusterId;counter++}node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);stack.reverse();return stack}},{key:\"updateClusteredNode\",value:function updateClusteredNode(clusteredNodeId,newOptions){if(clusteredNodeId===undefined){throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateClusteredNode.\")}if(this.body.nodes[clusteredNodeId]===undefined){throw new Error(\"The clusteredNodeId supplied to updateClusteredNode does not exist.\")}this.body.nodes[clusteredNodeId].setOptions(newOptions);this.body.emitter.emit(\"_dataChanged\")}},{key:\"updateEdge\",value:function updateEdge(startEdgeId,newOptions){if(startEdgeId===undefined){throw new Error(\"No startEdgeId supplied to updateEdge.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateEdge.\")}if(this.body.edges[startEdgeId]===undefined){throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\")}var allEdgeIds=this.getClusteredEdges(startEdgeId);for(var i=0;i<allEdgeIds.length;i++){var edge=this.body.edges[allEdgeIds[i]];edge.setOptions(newOptions)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"getClusteredEdges\",value:function getClusteredEdges(edgeId){var stack=[];var max=100;var counter=0;while(edgeId!==undefined&&this.body.edges[edgeId]!==undefined&&counter<max){stack.push(this.body.edges[edgeId].id);edgeId=this.body.edges[edgeId].edgeReplacedById;counter++}stack.reverse();return stack}},{key:\"getBaseEdge\",value:function getBaseEdge(clusteredEdgeId){return this.getBaseEdges(clusteredEdgeId)[0]}},{key:\"getBaseEdges\",value:function getBaseEdges(clusteredEdgeId){var IdsToHandle=[clusteredEdgeId];var doneIds=[];var foundIds=[];var max=100;var counter=0;while(IdsToHandle.length>0&&counter<max){var nextId=IdsToHandle.pop();if(nextId===undefined)continue;var nextEdge=this.body.edges[nextId];if(nextEdge===undefined)continue;counter++;var replacingIds=nextEdge.clusteringEdgeReplacingIds;if(replacingIds===undefined){foundIds.push(nextId)}else{for(var i=0;i<replacingIds.length;++i){var replacingId=replacingIds[i];if(IdsToHandle.indexOf(replacingIds)!==-1||doneIds.indexOf(replacingIds)!==-1){continue}IdsToHandle.push(replacingId)}}doneIds.push(nextId)}return foundIds}},{key:\"_getConnectedId\",value:function _getConnectedId(edge,nodeId){if(edge.toId!=nodeId){return edge.toId}else if(edge.fromId!=nodeId){return edge.fromId}else{return edge.fromId}}},{key:\"_getHubSize\",value:function _getHubSize(){var average=0;var averageSquared=0;var hubCounter=0;var largestHub=0;for(var i=0;i<this.body.nodeIndices.length;i++){var _node=this.body.nodes[this.body.nodeIndices[i]];if(_node.edges.length>largestHub){largestHub=_node.edges.length}average+=_node.edges.length;averageSquared+=Math.pow(_node.edges.length,2);hubCounter+=1}average=average/hubCounter;averageSquared=averageSquared/hubCounter;var variance=averageSquared-Math.pow(average,2);var standardDeviation=Math.sqrt(variance);var hubThreshold=Math.floor(average+2*standardDeviation);if(hubThreshold>largestHub){hubThreshold=largestHub}return hubThreshold}},{key:\"_createClusteredEdge\",value:function _createClusteredEdge(fromId,toId,baseEdge,clusterEdgeProperties,extraOptions){var clonedOptions=NetworkUtil.cloneOptions(baseEdge,\"edge\");util.deepExtend(clonedOptions,clusterEdgeProperties);clonedOptions.from=fromId;clonedOptions.to=toId;clonedOptions.id=\"clusterEdge:\"+util.randomUUID();if(extraOptions!==undefined){util.deepExtend(clonedOptions,extraOptions)}var newEdge=this.body.functions.createEdge(clonedOptions);newEdge.clusteringEdgeReplacingIds=[baseEdge.id];newEdge.connect();this.body.edges[newEdge.id]=newEdge;return newEdge}},{key:\"_clusterEdges\",value:function _clusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties){if(childEdges instanceof Edge){var edge=childEdges;var obj={};obj[edge.id]=edge;childEdges=obj}if(childNodes instanceof Node){var _node2=childNodes;var _obj={};_obj[_node2.id]=_node2;childNodes=_obj}if(clusterNode===undefined||clusterNode===null){throw new Error(\"_clusterEdges: parameter clusterNode required\")}if(clusterEdgeProperties===undefined){clusterEdgeProperties=clusterNode.clusterEdgeProperties}this._createClusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties);for(var edgeId in childEdges){if(childEdges.hasOwnProperty(edgeId)){if(this.body.edges[edgeId]!==undefined){var _edge2=this.body.edges[edgeId];this._backupEdgeOptions(_edge2);_edge2.setOptions({physics:false})}}}for(var _nodeId7 in childNodes){if(childNodes.hasOwnProperty(_nodeId7)){this.clusteredNodes[_nodeId7]={clusterId:clusterNode.id,node:this.body.nodes[_nodeId7]};this.body.nodes[_nodeId7].setOptions({physics:false})}}}},{key:\"_getClusterNodeForNode\",value:function _getClusterNodeForNode(nodeId){if(nodeId===undefined)return undefined;var clusteredNode=this.clusteredNodes[nodeId];if(clusteredNode===undefined)return undefined;var clusterId=clusteredNode.clusterId;if(clusterId===undefined)return undefined;return this.body.nodes[clusterId]}},{key:\"_filter\",value:function _filter(arr,callback){var ret=[];util.forEach(arr,function(item){if(callback(item)){ret.push(item)}});return ret}},{key:\"_updateState\",value:function _updateState(){var _this4=this;var nodeId=void 0;var deletedNodeIds=[];var deletedEdgeIds=[];var eachClusterNode=function eachClusterNode(callback){util.forEach(_this4.body.nodes,function(node){if(node.isCluster===true){callback(node)}})};for(nodeId in this.clusteredNodes){if(!this.clusteredNodes.hasOwnProperty(nodeId))continue;var _node3=this.body.nodes[nodeId];if(_node3===undefined){deletedNodeIds.push(nodeId)}}eachClusterNode(function(clusterNode){for(var n=0;n<deletedNodeIds.length;n++){delete clusterNode.containedNodes[deletedNodeIds[n]]}});for(var n=0;n<deletedNodeIds.length;n++){delete this.clusteredNodes[deletedNodeIds[n]]}util.forEach(this.clusteredEdges,function(edgeId){var edge=_this4.body.edges[edgeId];if(edge===undefined||!edge.endPointsValid()){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(clusterNode.containedEdges,function(edge,edgeId){if(!edge.endPointsValid()&&deletedEdgeIds.indexOf(edgeId)===-1){deletedEdgeIds.push(edgeId)}})});util.forEach(this.body.edges,function(edge,edgeId){var isValid=true;var replacedIds=edge.clusteringEdgeReplacingIds;if(replacedIds!==undefined){var numValid=0;util.forEach(replacedIds,function(containedEdgeId){var containedEdge=_this4.body.edges[containedEdgeId];if(containedEdge!==undefined&&containedEdge.endPointsValid()){numValid+=1}});isValid=numValid>0}if(!edge.endPointsValid()||!isValid){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(deletedEdgeIds,function(deletedEdgeId){delete clusterNode.containedEdges[deletedEdgeId];util.forEach(clusterNode.edges,function(edge,m){if(edge.id===deletedEdgeId){clusterNode.edges[m]=null;return}edge.clusteringEdgeReplacingIds=_this4._filter(edge.clusteringEdgeReplacingIds,function(id){return deletedEdgeIds.indexOf(id)===-1})});clusterNode.edges=_this4._filter(clusterNode.edges,function(item){return item!==null})})});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.clusteredEdges[edgeId]});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.body.edges[edgeId]});var ids=(0,_keys2[\"default\"])(this.body.edges);util.forEach(ids,function(edgeId){var edge=_this4.body.edges[edgeId];var shouldBeClustered=_this4._isClusteredNode(edge.fromId)||_this4._isClusteredNode(edge.toId);if(shouldBeClustered===_this4._isClusteredEdge(edge.id)){return}if(shouldBeClustered){var clusterFrom=_this4._getClusterNodeForNode(edge.fromId);if(clusterFrom!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.fromId],edge,clusterFrom)}var clusterTo=_this4._getClusterNodeForNode(edge.toId);if(clusterTo!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.toId],edge,clusterTo)}}else{throw new Error(\"remove edge from clustering not implemented!\")}});var changed=false;var continueLoop=true;var _loop2=function _loop2(){var clustersToOpen=[];eachClusterNode(function(clusterNode){var numNodes=(0,_keys2[\"default\"])(clusterNode.containedNodes).length;var allowSingle=clusterNode.options.allowSingleNodeCluster===true;if(allowSingle&&numNodes<1||!allowSingle&&numNodes<2){clustersToOpen.push(clusterNode.id)}});for(var _n=0;_n<clustersToOpen.length;++_n){_this4.openCluster(clustersToOpen[_n],{},false)}continueLoop=clustersToOpen.length>0;changed=changed||continueLoop};while(continueLoop){_loop2()}if(changed){this._updateState()}}},{key:\"_isClusteredNode\",value:function _isClusteredNode(nodeId){return this.clusteredNodes[nodeId]!==undefined}},{key:\"_isClusteredEdge\",value:function _isClusteredEdge(edgeId){return this.clusteredEdges[edgeId]!==undefined}}]);return ClusterEngine}();exports[\"default\"]=ClusterEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Node=__webpack_require__(47)[\"default\"];var Cluster=function(_Node){(0,_inherits3[\"default\"])(Cluster,_Node);function Cluster(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Cluster);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Cluster.__proto__||(0,_getPrototypeOf2[\"default\"])(Cluster)).call(this,options,body,imagelist,grouplist,globalOptions,defaultOptions));_this.isCluster=true;_this.containedNodes={};_this.containedEdges={};return _this}(0,_createClass3[\"default\"])(Cluster,[{key:\"_openChildCluster\",value:function _openChildCluster(childClusterId){var _this2=this;var childCluster=this.body.nodes[childClusterId];if(this.containedNodes[childClusterId]===undefined){throw new Error(\"node with id: \"+childClusterId+\" not in current cluster\")}if(!childCluster.isCluster){throw new Error(\"node with id: \"+childClusterId+\" is not a cluster\")}delete this.containedNodes[childClusterId];util.forEach(childCluster.edges,function(edge){delete _this2.containedEdges[edge.id]});util.forEach(childCluster.containedNodes,function(node,nodeId){_this2.containedNodes[nodeId]=node});childCluster.containedNodes={};util.forEach(childCluster.containedEdges,function(edge,edgeId){_this2.containedEdges[edgeId]=edge});childCluster.containedEdges={};util.forEach(childCluster.edges,function(clusterEdge){util.forEach(_this2.edges,function(parentClusterEdge){var index=parentClusterEdge.clusteringEdgeReplacingIds.indexOf(clusterEdge.id);if(index===-1)return;util.forEach(clusterEdge.clusteringEdgeReplacingIds,function(srcId){parentClusterEdge.clusteringEdgeReplacingIds.push(srcId);_this2.body.edges[srcId].edgeReplacedById=parentClusterEdge.id});parentClusterEdge.clusteringEdgeReplacingIds.splice(index,1)})});childCluster.edges=[]}}]);return Cluster}(Node);exports[\"default\"]=Cluster},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _initRequestAnimationFrame(){var func;if(window!==undefined){func=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame}if(func===undefined){window.requestAnimationFrame=function(callback){callback()}}else{window.requestAnimationFrame=func}}var util=__webpack_require__(2);var CanvasRenderer=function(){function CanvasRenderer(body,canvas){(0,_classCallCheck3[\"default\"])(this,CanvasRenderer);_initRequestAnimationFrame();this.body=body;this.canvas=canvas;this.redrawRequested=false;this.renderTimer=undefined;this.requiresTimeout=true;this.renderingActive=false;this.renderRequests=0;this.allowRedraw=true;this.dragging=false;this.options={};this.defaultOptions={hideEdgesOnDrag:false,hideNodesOnDrag:false};util.extend(this.options,this.defaultOptions);this._determineBrowserMethod();this.bindEventListeners()}(0,_createClass3[\"default\"])(CanvasRenderer,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"dragStart\",function(){_this.dragging=true});this.body.emitter.on(\"dragEnd\",function(){_this.dragging=false});this.body.emitter.on(\"_resizeNodes\",function(){_this._resizeNodes()});this.body.emitter.on(\"_redraw\",function(){if(_this.renderingActive===false){_this._redraw()}});this.body.emitter.on(\"_blockRedraw\",function(){_this.allowRedraw=false});this.body.emitter.on(\"_allowRedraw\",function(){_this.allowRedraw=true;_this.redrawRequested=false});this.body.emitter.on(\"_requestRedraw\",this._requestRedraw.bind(this));this.body.emitter.on(\"_startRendering\",function(){_this.renderRequests+=1;_this.renderingActive=true;_this._startRendering()});this.body.emitter.on(\"_stopRendering\",function(){_this.renderRequests-=1;_this.renderingActive=_this.renderRequests>0;_this.renderTimer=undefined});this.body.emitter.on(\"destroy\",function(){_this.renderRequests=0;_this.allowRedraw=false;_this.renderingActive=false;if(_this.requiresTimeout===true){clearTimeout(_this.renderTimer)}else{window.cancelAnimationFrame(_this.renderTimer)}_this.body.emitter.off()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"_requestNextFrame\",value:function _requestNextFrame(callback,delay){if(typeof window===\"undefined\")return;var timer=void 0;var myWindow=window;if(this.requiresTimeout===true){timer=myWindow.setTimeout(callback,delay)}else{if(myWindow.requestAnimationFrame){timer=myWindow.requestAnimationFrame(callback)}}return timer}},{key:\"_startRendering\",value:function _startRendering(){if(this.renderingActive===true){if(this.renderTimer===undefined){this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval)}}}},{key:\"_renderStep\",value:function _renderStep(){if(this.renderingActive===true){this.renderTimer=undefined;if(this.requiresTimeout===true){this._startRendering()}this._redraw();if(this.requiresTimeout===false){this._startRendering()}}}},{key:\"redraw\",value:function redraw(){this.body.emitter.emit(\"setSize\");this._redraw()}},{key:\"_requestRedraw\",value:function _requestRedraw(){var _this2=this;if(this.redrawRequested!==true&&this.renderingActive===false&&this.allowRedraw===true){this.redrawRequested=true;this._requestNextFrame(function(){_this2._redraw(false)},0)}}},{key:\"_redraw\",value:function _redraw(){var hidden=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.allowRedraw===true){this.body.emitter.emit(\"initRedraw\");this.redrawRequested=false;if(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0){this.canvas.setSize()}this.canvas.setTransform();var ctx=this.canvas.getContext();var w=this.canvas.frame.canvas.clientWidth;var h=this.canvas.frame.canvas.clientHeight;ctx.clearRect(0,0,w,h);if(this.canvas.frame.clientWidth===0){return}ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);ctx.beginPath();this.body.emitter.emit(\"beforeDrawing\",ctx);ctx.closePath();if(hidden===false){if(this.dragging===false||this.dragging===true&&this.options.hideEdgesOnDrag===false){this._drawEdges(ctx)}}if(this.dragging===false||this.dragging===true&&this.options.hideNodesOnDrag===false){this._drawNodes(ctx,hidden)}ctx.beginPath();this.body.emitter.emit(\"afterDrawing\",ctx);ctx.closePath();ctx.restore();if(hidden===true){ctx.clearRect(0,0,w,h)}}}},{key:\"_resizeNodes\",value:function _resizeNodes(){this.canvas.setTransform();var ctx=this.canvas.getContext();ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);var nodes=this.body.nodes;var node=void 0;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){node=nodes[nodeId];node.resize(ctx);node.updateBoundingBox(ctx,node.selected)}}ctx.restore()}},{key:\"_drawNodes\",value:function _drawNodes(ctx){var alwaysShow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var nodes=this.body.nodes;var nodeIndices=this.body.nodeIndices;var node=void 0;var selected=[];var margin=20;var topLeft=this.canvas.DOMtoCanvas({x:-margin,y:-margin});var bottomRight=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+margin,y:this.canvas.frame.canvas.clientHeight+margin});var viewableArea={top:topLeft.y,left:topLeft.x,bottom:bottomRight.y,right:bottomRight.x};for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isSelected()){selected.push(nodeIndices[i])}else{if(alwaysShow===true){node.draw(ctx)}else if(node.isBoundingBoxOverlappingWith(viewableArea)===true){node.draw(ctx)}else{node.updateBoundingBox(ctx,node.selected)}}}for(var _i=0;_i<selected.length;_i++){node=nodes[selected[_i]];node.draw(ctx)}}},{key:\"_drawEdges\",value:function _drawEdges(ctx){var edges=this.body.edges;var edgeIndices=this.body.edgeIndices;var edge=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true){edge.draw(ctx)}}}},{key:\"_determineBrowserMethod\",value:function _determineBrowserMethod(){if(typeof window!==\"undefined\"){var browserType=navigator.userAgent.toLowerCase();this.requiresTimeout=false;if(browserType.indexOf(\"msie 9.0\")!=-1){this.requiresTimeout=true}else if(browserType.indexOf(\"safari\")!=-1){if(browserType.indexOf(\"chrome\")<=-1){this.requiresTimeout=true}}}else{this.requiresTimeout=true}}}]);return CanvasRenderer}();exports[\"default\"]=CanvasRenderer},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var Canvas=function(){function Canvas(body){(0,_classCallCheck3[\"default\"])(this,Canvas);this.body=body;this.pixelRatio=1;this.resizeTimer=undefined;this.resizeFunction=this._onResize.bind(this);this.cameraState={};this.initialized=false;this.canvasViewCenter={};this.options={};this.defaultOptions={autoResize:true,height:\"100%\",width:\"100%\"};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(Canvas,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.once(\"resize\",function(obj){if(obj.width!==0){_this.body.view.translation.x=obj.width*.5}if(obj.height!==0){_this.body.view.translation.y=obj.height*.5}});this.body.emitter.on(\"setSize\",this.setSize.bind(this));this.body.emitter.on(\"destroy\",function(){_this.hammerFrame.destroy();_this.hammer.destroy();_this._cleanUp()})}},{key:\"setOptions\",value:function setOptions(options){var _this2=this;if(options!==undefined){var fields=[\"width\",\"height\",\"autoResize\"];util.selectiveDeepExtend(fields,this.options,options)}if(this.options.autoResize===true){this._cleanUp();this.resizeTimer=setInterval(function(){var changed=_this2.setSize();if(changed===true){_this2.body.emitter.emit(\"_requestRedraw\")}},1e3);this.resizeFunction=this._onResize.bind(this);util.addEventListener(window,\"resize\",this.resizeFunction)}}},{key:\"_cleanUp\",value:function _cleanUp(){if(this.resizeTimer!==undefined){clearInterval(this.resizeTimer)}util.removeEventListener(window,\"resize\",this.resizeFunction);this.resizeFunction=undefined}},{key:\"_onResize\",value:function _onResize(){this.setSize();this.body.emitter.emit(\"_redraw\")}},{key:\"_getCameraState\",value:function _getCameraState(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.pixelRatio;if(this.initialized===true){this.cameraState.previousWidth=this.frame.canvas.width/pixelRatio;this.cameraState.previousHeight=this.frame.canvas.height/pixelRatio;this.cameraState.scale=this.body.view.scale;this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/pixelRatio,y:.5*this.frame.canvas.height/pixelRatio})}}},{key:\"_setCameraState\",value:function _setCameraState(){if(this.cameraState.scale!==undefined&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0){var widthRatio=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth;var heightRatio=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;var newScale=this.cameraState.scale;if(widthRatio!=1&&heightRatio!=1){newScale=this.cameraState.scale*.5*(widthRatio+heightRatio)}else if(widthRatio!=1){newScale=this.cameraState.scale*widthRatio}else if(heightRatio!=1){newScale=this.cameraState.scale*heightRatio}this.body.view.scale=newScale;var currentViewCenter=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight});var distanceFromCenter={x:currentViewCenter.x-this.cameraState.position.x,y:currentViewCenter.y-this.cameraState.position.y};this.body.view.translation.x+=distanceFromCenter.x*this.body.view.scale;this.body.view.translation.y+=distanceFromCenter.y*this.body.view.scale}}},{key:\"_prepareValue\",value:function _prepareValue(value){if(typeof value===\"number\"){return value+\"px\"}else if(typeof value===\"string\"){if(value.indexOf(\"%\")!==-1||value.indexOf(\"px\")!==-1){return value}else if(value.indexOf(\"%\")===-1){return value+\"px\"}}throw new Error(\"Could not use the value supplied for width or height:\"+value)}},{key:\"_create\",value:function _create(){while(this.body.container.hasChildNodes()){this.body.container.removeChild(this.body.container.firstChild)}this.frame=document.createElement(\"div\");this.frame.className=\"vis-network\";this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.tabIndex=900;this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);if(!this.frame.canvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}else{this._setPixelRatio();this.setTransform()}this.body.container.appendChild(this.frame);this.body.view.scale=1;this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight};this._bindHammer()}},{key:\"_bindHammer\",value:function _bindHammer(){var _this3=this;if(this.hammer!==undefined){this.hammer.destroy()}this.drag={};this.pinch={};this.hammer=new Hammer(this.frame.canvas);this.hammer.get(\"pinch\").set({enable:true});this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_ALL});hammerUtil.onTouch(this.hammer,function(event){_this3.body.eventListeners.onTouch(event)});this.hammer.on(\"tap\",function(event){_this3.body.eventListeners.onTap(event)});this.hammer.on(\"doubletap\",function(event){_this3.body.eventListeners.onDoubleTap(event)});this.hammer.on(\"press\",function(event){_this3.body.eventListeners.onHold(event)});this.hammer.on(\"panstart\",function(event){_this3.body.eventListeners.onDragStart(event)});this.hammer.on(\"panmove\",function(event){_this3.body.eventListeners.onDrag(event)});this.hammer.on(\"panend\",function(event){_this3.body.eventListeners.onDragEnd(event)});this.hammer.on(\"pinch\",function(event){_this3.body.eventListeners.onPinch(event)});this.frame.canvas.addEventListener(\"mousewheel\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"DOMMouseScroll\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"mousemove\",function(event){_this3.body.eventListeners.onMouseMove(event)});this.frame.canvas.addEventListener(\"contextmenu\",function(event){_this3.body.eventListeners.onContext(event)});this.hammerFrame=new Hammer(this.frame);hammerUtil.onRelease(this.hammerFrame,function(event){_this3.body.eventListeners.onRelease(event)})}},{key:\"setSize\",value:function setSize(){var width=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.width;var height=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.height;width=this._prepareValue(width);height=this._prepareValue(height);var emitEvent=false;var oldWidth=this.frame.canvas.width;var oldHeight=this.frame.canvas.height;var previousRatio=this.pixelRatio;this._setPixelRatio();if(width!=this.options.width||height!=this.options.height||this.frame.style.width!=width||this.frame.style.height!=height){this._getCameraState(previousRatio);this.frame.style.width=width;this.frame.style.height=height;this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.options.width=width;this.options.height=height;this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight};emitEvent=true}else{var newWidth=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);var newHeight=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);if(this.frame.canvas.width!==newWidth||this.frame.canvas.height!==newHeight){this._getCameraState(previousRatio)}if(this.frame.canvas.width!==newWidth){this.frame.canvas.width=newWidth;emitEvent=true}if(this.frame.canvas.height!==newHeight){this.frame.canvas.height=newHeight;emitEvent=true}}if(emitEvent===true){this.body.emitter.emit(\"resize\",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(oldWidth/this.pixelRatio),oldHeight:Math.round(oldHeight/this.pixelRatio)});this._setCameraState()}this.initialized=true;return emitEvent}},{key:\"getContext\",value:function getContext(){return this.frame.canvas.getContext(\"2d\")}},{key:\"_determinePixelRatio\",value:function _determinePixelRatio(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}var numerator=1;if(typeof window!==\"undefined\"){numerator=window.devicePixelRatio||1}var denominator=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;return numerator/denominator}},{key:\"_setPixelRatio\",value:function _setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}},{key:\"setTransform\",value:function setTransform(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:\"_XconvertDOMtoCanvas\",value:function _XconvertDOMtoCanvas(x){return(x-this.body.view.translation.x)/this.body.view.scale}},{\nkey:\"_XconvertCanvasToDOM\",value:function _XconvertCanvasToDOM(x){return x*this.body.view.scale+this.body.view.translation.x}},{key:\"_YconvertDOMtoCanvas\",value:function _YconvertDOMtoCanvas(y){return(y-this.body.view.translation.y)/this.body.view.scale}},{key:\"_YconvertCanvasToDOM\",value:function _YconvertCanvasToDOM(y){return y*this.body.view.scale+this.body.view.translation.y}},{key:\"canvasToDOM\",value:function canvasToDOM(pos){return{x:this._XconvertCanvasToDOM(pos.x),y:this._YconvertCanvasToDOM(pos.y)}}},{key:\"DOMtoCanvas\",value:function DOMtoCanvas(pos){return{x:this._XconvertDOMtoCanvas(pos.x),y:this._YconvertDOMtoCanvas(pos.y)}}}]);return Canvas}();exports[\"default\"]=Canvas},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var View=function(){function View(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,View);this.body=body;this.canvas=canvas;this.animationSpeed=1/this.renderRefreshRate;this.animationEasingFunction=\"easeInOutQuint\";this.easingTime=0;this.sourceScale=0;this.targetScale=0;this.sourceTranslation=0;this.targetTranslation=0;this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined;this.touchTime=0;this.viewFunction=undefined;this.body.emitter.on(\"fit\",this.fit.bind(this));this.body.emitter.on(\"animationFinished\",function(){_this.body.emitter.emit(\"_stopRendering\")});this.body.emitter.on(\"unlockNode\",this.releaseNode.bind(this))}(0,_createClass3[\"default\"])(View,[{key:\"setOptions\",value:function setOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.options=options}},{key:\"fit\",value:function fit(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{nodes:[]};var initialZoom=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var range=void 0;var zoomLevel=void 0;if(options.nodes===undefined||options.nodes.length===0){options.nodes=this.body.nodeIndices}if(initialZoom===true){var positionDefined=0;for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(node.predefinedPosition===true){positionDefined+=1}}}if(positionDefined>.5*this.body.nodeIndices.length){this.fit(options,false);return}range=NetworkUtil.getRange(this.body.nodes,options.nodes);var numberOfNodes=this.body.nodeIndices.length;zoomLevel=12.662/(numberOfNodes+7.4147)+.0964822;var factor=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);zoomLevel*=factor}else{this.body.emitter.emit(\"_resizeNodes\");range=NetworkUtil.getRange(this.body.nodes,options.nodes);var xDistance=Math.abs(range.maxX-range.minX)*1.1;var yDistance=Math.abs(range.maxY-range.minY)*1.1;var xZoomLevel=this.canvas.frame.canvas.clientWidth/xDistance;var yZoomLevel=this.canvas.frame.canvas.clientHeight/yDistance;zoomLevel=xZoomLevel<=yZoomLevel?xZoomLevel:yZoomLevel}if(zoomLevel>1){zoomLevel=1}else if(zoomLevel===0){zoomLevel=1}var center=NetworkUtil.findCenter(range);var animationOptions={position:center,scale:zoomLevel,animation:options.animation};this.moveTo(animationOptions)}},{key:\"focus\",value:function focus(nodeId){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.body.nodes[nodeId]!==undefined){var nodePosition={x:this.body.nodes[nodeId].x,y:this.body.nodes[nodeId].y};options.position=nodePosition;options.lockedOnNode=nodeId;this.moveTo(options)}else{console.log(\"Node: \"+nodeId+\" cannot be found.\")}}},{key:\"moveTo\",value:function moveTo(options){if(options===undefined){options={};return}if(options.offset===undefined){options.offset={x:0,y:0}}if(options.offset.x===undefined){options.offset.x=0}if(options.offset.y===undefined){options.offset.y=0}if(options.scale===undefined){options.scale=this.body.view.scale}if(options.position===undefined){options.position=this.getViewPosition()}if(options.animation===undefined){options.animation={duration:0}}if(options.animation===false){options.animation={duration:0}}if(options.animation===true){options.animation={}}if(options.animation.duration===undefined){options.animation.duration=1e3}if(options.animation.easingFunction===undefined){options.animation.easingFunction=\"easeInOutQuad\"}this.animateView(options)}},{key:\"animateView\",value:function animateView(options){if(options===undefined){return}this.animationEasingFunction=options.animation.easingFunction;this.releaseNode();if(options.locked===true){this.lockedOnNodeId=options.lockedOnNode;this.lockedOnNodeOffset=options.offset}if(this.easingTime!=0){this._transitionRedraw(true)}this.sourceScale=this.body.view.scale;this.sourceTranslation=this.body.view.translation;this.targetScale=options.scale;this.body.view.scale=this.targetScale;var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-options.position.x,y:viewCenter.y-options.position.y};this.targetTranslation={x:this.sourceTranslation.x+distanceFromCenter.x*this.targetScale+options.offset.x,y:this.sourceTranslation.y+distanceFromCenter.y*this.targetScale+options.offset.y};if(options.animation.duration===0){if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}else{this.body.view.scale=this.targetScale;this.body.view.translation=this.targetTranslation;this.body.emitter.emit(\"_requestRedraw\")}}else{this.animationSpeed=1/(60*options.animation.duration*.001)||1/60;this.animationEasingFunction=options.animation.easingFunction;this.viewFunction=this._transitionRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}},{key:\"_lockedRedraw\",value:function _lockedRedraw(){var nodePosition={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y};var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-nodePosition.x,y:viewCenter.y-nodePosition.y};var sourceTranslation=this.body.view.translation;var targetTranslation={x:sourceTranslation.x+distanceFromCenter.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:sourceTranslation.y+distanceFromCenter.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=targetTranslation}},{key:\"releaseNode\",value:function releaseNode(){if(this.lockedOnNodeId!==undefined&&this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined}}},{key:\"_transitionRedraw\",value:function _transitionRedraw(){var finished=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;this.easingTime+=this.animationSpeed;this.easingTime=finished===true?1:this.easingTime;var progress=util.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*progress;this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*progress,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*progress};if(this.easingTime>=1){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.easingTime=0;if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}this.body.emitter.emit(\"animationFinished\")}}},{key:\"getScale\",value:function getScale(){return this.body.view.scale}},{key:\"getViewPosition\",value:function getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]);return View}();exports[\"default\"]=View},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NavigationHandler=__webpack_require__(233)[\"default\"];var Popup=__webpack_require__(104)[\"default\"];var InteractionHandler=function(){function InteractionHandler(body,canvas,selectionHandler){(0,_classCallCheck3[\"default\"])(this,InteractionHandler);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.navigationHandler=new NavigationHandler(body,canvas);this.body.eventListeners.onTap=this.onTap.bind(this);this.body.eventListeners.onTouch=this.onTouch.bind(this);this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this);this.body.eventListeners.onHold=this.onHold.bind(this);this.body.eventListeners.onDragStart=this.onDragStart.bind(this);this.body.eventListeners.onDrag=this.onDrag.bind(this);this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this);this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this);this.body.eventListeners.onPinch=this.onPinch.bind(this);this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this);this.body.eventListeners.onRelease=this.onRelease.bind(this);this.body.eventListeners.onContext=this.onContext.bind(this);this.touchTime=0;this.drag={};this.pinch={};this.popup=undefined;this.popupObj=undefined;this.popupTimer=undefined;this.body.functions.getPointer=this.getPointer.bind(this);this.options={};this.defaultOptions={dragNodes:true,dragView:true,hover:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:true},navigationButtons:false,tooltipDelay:300,zoomView:true};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(InteractionHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"destroy\",function(){clearTimeout(_this.popupTimer);delete _this.body.functions.getPointer})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\",\"keyboard\",\"multiselect\",\"selectable\",\"selectConnectedEdges\"];util.selectiveNotDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"keyboard\");if(options.tooltip){util.extend(this.options.tooltip,options.tooltip);if(options.tooltip.color){this.options.tooltip.color=util.parseColor(options.tooltip.color)}}}this.navigationHandler.setOptions(this.options)}},{key:\"getPointer\",value:function getPointer(touch){return{x:touch.x-util.getAbsoluteLeft(this.canvas.frame.canvas),y:touch.y-util.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:\"onTouch\",value:function onTouch(event){if((new Date).valueOf()-this.touchTime>50){this.drag.pointer=this.getPointer(event.center);this.drag.pinched=false;this.pinch.scale=this.body.view.scale;this.touchTime=(new Date).valueOf()}}},{key:\"onTap\",value:function onTap(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect&&(event.changedPointers[0].ctrlKey||event.changedPointers[0].metaKey);this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer)}},{key:\"onDoubleTap\",value:function onDoubleTap(event){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"doubleClick\",event,pointer)}},{key:\"onHold\",value:function onHold(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect;this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer);this.selectionHandler._generateClickEvent(\"hold\",event,pointer)}},{key:\"onRelease\",value:function onRelease(event){if((new Date).valueOf()-this.touchTime>10){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"release\",event,pointer);this.touchTime=(new Date).valueOf()}}},{key:\"onContext\",value:function onContext(event){var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.selectionHandler._generateClickEvent(\"oncontext\",event,pointer)}},{key:\"checkSelectionChanges\",value:function checkSelectionChanges(pointer,event){var add=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var previousSelection=this.selectionHandler.getSelection();var selected=false;if(add===true){selected=this.selectionHandler.selectAdditionalOnPoint(pointer)}else{selected=this.selectionHandler.selectOnPoint(pointer)}var currentSelection=this.selectionHandler.getSelection();var deselectedItems=this._determineDifference(previousSelection,currentSelection);var selectedItems=this._determineDifference(currentSelection,previousSelection);if(deselectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"deselectEdge\",event,pointer,previousSelection);selected=true}if(deselectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"deselectNode\",event,pointer,previousSelection);selected=true}if(selectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"selectNode\",event,pointer);selected=true}if(selectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"selectEdge\",event,pointer);selected=true}if(selected===true){this.selectionHandler._generateClickEvent(\"select\",event,pointer)}}},{key:\"_determineDifference\",value:function _determineDifference(firstSet,secondSet){var arrayDiff=function arrayDiff(firstArr,secondArr){var result=[];for(var i=0;i<firstArr.length;i++){var value=firstArr[i];if(secondArr.indexOf(value)===-1){result.push(value)}}return result};return{nodes:arrayDiff(firstSet.nodes,secondSet.nodes),edges:arrayDiff(firstSet.edges,secondSet.edges)}}},{key:\"onDragStart\",value:function onDragStart(event){if(this.drag.pointer===undefined){this.onTouch(event)}var node=this.selectionHandler.getNodeAt(this.drag.pointer);this.drag.dragging=true;this.drag.selection=[];this.drag.translation=util.extend({},this.body.view.translation);this.drag.nodeId=undefined;if(node!==undefined&&this.options.dragNodes===true){this.drag.nodeId=node.id;if(node.isSelected()===false){this.selectionHandler.unselectAll();this.selectionHandler.selectObject(node)}this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer);var selection=this.selectionHandler.selectionObj.nodes;for(var nodeId in selection){if(selection.hasOwnProperty(nodeId)){var object=selection[nodeId];var s={id:object.id,node:object,x:object.x,y:object.y,xFixed:object.options.fixed.x,yFixed:object.options.fixed.y};object.options.fixed.x=true;object.options.fixed.y=true;this.drag.selection.push(s)}}}else{this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer,undefined,true)}}},{key:\"onDrag\",value:function onDrag(event){var _this2=this;if(this.drag.pinched===true){return}this.body.emitter.emit(\"unlockNode\");var pointer=this.getPointer(event.center);var selection=this.drag.selection;if(selection&&selection.length&&this.options.dragNodes===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer);var deltaX=pointer.x-this.drag.pointer.x;var deltaY=pointer.y-this.drag.pointer.y;selection.forEach(function(selection){var node=selection.node;if(selection.xFixed===false){node.x=_this2.canvas._XconvertDOMtoCanvas(_this2.canvas._XconvertCanvasToDOM(selection.x)+deltaX)}if(selection.yFixed===false){node.y=_this2.canvas._YconvertDOMtoCanvas(_this2.canvas._YconvertCanvasToDOM(selection.y)+deltaY)}});this.body.emitter.emit(\"startSimulation\")}else{if(this.options.dragView===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer,undefined,true);if(this.drag.pointer===undefined){this.onDragStart(event);return}var diffX=pointer.x-this.drag.pointer.x;var diffY=pointer.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+diffX,y:this.drag.translation.y+diffY};this.body.emitter.emit(\"_requestRedraw\")}}}},{key:\"onDragEnd\",value:function onDragEnd(event){this.drag.dragging=false;var selection=this.drag.selection;if(selection&&selection.length){selection.forEach(function(s){s.node.options.fixed.x=s.xFixed;s.node.options.fixed.y=s.yFixed});this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center));this.body.emitter.emit(\"startSimulation\")}else{this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center),undefined,true);this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"onPinch\",value:function onPinch(event){var pointer=this.getPointer(event.center);this.drag.pinched=true;if(this.pinch[\"scale\"]===undefined){this.pinch.scale=1}var scale=this.pinch.scale*event.scale;this.zoom(scale,pointer)}},{key:\"zoom\",value:function zoom(scale,pointer){if(this.options.zoomView===true){var scaleOld=this.body.view.scale;if(scale<1e-5){scale=1e-5}if(scale>10){scale=10}var preScaleDragPointer=undefined;if(this.drag!==undefined){if(this.drag.dragging===true){preScaleDragPointer=this.canvas.DOMtoCanvas(this.drag.pointer)}}var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*pointer.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*pointer.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};if(preScaleDragPointer!=undefined){var postScaleDragPointer=this.canvas.canvasToDOM(preScaleDragPointer);this.drag.pointer.x=postScaleDragPointer.x;this.drag.pointer.y=postScaleDragPointer.y}this.body.emitter.emit(\"_requestRedraw\");if(scaleOld<scale){this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:pointer})}else{this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:pointer})}}}},{key:\"onMouseWheel\",value:function onMouseWheel(event){if(this.options.zoomView===true){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta!==0){var scale=this.body.view.scale;var zoom=delta/10;if(delta<0){zoom=zoom/(1-zoom)}scale*=1+zoom;var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.zoom(scale,pointer)}event.preventDefault()}}},{key:\"onMouseMove\",value:function onMouseMove(event){var _this3=this;var pointer=this.getPointer({x:event.clientX,y:event.clientY});var popupVisible=false;if(this.popup!==undefined){if(this.popup.hidden===false){this._checkHidePopup(pointer)}if(this.popup.hidden===false){popupVisible=true;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.show()}}if(this.options.keyboard.bindToWindow===false&&this.options.keyboard.enabled===true){this.canvas.frame.focus()}if(popupVisible===false){if(this.popupTimer!==undefined){clearInterval(this.popupTimer);this.popupTimer=undefined}if(!this.drag.dragging){this.popupTimer=setTimeout(function(){return _this3._checkShowPopup(pointer)},this.options.tooltipDelay)}}if(this.options.hover===true){this.selectionHandler.hoverObject(event,pointer)}}},{key:\"_checkShowPopup\",value:function _checkShowPopup(pointer){var x=this.canvas._XconvertDOMtoCanvas(pointer.x);var y=this.canvas._YconvertDOMtoCanvas(pointer.y);var pointerObj={left:x,top:y,right:x,bottom:y};var previousPopupObjId=this.popupObj===undefined?undefined:this.popupObj.id;var nodeUnderCursor=false;var popupType=\"node\";if(this.popupObj===undefined){var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;var node=void 0;var overlappingNodes=[];for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isOverlappingWith(pointerObj)===true){if(node.getTitle()!==undefined){overlappingNodes.push(nodeIndices[i])}}}if(overlappingNodes.length>0){this.popupObj=nodes[overlappingNodes[overlappingNodes.length-1]];nodeUnderCursor=true}}if(this.popupObj===undefined&&nodeUnderCursor===false){var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;var edge=void 0;var overlappingEdges=[];for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.isOverlappingWith(pointerObj)===true){if(edge.connected===true&&edge.getTitle()!==undefined){overlappingEdges.push(edgeIndices[_i])}}}if(overlappingEdges.length>0){this.popupObj=edges[overlappingEdges[overlappingEdges.length-1]];popupType=\"edge\"}}if(this.popupObj!==undefined){if(this.popupObj.id!==previousPopupObjId){if(this.popup===undefined){this.popup=new Popup(this.canvas.frame)}this.popup.popupTargetType=popupType;this.popup.popupTargetId=this.popupObj.id;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.setText(this.popupObj.getTitle());this.popup.show();this.body.emitter.emit(\"showPopup\",this.popupObj.id)}}else{if(this.popup!==undefined){this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}},{key:\"_checkHidePopup\",value:function _checkHidePopup(pointer){var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var stillOnObj=false;if(this.popup.popupTargetType===\"node\"){if(this.body.nodes[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(pointerObj);if(stillOnObj===true){var overNode=this.selectionHandler.getNodeAt(pointer);stillOnObj=overNode===undefined?false:overNode.id===this.popup.popupTargetId}}}else{if(this.selectionHandler.getNodeAt(pointer)===undefined){if(this.body.edges[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.edges[this.popup.popupTargetId].isOverlappingWith(pointerObj)}}}if(stillOnObj===false){this.popupObj=undefined;this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}]);return InteractionHandler}();exports[\"default\"]=InteractionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var keycharm=__webpack_require__(35);var NavigationHandler=function(){function NavigationHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,NavigationHandler);this.body=body;this.canvas=canvas;this.iconsCreated=false;this.navigationHammers=[];this.boundFunctions={};this.touchTime=0;this.activated=false;this.body.emitter.on(\"activate\",function(){_this.activated=true;_this.configureKeyboardBindings()});this.body.emitter.on(\"deactivate\",function(){_this.activated=false;_this.configureKeyboardBindings()});this.body.emitter.on(\"destroy\",function(){if(_this.keycharm!==undefined){_this.keycharm.destroy()}});this.options={}}(0,_createClass3[\"default\"])(NavigationHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.options=options;this.create()}}},{key:\"create\",value:function create(){if(this.options.navigationButtons===true){if(this.iconsCreated===false){this.loadNavigationElements()}}else if(this.iconsCreated===true){this.cleanNavigation()}this.configureKeyboardBindings()}},{key:\"cleanNavigation\",value:function cleanNavigation(){if(this.navigationHammers.length!=0){for(var i=0;i<this.navigationHammers.length;i++){this.navigationHammers[i].destroy()}this.navigationHammers=[]}if(this.navigationDOM&&this.navigationDOM[\"wrapper\"]&&this.navigationDOM[\"wrapper\"].parentNode){this.navigationDOM[\"wrapper\"].parentNode.removeChild(this.navigationDOM[\"wrapper\"])}this.iconsCreated=false}},{key:\"loadNavigationElements\",value:function loadNavigationElements(){var _this2=this;this.cleanNavigation();this.navigationDOM={};var navigationDivs=[\"up\",\"down\",\"left\",\"right\",\"zoomIn\",\"zoomOut\",\"zoomExtends\"];var navigationDivActions=[\"_moveUp\",\"_moveDown\",\"_moveLeft\",\"_moveRight\",\"_zoomIn\",\"_zoomOut\",\"_fit\"];this.navigationDOM[\"wrapper\"]=document.createElement(\"div\");this.navigationDOM[\"wrapper\"].className=\"vis-navigation\";this.canvas.frame.appendChild(this.navigationDOM[\"wrapper\"]);for(var i=0;i<navigationDivs.length;i++){this.navigationDOM[navigationDivs[i]]=document.createElement(\"div\");this.navigationDOM[navigationDivs[i]].className=\"vis-button vis-\"+navigationDivs[i];this.navigationDOM[\"wrapper\"].appendChild(this.navigationDOM[navigationDivs[i]]);var hammer=new Hammer(this.navigationDOM[navigationDivs[i]]);if(navigationDivActions[i]===\"_fit\"){hammerUtil.onTouch(hammer,this._fit.bind(this))}else{hammerUtil.onTouch(hammer,this.bindToRedraw.bind(this,navigationDivActions[i]))}this.navigationHammers.push(hammer)}var hammerFrame=new Hammer(this.canvas.frame);hammerUtil.onRelease(hammerFrame,function(){_this2._stopMovement()});this.navigationHammers.push(hammerFrame);this.iconsCreated=true}},{key:\"bindToRedraw\",value:function bindToRedraw(action){if(this.boundFunctions[action]===undefined){this.boundFunctions[action]=this[action].bind(this);this.body.emitter.on(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_startRendering\")}}},{key:\"unbindFromRedraw\",value:function unbindFromRedraw(action){if(this.boundFunctions[action]!==undefined){this.body.emitter.off(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_stopRendering\");delete this.boundFunctions[action]}}},{key:\"_fit\",value:function _fit(){if((new Date).valueOf()-this.touchTime>700){this.body.emitter.emit(\"fit\",{duration:700});this.touchTime=(new Date).valueOf()}}},{key:\"_stopMovement\",value:function _stopMovement(){for(var boundAction in this.boundFunctions){if(this.boundFunctions.hasOwnProperty(boundAction)){this.body.emitter.off(\"initRedraw\",this.boundFunctions[boundAction]);this.body.emitter.emit(\"_stopRendering\")}}this.boundFunctions={}}},{key:\"_moveUp\",value:function _moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:\"_moveDown\",value:function _moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:\"_moveLeft\",value:function _moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:\"_moveRight\",value:function _moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:\"_zoomIn\",value:function _zoomIn(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale*(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:null})}},{key:\"_zoomOut\",value:function _zoomOut(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale/(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:null})}},{key:\"configureKeyboardBindings\",value:function configureKeyboardBindings(){var _this3=this;if(this.keycharm!==undefined){this.keycharm.destroy()}if(this.options.keyboard.enabled===true){if(this.options.keyboard.bindToWindow===true){this.keycharm=keycharm({container:window,preventDefault:true})}else{this.keycharm=keycharm({container:this.canvas.frame,preventDefault:true})}this.keycharm.reset();if(this.activated===true){this.keycharm.bind(\"up\",function(){_this3.bindToRedraw(\"_moveUp\")},\"keydown\");this.keycharm.bind(\"down\",function(){_this3.bindToRedraw(\"_moveDown\")},\"keydown\");this.keycharm.bind(\"left\",function(){_this3.bindToRedraw(\"_moveLeft\")},\"keydown\");this.keycharm.bind(\"right\",function(){_this3.bindToRedraw(\"_moveRight\")},\"keydown\");this.keycharm.bind(\"=\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num+\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"[\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"]\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pageup\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pagedown\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"up\",function(){_this3.unbindFromRedraw(\"_moveUp\")},\"keyup\");this.keycharm.bind(\"down\",function(){_this3.unbindFromRedraw(\"_moveDown\")},\"keyup\");this.keycharm.bind(\"left\",function(){_this3.unbindFromRedraw(\"_moveLeft\")},\"keyup\");this.keycharm.bind(\"right\",function(){_this3.unbindFromRedraw(\"_moveRight\")},\"keyup\");this.keycharm.bind(\"=\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num+\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"[\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"]\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pageup\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pagedown\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\")}}}}]);return NavigationHandler}();exports[\"default\"]=NavigationHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Node=__webpack_require__(47)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var util=__webpack_require__(2);var SelectionHandler=function(){function SelectionHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,SelectionHandler);this.body=body;this.canvas=canvas;this.selectionObj={nodes:[],edges:[]};this.hoverObj={nodes:{},edges:{}};this.options={};this.defaultOptions={multiselect:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_dataChanged\",function(){_this.updateSelection()})}(0,_createClass3[\"default\"])(SelectionHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"multiselect\",\"hoverConnectedEdges\",\"selectable\",\"selectConnectedEdges\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"selectOnPoint\",value:function selectOnPoint(pointer){var selected=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);this.unselectAll();if(obj!==undefined){selected=this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}return selected}},{key:\"selectAdditionalOnPoint\",value:function selectAdditionalOnPoint(pointer){var selectionChanged=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);if(obj!==undefined){selectionChanged=true;if(obj.isSelected()===true){this.deselectObject(obj)}else{this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}}return selectionChanged}},{key:\"_initBaseEvent\",value:function _initBaseEvent(event,pointer){var properties={};properties[\"pointer\"]={DOM:{\nx:pointer.x,y:pointer.y},canvas:this.canvas.DOMtoCanvas(pointer)};properties[\"event\"]=event;return properties}},{key:\"_generateClickEvent\",value:function _generateClickEvent(eventType,event,pointer,oldSelection){var emptySelection=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var properties=this._initBaseEvent(event,pointer);if(emptySelection===true){properties.nodes=[];properties.edges=[]}else{var tmp=this.getSelection();properties.nodes=tmp.nodes;properties.edges=tmp.edges}if(oldSelection!==undefined){properties[\"previousSelection\"]=oldSelection}if(eventType==\"click\"){properties.items=this.getClickedItems(pointer)}this.body.emitter.emit(eventType,properties)}},{key:\"selectObject\",value:function selectObject(obj){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.selectConnectedEdges;if(obj!==undefined){if(obj instanceof Node){if(highlightEdges===true){this._selectConnectedEdges(obj)}}obj.select();this._addToSelection(obj);return true}return false}},{key:\"deselectObject\",value:function deselectObject(obj){if(obj.isSelected()===true){obj.selected=false;this._removeFromSelection(obj)}}},{key:\"_getAllNodesOverlappingWith\",value:function _getAllNodesOverlappingWith(object){var overlappingNodes=[];var nodes=this.body.nodes;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(nodes[nodeId].isOverlappingWith(object)){overlappingNodes.push(nodeId)}}return overlappingNodes}},{key:\"_pointerToPositionObject\",value:function _pointerToPositionObject(pointer){var canvasPos=this.canvas.DOMtoCanvas(pointer);return{left:canvasPos.x-1,top:canvasPos.y+1,right:canvasPos.x+1,bottom:canvasPos.y-1}}},{key:\"getNodeAt\",value:function getNodeAt(pointer){var returnNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var positionObject=this._pointerToPositionObject(pointer);var overlappingNodes=this._getAllNodesOverlappingWith(positionObject);if(overlappingNodes.length>0){if(returnNode===true){return this.body.nodes[overlappingNodes[overlappingNodes.length-1]]}else{return overlappingNodes[overlappingNodes.length-1]}}else{return undefined}}},{key:\"_getEdgesOverlappingWith\",value:function _getEdgesOverlappingWith(object,overlappingEdges){var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];if(edges[edgeId].isOverlappingWith(object)){overlappingEdges.push(edgeId)}}}},{key:\"_getAllEdgesOverlappingWith\",value:function _getAllEdgesOverlappingWith(object){var overlappingEdges=[];this._getEdgesOverlappingWith(object,overlappingEdges);return overlappingEdges}},{key:\"getEdgeAt\",value:function getEdgeAt(pointer){var returnEdge=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var canvasPos=this.canvas.DOMtoCanvas(pointer);var mindist=10;var overlappingEdge=null;var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];var edge=edges[edgeId];if(edge.connected){var xFrom=edge.from.x;var yFrom=edge.from.y;var xTo=edge.to.x;var yTo=edge.to.y;var dist=edge.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,canvasPos.x,canvasPos.y);if(dist<mindist){overlappingEdge=edgeId;mindist=dist}}}if(overlappingEdge!==null){if(returnEdge===true){return this.body.edges[overlappingEdge]}else{return overlappingEdge}}else{return undefined}}},{key:\"_addToSelection\",value:function _addToSelection(obj){if(obj instanceof Node){this.selectionObj.nodes[obj.id]=obj}else{this.selectionObj.edges[obj.id]=obj}}},{key:\"_addToHover\",value:function _addToHover(obj){if(obj instanceof Node){this.hoverObj.nodes[obj.id]=obj}else{this.hoverObj.edges[obj.id]=obj}}},{key:\"_removeFromSelection\",value:function _removeFromSelection(obj){if(obj instanceof Node){delete this.selectionObj.nodes[obj.id];this._unselectConnectedEdges(obj)}else{delete this.selectionObj.edges[obj.id]}}},{key:\"unselectAll\",value:function unselectAll(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){this.selectionObj.nodes[nodeId].unselect()}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){this.selectionObj.edges[edgeId].unselect()}}this.selectionObj={nodes:{},edges:{}}}},{key:\"_getSelectedNodeCount\",value:function _getSelectedNodeCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}return count}},{key:\"_getSelectedNode\",value:function _getSelectedNode(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return this.selectionObj.nodes[nodeId]}}return undefined}},{key:\"_getSelectedEdge\",value:function _getSelectedEdge(){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return this.selectionObj.edges[edgeId]}}return undefined}},{key:\"_getSelectedEdgeCount\",value:function _getSelectedEdgeCount(){var count=0;for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_getSelectedObjectCount\",value:function _getSelectedObjectCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_selectionIsEmpty\",value:function _selectionIsEmpty(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return false}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return false}}return true}},{key:\"_clusterInSelection\",value:function _clusterInSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(this.selectionObj.nodes[nodeId].clusterSize>1){return true}}}return false}},{key:\"_selectConnectedEdges\",value:function _selectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.select();this._addToSelection(edge)}}},{key:\"_hoverConnectedEdges\",value:function _hoverConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.hover=true;this._addToHover(edge)}}},{key:\"_unselectConnectedEdges\",value:function _unselectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.unselect();this._removeFromSelection(edge)}}},{key:\"emitBlurEvent\",value:function emitBlurEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);if(object.hover===true){object.hover=false;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"blurNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"blurEdge\",properties)}}}},{key:\"emitHoverEvent\",value:function emitHoverEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);var hoverChanged=false;if(object.hover===false){object.hover=true;this._addToHover(object);hoverChanged=true;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"hoverNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"hoverEdge\",properties)}}return hoverChanged}},{key:\"hoverObject\",value:function hoverObject(event,pointer){var object=this.getNodeAt(pointer);if(object===undefined){object=this.getEdgeAt(pointer)}var hoverChanged=false;for(var nodeId in this.hoverObj.nodes){if(this.hoverObj.nodes.hasOwnProperty(nodeId)){if(object===undefined||object instanceof Node&&object.id!=nodeId||object instanceof Edge){this.emitBlurEvent(event,pointer,this.hoverObj.nodes[nodeId]);delete this.hoverObj.nodes[nodeId];hoverChanged=true}}}for(var edgeId in this.hoverObj.edges){if(this.hoverObj.edges.hasOwnProperty(edgeId)){if(hoverChanged===true){this.hoverObj.edges[edgeId].hover=false;delete this.hoverObj.edges[edgeId]}else if(object===undefined||object instanceof Edge&&object.id!=edgeId||object instanceof Node&&!object.hover){this.emitBlurEvent(event,pointer,this.hoverObj.edges[edgeId]);delete this.hoverObj.edges[edgeId];hoverChanged=true}}}if(object!==undefined){hoverChanged=hoverChanged||this.emitHoverEvent(event,pointer,object);if(object instanceof Node&&this.options.hoverConnectedEdges===true){this._hoverConnectedEdges(object)}}if(hoverChanged===true){this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"getSelection\",value:function getSelection(){var nodeIds=this.getSelectedNodes();var edgeIds=this.getSelectedEdges();return{nodes:nodeIds,edges:edgeIds}}},{key:\"getSelectedNodes\",value:function getSelectedNodes(){var idArray=[];if(this.options.selectable===true){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){idArray.push(this.selectionObj.nodes[nodeId].id)}}}return idArray}},{key:\"getSelectedEdges\",value:function getSelectedEdges(){var idArray=[];if(this.options.selectable===true){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){idArray.push(this.selectionObj.edges[edgeId].id)}}}return idArray}},{key:\"setSelection\",value:function setSelection(selection){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=void 0,id=void 0;if(!selection||!selection.nodes&&!selection.edges)throw\"Selection must be an object with nodes and/or edges properties\";if(options.unselectAll||options.unselectAll===undefined){this.unselectAll()}if(selection.nodes){for(i=0;i<selection.nodes.length;i++){id=selection.nodes[i];var node=this.body.nodes[id];if(!node){throw new RangeError('Node with id \"'+id+'\" not found')}this.selectObject(node,options.highlightEdges)}}if(selection.edges){for(i=0;i<selection.edges.length;i++){id=selection.edges[i];var edge=this.body.edges[id];if(!edge){throw new RangeError('Edge with id \"'+id+'\" not found')}this.selectObject(edge)}}this.body.emitter.emit(\"_requestRedraw\")}},{key:\"selectNodes\",value:function selectNodes(selection){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({nodes:selection},{highlightEdges:highlightEdges})}},{key:\"selectEdges\",value:function selectEdges(selection){if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({edges:selection})}},{key:\"updateSelection\",value:function updateSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(!this.body.nodes.hasOwnProperty(nodeId)){delete this.selectionObj.nodes[nodeId]}}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){if(!this.body.edges.hasOwnProperty(edgeId)){delete this.selectionObj.edges[edgeId]}}}}},{key:\"getClickedItems\",value:function getClickedItems(pointer){var point=this.canvas.DOMtoCanvas(pointer);var items=[];var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;for(var i=nodeIndices.length-1;i>=0;i--){var node=nodes[nodeIndices[i]];var ret=node.getItemsOnPoint(point);items.push.apply(items,ret)}var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;for(var _i=edgeIndices.length-1;_i>=0;_i--){var edge=edges[edgeIndices[_i]];var _ret=edge.getItemsOnPoint(point);items.push.apply(items,_ret)}return items}}]);return SelectionHandler}();exports[\"default\"]=SelectionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var _require=__webpack_require__(236),HorizontalStrategy=_require.HorizontalStrategy,VerticalStrategy=_require.VerticalStrategy;var HierarchicalStatus=function(){function HierarchicalStatus(){(0,_classCallCheck3[\"default\"])(this,HierarchicalStatus);this.childrenReference={};this.parentReference={};this.trees={};this.distributionOrdering={};this.levels={};this.distributionIndex={};this.isTree=false;this.treeIndex=-1}(0,_createClass3[\"default\"])(HierarchicalStatus,[{key:\"addRelation\",value:function addRelation(parentNodeId,childNodeId){if(this.childrenReference[parentNodeId]===undefined){this.childrenReference[parentNodeId]=[]}this.childrenReference[parentNodeId].push(childNodeId);if(this.parentReference[childNodeId]===undefined){this.parentReference[childNodeId]=[]}this.parentReference[childNodeId].push(parentNodeId)}},{key:\"checkIfTree\",value:function checkIfTree(){for(var i in this.parentReference){if(this.parentReference[i].length>1){this.isTree=false;return}}this.isTree=true}},{key:\"numTrees\",value:function numTrees(){return this.treeIndex+1}},{key:\"setTreeIndex\",value:function setTreeIndex(node,treeId){if(treeId===undefined)return;if(this.trees[node.id]===undefined){this.trees[node.id]=treeId;this.treeIndex=Math.max(treeId,this.treeIndex)}}},{key:\"ensureLevel\",value:function ensureLevel(nodeId){if(this.levels[nodeId]===undefined){this.levels[nodeId]=0}}},{key:\"getMaxLevel\",value:function getMaxLevel(nodeId){var _this=this;var accumulator={};var _getMaxLevel=function _getMaxLevel(nodeId){if(accumulator[nodeId]!==undefined){return accumulator[nodeId]}var level=_this.levels[nodeId];if(_this.childrenReference[nodeId]){var children=_this.childrenReference[nodeId];if(children.length>0){for(var i=0;i<children.length;i++){level=Math.max(level,_getMaxLevel(children[i]))}}}accumulator[nodeId]=level;return level};return _getMaxLevel(nodeId)}},{key:\"levelDownstream\",value:function levelDownstream(nodeA,nodeB){if(this.levels[nodeB.id]===undefined){if(this.levels[nodeA.id]===undefined){this.levels[nodeA.id]=0}this.levels[nodeB.id]=this.levels[nodeA.id]+1}}},{key:\"setMinLevelToZero\",value:function setMinLevelToZero(nodes){var minLevel=1e9;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(this.levels[nodeId]!==undefined){minLevel=Math.min(this.levels[nodeId],minLevel)}}}for(var _nodeId in nodes){if(nodes.hasOwnProperty(_nodeId)){if(this.levels[_nodeId]!==undefined){this.levels[_nodeId]-=minLevel}}}}},{key:\"getTreeSize\",value:function getTreeSize(nodes,index){var min_x=1e9;var max_x=-1e9;var min_y=1e9;var max_y=-1e9;for(var nodeId in this.trees){if(this.trees.hasOwnProperty(nodeId)){if(this.trees[nodeId]===index){var node=nodes[nodeId];min_x=Math.min(node.x,min_x);max_x=Math.max(node.x,max_x);min_y=Math.min(node.y,min_y);max_y=Math.max(node.y,max_y)}}}return{min_x:min_x,max_x:max_x,min_y:min_y,max_y:max_y}}},{key:\"hasSameParent\",value:function hasSameParent(node1,node2){var parents1=this.parentReference[node1.id];var parents2=this.parentReference[node2.id];if(parents1===undefined||parents2===undefined){return false}for(var i=0;i<parents1.length;i++){for(var j=0;j<parents2.length;j++){if(parents1[i]==parents2[j]){return true}}}return false}},{key:\"inSameSubNetwork\",value:function inSameSubNetwork(node1,node2){return this.trees[node1.id]===this.trees[node2.id]}},{key:\"getLevels\",value:function getLevels(){return(0,_keys2[\"default\"])(this.distributionOrdering)}},{key:\"addToOrdering\",value:function addToOrdering(node,level){if(this.distributionOrdering[level]===undefined){this.distributionOrdering[level]=[]}var isPresent=false;var curLevel=this.distributionOrdering[level];for(var n in curLevel){if(curLevel[n]===node){isPresent=true;break}}if(!isPresent){this.distributionOrdering[level].push(node);this.distributionIndex[node.id]=this.distributionOrdering[level].length-1}}}]);return HierarchicalStatus}();var LayoutEngine=function(){function LayoutEngine(body){(0,_classCallCheck3[\"default\"])(this,LayoutEngine);this.body=body;this.initialRandomSeed=Math.round(Math.random()*1e6);this.randomSeed=this.initialRandomSeed;this.setPhysics=false;this.options={};this.optionsBackup={physics:{}};this.defaultOptions={randomSeed:undefined,improvedLayout:true,hierarchical:{enabled:false,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:\"UD\",sortMethod:\"hubsize\"}};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(LayoutEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_dataChanged\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_dataLoaded\",function(){_this2.layoutNetwork()});this.body.emitter.on(\"_resetHierarchicalLayout\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\",function(){if(_this2.options.hierarchical.enabled!==true){return}var type=_this2.direction.curveType();_this2.body.emitter.emit(\"_forceDisableDynamicCurves\",type,false)})}},{key:\"setOptions\",value:function setOptions(options,allOptions){if(options!==undefined){var hierarchical=this.options.hierarchical;var prevHierarchicalState=hierarchical.enabled;util.selectiveDeepExtend([\"randomSeed\",\"improvedLayout\"],this.options,options);util.mergeOptions(this.options,options,\"hierarchical\");if(options.randomSeed!==undefined){this.initialRandomSeed=options.randomSeed}if(hierarchical.enabled===true){if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\",true)}if(hierarchical.direction===\"RL\"||hierarchical.direction===\"DU\"){if(hierarchical.levelSeparation>0){hierarchical.levelSeparation*=-1}}else{if(hierarchical.levelSeparation<0){hierarchical.levelSeparation*=-1}}this.setDirectionStrategy();this.body.emitter.emit(\"_resetHierarchicalLayout\");return this.adaptAllOptionsForHierarchicalLayout(allOptions)}else{if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\");return util.deepExtend(allOptions,this.optionsBackup)}}}return allOptions}},{key:\"adaptAllOptionsForHierarchicalLayout\",value:function adaptAllOptionsForHierarchicalLayout(allOptions){if(this.options.hierarchical.enabled===true){var backupPhysics=this.optionsBackup.physics;if(allOptions.physics===undefined||allOptions.physics===true){allOptions.physics={enabled:backupPhysics.enabled===undefined?true:backupPhysics.enabled,solver:\"hierarchicalRepulsion\"};backupPhysics.enabled=backupPhysics.enabled===undefined?true:backupPhysics.enabled;backupPhysics.solver=backupPhysics.solver||\"barnesHut\"}else if((0,_typeof3[\"default\"])(allOptions.physics)===\"object\"){backupPhysics.enabled=allOptions.physics.enabled===undefined?true:allOptions.physics.enabled;backupPhysics.solver=allOptions.physics.solver||\"barnesHut\";allOptions.physics.solver=\"hierarchicalRepulsion\"}else if(allOptions.physics!==false){backupPhysics.solver=\"barnesHut\";allOptions.physics={solver:\"hierarchicalRepulsion\"}}var type=this.direction.curveType();if(allOptions.edges===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges={smooth:false}}else if(allOptions.edges.smooth===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges.smooth=false}else{if(typeof allOptions.edges.smooth===\"boolean\"){this.optionsBackup.edges={smooth:allOptions.edges.smooth};allOptions.edges.smooth={enabled:allOptions.edges.smooth,type:type}}else{var smooth=allOptions.edges.smooth;if(smooth.type!==undefined&&smooth.type!==\"dynamic\"){type=smooth.type}this.optionsBackup.edges={smooth:smooth.enabled===undefined?true:smooth.enabled,type:smooth.type===undefined?\"dynamic\":smooth.type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection};allOptions.edges.smooth={enabled:smooth.enabled===undefined?true:smooth.enabled,type:type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection}}}this.body.emitter.emit(\"_forceDisableDynamicCurves\",type)}return allOptions}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"positionInitially\",value:function positionInitially(nodesArray){if(this.options.hierarchical.enabled!==true){this.randomSeed=this.initialRandomSeed;var radius=nodesArray.length+50;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var angle=2*Math.PI*this.seededRandom();if(node.x===undefined){node.x=radius*Math.cos(angle)}if(node.y===undefined){node.y=radius*Math.sin(angle)}}}}},{key:\"layoutNetwork\",value:function layoutNetwork(){if(this.options.hierarchical.enabled!==true&&this.options.improvedLayout===true){var indices=this.body.nodeIndices;var positionDefined=0;for(var i=0;i<indices.length;i++){var node=this.body.nodes[indices[i]];if(node.predefinedPosition===true){positionDefined+=1}}if(positionDefined<.5*indices.length){var MAX_LEVELS=10;var level=0;var clusterThreshold=150;var clusterOptions={clusterNodeProperties:{shape:\"ellipse\",label:\"\",group:\"\",font:{multi:false}},clusterEdgeProperties:{label:\"\",font:{multi:false},smooth:{enabled:false}}};if(indices.length>clusterThreshold){var startLength=indices.length;while(indices.length>clusterThreshold&&level<=MAX_LEVELS){level+=1;var before=indices.length;if(level%3===0){this.body.modules.clustering.clusterBridges(clusterOptions)}else{this.body.modules.clustering.clusterOutliers(clusterOptions)}var after=indices.length;if(before==after&&level%3!==0){this._declusterAll();this.body.emitter.emit(\"_layoutFailed\");console.info(\"This network could not be positioned by this version of the improved layout algorithm.\"+\" Please disable improvedLayout for better performance.\");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*startLength)})}if(level>MAX_LEVELS){console.info(\"The clustering didn't succeed within the amount of interations allowed,\"+\" progressing with partial result.\")}this.body.modules.kamadaKawai.solve(indices,this.body.edgeIndices,true);this._shiftToCenter();var offset=70;for(var _i=0;_i<indices.length;_i++){var _node=this.body.nodes[indices[_i]];if(_node.predefinedPosition===false){_node.x+=(.5-this.seededRandom())*offset;_node.y+=(.5-this.seededRandom())*offset}}this._declusterAll();this.body.emitter.emit(\"_repositionBezierNodes\")}}}},{key:\"_shiftToCenter\",value:function _shiftToCenter(){var range=NetworkUtil.getRangeCore(this.body.nodes,this.body.nodeIndices);var center=NetworkUtil.findCenter(range);for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];node.x-=center.x;node.y-=center.y}}},{key:\"_declusterAll\",value:function _declusterAll(){var clustersPresent=true;while(clustersPresent===true){clustersPresent=false;for(var i=0;i<this.body.nodeIndices.length;i++){if(this.body.nodes[this.body.nodeIndices[i]].isCluster===true){clustersPresent=true;this.body.modules.clustering.openCluster(this.body.nodeIndices[i],{},false)}}if(clustersPresent===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"getSeed\",value:function getSeed(){return this.initialRandomSeed}},{key:\"setupHierarchicalLayout\",value:function setupHierarchicalLayout(){if(this.options.hierarchical.enabled===true&&this.body.nodeIndices.length>0){var node=void 0,nodeId=void 0;var definedLevel=false;var undefinedLevel=false;this.lastNodeOnLevel={};this.hierarchical=new HierarchicalStatus;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];if(node.options.level!==undefined){definedLevel=true;this.hierarchical.levels[nodeId]=node.options.level}else{undefinedLevel=true}}}if(undefinedLevel===true&&definedLevel===true){throw new Error(\"To use the hierarchical layout, nodes require either no predefined levels\"+\" or levels have to be defined for all nodes.\")}else{if(undefinedLevel===true){var sortMethod=this.options.hierarchical.sortMethod;if(sortMethod===\"hubsize\"){this._determineLevelsByHubsize()}else if(sortMethod===\"directed\"){this._determineLevelsDirected()}else if(sortMethod===\"custom\"){this._determineLevelsCustomCallback()}}for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.hierarchical.ensureLevel(_nodeId2)}}var distribution=this._getDistribution();this._generateMap();this._placeNodesByHierarchy(distribution);this._condenseHierarchy();this._shiftToCenter()}}}},{key:\"_condenseHierarchy\",value:function _condenseHierarchy(){var _this3=this;var stillShifting=false;var branches={};var shiftTrees=function shiftTrees(){var treeSizes=getTreeSizes();var shiftBy=0;for(var i=0;i<treeSizes.length-1;i++){var diff=treeSizes[i].max-treeSizes[i+1].min;shiftBy+=diff+_this3.options.hierarchical.treeSpacing;shiftTree(i+1,shiftBy)}};var shiftTree=function shiftTree(index,offset){var trees=_this3.hierarchical.trees;for(var nodeId in trees){if(trees.hasOwnProperty(nodeId)){if(trees[nodeId]===index){_this3.direction.shift(nodeId,offset)}}}};var getTreeSizes=function getTreeSizes(){var treeWidths=[];for(var i=0;i<_this3.hierarchical.numTrees();i++){treeWidths.push(_this3.direction.getTreeSize(i))}return treeWidths};var getBranchNodes=function getBranchNodes(source,map){if(map[source.id]){return}map[source.id]=true;if(_this3.hierarchical.childrenReference[source.id]){var children=_this3.hierarchical.childrenReference[source.id];if(children.length>0){for(var i=0;i<children.length;i++){getBranchNodes(_this3.body.nodes[children[i]],map)}}}};var getBranchBoundary=function getBranchBoundary(branchMap){var maxLevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1e9;var minSpace=1e9;var maxSpace=1e9;var min=1e9;var max=-1e9;for(var branchNode in branchMap){if(branchMap.hasOwnProperty(branchNode)){var node=_this3.body.nodes[branchNode];var level=_this3.hierarchical.levels[node.id];var position=_this3.direction.getPosition(node);var _getSpaceAroundNode2=_this3._getSpaceAroundNode(node,branchMap),_getSpaceAroundNode3=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode2,2),minSpaceNode=_getSpaceAroundNode3[0],maxSpaceNode=_getSpaceAroundNode3[1];minSpace=Math.min(minSpaceNode,minSpace);maxSpace=Math.min(maxSpaceNode,maxSpace);if(level<=maxLevel){min=Math.min(position,min);max=Math.max(position,max)}}}return[min,max,minSpace,maxSpace]};var getCollisionLevel=function getCollisionLevel(node1,node2){var maxLevel1=_this3.hierarchical.getMaxLevel(node1.id);var maxLevel2=_this3.hierarchical.getMaxLevel(node2.id);return Math.min(maxLevel1,maxLevel2)};var shiftElementsCloser=function shiftElementsCloser(callback,levels,centerParents){var hier=_this3.hierarchical;for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=hier.distributionOrdering[level];if(levelNodes.length>1){for(var j=0;j<levelNodes.length-1;j++){var node1=levelNodes[j];var node2=levelNodes[j+1];if(hier.hasSameParent(node1,node2)&&hier.inSameSubNetwork(node1,node2)){callback(node1,node2,centerParents)}}}}};var branchShiftCallback=function branchShiftCallback(node1,node2){var centerParent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var pos1=_this3.direction.getPosition(node1);var pos2=_this3.direction.getPosition(node2);var diffAbs=Math.abs(pos2-pos1);var nodeSpacing=_this3.options.hierarchical.nodeSpacing;if(diffAbs>nodeSpacing){var branchNodes1={};var branchNodes2={};getBranchNodes(node1,branchNodes1);getBranchNodes(node2,branchNodes2);var maxLevel=getCollisionLevel(node1,node2);var branchNodeBoundary1=getBranchBoundary(branchNodes1,maxLevel);var branchNodeBoundary2=getBranchBoundary(branchNodes2,maxLevel);var max1=branchNodeBoundary1[1];var min2=branchNodeBoundary2[0];var minSpace2=branchNodeBoundary2[2];var diffBranch=Math.abs(max1-min2);if(diffBranch>nodeSpacing){var offset=max1-min2+nodeSpacing;if(offset<-minSpace2+nodeSpacing){offset=-minSpace2+nodeSpacing}if(offset<0){_this3._shiftBlock(node2.id,offset);stillShifting=true;if(centerParent===true)_this3._centerParent(node2)}}}};var minimizeEdgeLength=function minimizeEdgeLength(iterations,node){var nodeId=node.id;var allEdges=node.edges;var nodeLevel=_this3.hierarchical.levels[node.id];var C2=_this3.options.hierarchical.levelSeparation*_this3.options.hierarchical.levelSeparation;var referenceNodes={};var aboveEdges=[];for(var i=0;i<allEdges.length;i++){var edge=allEdges[i];if(edge.toId!=edge.fromId){var otherNode=edge.toId==nodeId?edge.from:edge.to;referenceNodes[allEdges[i].id]=otherNode;if(_this3.hierarchical.levels[otherNode.id]<nodeLevel){aboveEdges.push(edge)}}}var getFx=function getFx(point,edges){var sum=0;for(var _i2=0;_i2<edges.length;_i2++){if(referenceNodes[edges[_i2].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i2].id])-point;sum+=a/Math.sqrt(a*a+C2)}}return sum};var getDFx=function getDFx(point,edges){var sum=0;for(var _i3=0;_i3<edges.length;_i3++){if(referenceNodes[edges[_i3].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i3].id])-point;sum-=C2*Math.pow(a*a+C2,-1.5)}}return sum};var getGuess=function getGuess(iterations,edges){var guess=_this3.direction.getPosition(node);var guessMap={};for(var _i4=0;_i4<iterations;_i4++){var fx=getFx(guess,edges);var dfx=getDFx(guess,edges);var limit=40;var ratio=Math.max(-limit,Math.min(limit,Math.round(fx/dfx)));guess=guess-ratio;if(guessMap[guess]!==undefined){break}guessMap[guess]=_i4}return guess};var moveBranch=function moveBranch(guess){var nodePosition=_this3.direction.getPosition(node);if(branches[node.id]===undefined){var branchNodes={};getBranchNodes(node,branchNodes);branches[node.id]=branchNodes}var branchBoundary=getBranchBoundary(branches[node.id]);var minSpaceBranch=branchBoundary[2];var maxSpaceBranch=branchBoundary[3];var diff=guess-nodePosition;var branchOffset=0;if(diff>0){branchOffset=Math.min(diff,maxSpaceBranch-_this3.options.hierarchical.nodeSpacing)}else if(diff<0){branchOffset=-Math.min(-diff,minSpaceBranch-_this3.options.hierarchical.nodeSpacing)}if(branchOffset!=0){_this3._shiftBlock(node.id,branchOffset);stillShifting=true}};var moveNode=function moveNode(guess){var nodePosition=_this3.direction.getPosition(node);var _getSpaceAroundNode4=_this3._getSpaceAroundNode(node),_getSpaceAroundNode5=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode4,2),minSpace=_getSpaceAroundNode5[0],maxSpace=_getSpaceAroundNode5[1];var diff=guess-nodePosition;var newPosition=nodePosition;if(diff>0){newPosition=Math.min(nodePosition+(maxSpace-_this3.options.hierarchical.nodeSpacing),guess)}else if(diff<0){newPosition=Math.max(nodePosition-(minSpace-_this3.options.hierarchical.nodeSpacing),guess)}if(newPosition!==nodePosition){_this3.direction.setPosition(node,newPosition);stillShifting=true}};var guess=getGuess(iterations,aboveEdges);moveBranch(guess);guess=getGuess(iterations,allEdges);moveNode(guess)};var minimizeEdgeLengthBottomUp=function minimizeEdgeLengthBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;for(var j=0;j<levels.length;j++){var level=levels[j];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var k=0;k<levelNodes.length;k++){minimizeEdgeLength(1e3,levelNodes[k])}}if(stillShifting!==true){break}}};var shiftBranchesCloserBottomUp=function shiftBranchesCloserBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;shiftElementsCloser(branchShiftCallback,levels,true);if(stillShifting!==true){break}}};var centerAllParents=function centerAllParents(){for(var nodeId in _this3.body.nodes){if(_this3.body.nodes.hasOwnProperty(nodeId))_this3._centerParent(_this3.body.nodes[nodeId])}};var centerAllParentsBottomUp=function centerAllParentsBottomUp(){var levels=_this3.hierarchical.getLevels()\n;levels=levels.reverse();for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var j=0;j<levelNodes.length;j++){_this3._centerParent(levelNodes[j])}}};if(this.options.hierarchical.blockShifting===true){shiftBranchesCloserBottomUp(5);centerAllParents()}if(this.options.hierarchical.edgeMinimization===true){minimizeEdgeLengthBottomUp(20)}if(this.options.hierarchical.parentCentralization===true){centerAllParentsBottomUp()}shiftTrees()}},{key:\"_getSpaceAroundNode\",value:function _getSpaceAroundNode(node,map){var useMap=true;if(map===undefined){useMap=false}var level=this.hierarchical.levels[node.id];if(level!==undefined){var index=this.hierarchical.distributionIndex[node.id];var position=this.direction.getPosition(node);var ordering=this.hierarchical.distributionOrdering[level];var minSpace=1e9;var maxSpace=1e9;if(index!==0){var prevNode=ordering[index-1];if(useMap===true&&map[prevNode.id]===undefined||useMap===false){var prevPos=this.direction.getPosition(prevNode);minSpace=position-prevPos}}if(index!=ordering.length-1){var nextNode=ordering[index+1];if(useMap===true&&map[nextNode.id]===undefined||useMap===false){var nextPos=this.direction.getPosition(nextNode);maxSpace=Math.min(maxSpace,nextPos-position)}}return[minSpace,maxSpace]}else{return[0,0]}}},{key:\"_centerParent\",value:function _centerParent(node){if(this.hierarchical.parentReference[node.id]){var parents=this.hierarchical.parentReference[node.id];for(var i=0;i<parents.length;i++){var parentId=parents[i];var parentNode=this.body.nodes[parentId];var children=this.hierarchical.childrenReference[parentId];if(children!==undefined){var newPosition=this._getCenterPosition(children);var position=this.direction.getPosition(parentNode);var _getSpaceAroundNode6=this._getSpaceAroundNode(parentNode),_getSpaceAroundNode7=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode6,2),minSpace=_getSpaceAroundNode7[0],maxSpace=_getSpaceAroundNode7[1];var diff=position-newPosition;if(diff<0&&Math.abs(diff)<maxSpace-this.options.hierarchical.nodeSpacing||diff>0&&Math.abs(diff)<minSpace-this.options.hierarchical.nodeSpacing){this.direction.setPosition(parentNode,newPosition)}}}}}},{key:\"_placeNodesByHierarchy\",value:function _placeNodesByHierarchy(distribution){this.positionedNodes={};for(var level in distribution){if(distribution.hasOwnProperty(level)){var nodeArray=(0,_keys2[\"default\"])(distribution[level]);nodeArray=this._indexArrayToNodes(nodeArray);this.direction.sort(nodeArray);var handledNodeCount=0;for(var i=0;i<nodeArray.length;i++){var node=nodeArray[i];if(this.positionedNodes[node.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=spacing*handledNodeCount;if(handledNodeCount>0){pos=this.direction.getPosition(nodeArray[i-1])+spacing}this.direction.setPosition(node,pos,level);this._validatePositionAndContinue(node,level,pos);handledNodeCount++}}}}}},{key:\"_placeBranchNodes\",value:function _placeBranchNodes(parentId,parentLevel){var childRef=this.hierarchical.childrenReference[parentId];if(childRef===undefined){return}var childNodes=[];for(var i=0;i<childRef.length;i++){childNodes.push(this.body.nodes[childRef[i]])}this.direction.sort(childNodes);for(var _i5=0;_i5<childNodes.length;_i5++){var childNode=childNodes[_i5];var childNodeLevel=this.hierarchical.levels[childNode.id];if(childNodeLevel>parentLevel&&this.positionedNodes[childNode.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=void 0;if(_i5===0){pos=this.direction.getPosition(this.body.nodes[parentId])}else{pos=this.direction.getPosition(childNodes[_i5-1])+spacing}this.direction.setPosition(childNode,pos,childNodeLevel);this._validatePositionAndContinue(childNode,childNodeLevel,pos)}else{return}}var center=this._getCenterPosition(childNodes);this.direction.setPosition(this.body.nodes[parentId],center,parentLevel)}},{key:\"_validatePositionAndContinue\",value:function _validatePositionAndContinue(node,level,pos){if(!this.hierarchical.isTree)return;if(this.lastNodeOnLevel[level]!==undefined){var previousPos=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[level]]);if(pos-previousPos<this.options.hierarchical.nodeSpacing){var diff=previousPos+this.options.hierarchical.nodeSpacing-pos;var sharedParent=this._findCommonParent(this.lastNodeOnLevel[level],node.id);this._shiftBlock(sharedParent.withChild,diff)}}this.lastNodeOnLevel[level]=node.id;this.positionedNodes[node.id]=true;this._placeBranchNodes(node.id,level)}},{key:\"_indexArrayToNodes\",value:function _indexArrayToNodes(idArray){var array=[];for(var i=0;i<idArray.length;i++){array.push(this.body.nodes[idArray[i]])}return array}},{key:\"_getDistribution\",value:function _getDistribution(){var distribution={};var nodeId=void 0,node=void 0;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];var level=this.hierarchical.levels[nodeId]===undefined?0:this.hierarchical.levels[nodeId];this.direction.fix(node,level);if(distribution[level]===undefined){distribution[level]={}}distribution[level][nodeId]=node}}return distribution}},{key:\"_getActiveEdges\",value:function _getActiveEdges(node){var _this4=this;var result=[];util.forEach(node.edges,function(edge){if(_this4.body.edgeIndices.indexOf(edge.id)!==-1){result.push(edge)}});return result}},{key:\"_getHubSizes\",value:function _getHubSizes(){var _this5=this;var hubSizes={};var nodeIds=this.body.nodeIndices;util.forEach(nodeIds,function(nodeId){var node=_this5.body.nodes[nodeId];var hubSize=_this5._getActiveEdges(node).length;hubSizes[hubSize]=true});var result=[];util.forEach(hubSizes,function(size){result.push(Number(size))});result.sort(function(a,b){return b-a});return result}},{key:\"_determineLevelsByHubsize\",value:function _determineLevelsByHubsize(){var _this6=this;var levelDownstream=function levelDownstream(nodeA,nodeB){_this6.hierarchical.levelDownstream(nodeA,nodeB)};var hubSizes=this._getHubSizes();var _loop=function _loop(i){var hubSize=hubSizes[i];if(hubSize===0)return\"break\";util.forEach(_this6.body.nodeIndices,function(nodeId){var node=_this6.body.nodes[nodeId];if(hubSize===_this6._getActiveEdges(node).length){_this6._crawlNetwork(levelDownstream,nodeId)}})};for(var i=0;i<hubSizes.length;++i){var _ret=_loop(i);if(_ret===\"break\")break}}},{key:\"_determineLevelsCustomCallback\",value:function _determineLevelsCustomCallback(){var _this7=this;var minLevel=1e5;var customCallback=function customCallback(nodeA,nodeB,edge){};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this7.hierarchical.levels[nodeA.id];if(levelA===undefined){levelA=_this7.hierarchical.levels[nodeA.id]=minLevel}var diff=customCallback(NetworkUtil.cloneOptions(nodeA,\"node\"),NetworkUtil.cloneOptions(nodeB,\"node\"),NetworkUtil.cloneOptions(edge,\"edge\"));_this7.hierarchical.levels[nodeB.id]=levelA+diff};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_determineLevelsDirected\",value:function _determineLevelsDirected(){var _this8=this;var minLevel=1e4;var isBidirectional=function isBidirectional(edge){util.forEach(_this8.body.edges,function(otherEdge){if(otherEdge.toId===edge.fromId&&otherEdge.fromId===edge.toId){return true}});return false};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this8.hierarchical.levels[nodeA.id];var levelB=_this8.hierarchical.levels[nodeB.id];if(isBidirectional(edge)&&levelA!==undefined&&levelB!==undefined){return}if(levelA===undefined){levelA=_this8.hierarchical.levels[nodeA.id]=minLevel}if(edge.toId==nodeB.id){_this8.hierarchical.levels[nodeB.id]=levelA+1}else{_this8.hierarchical.levels[nodeB.id]=levelA-1}};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_generateMap\",value:function _generateMap(){var _this9=this;var fillInRelations=function fillInRelations(parentNode,childNode){if(_this9.hierarchical.levels[childNode.id]>_this9.hierarchical.levels[parentNode.id]){_this9.hierarchical.addRelation(parentNode.id,childNode.id)}};this._crawlNetwork(fillInRelations);this.hierarchical.checkIfTree()}},{key:\"_crawlNetwork\",value:function _crawlNetwork(){var _this10=this;var callback=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(){};var startingNodeId=arguments[1];var progress={};var crawler=function crawler(node,tree){if(progress[node.id]===undefined){_this10.hierarchical.setTreeIndex(node,tree);progress[node.id]=true;var childNode=void 0;var edges=_this10._getActiveEdges(node);for(var i=0;i<edges.length;i++){var edge=edges[i];if(edge.connected===true){if(edge.toId==node.id){childNode=edge.from}else{childNode=edge.to}if(node.id!=childNode.id){callback(node,childNode,edge);crawler(childNode,tree)}}}}};if(startingNodeId===undefined){var treeIndex=0;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(progress[nodeId]===undefined){var node=this.body.nodes[nodeId];crawler(node,treeIndex);treeIndex+=1}}}else{var _node2=this.body.nodes[startingNodeId];if(_node2===undefined){console.error(\"Node not found:\",startingNodeId);return}crawler(_node2)}}},{key:\"_shiftBlock\",value:function _shiftBlock(parentId,diff){var _this11=this;var progress={};var shifter=function shifter(parentId){if(progress[parentId]){return}progress[parentId]=true;_this11.direction.shift(parentId,diff);var childRef=_this11.hierarchical.childrenReference[parentId];if(childRef!==undefined){for(var i=0;i<childRef.length;i++){shifter(childRef[i])}}};shifter(parentId)}},{key:\"_findCommonParent\",value:function _findCommonParent(childA,childB){var _this12=this;var parents={};var iterateParents=function iterateParents(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];parents[parent]=true;iterateParents(parents,parent)}}};var findParent=function findParent(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];if(parents[parent]!==undefined){return{foundParent:parent,withChild:child}}var branch=findParent(parents,parent);if(branch.foundParent!==null){return branch}}}return{foundParent:null,withChild:child}};iterateParents(parents,childA);return findParent(parents,childB)}},{key:\"setDirectionStrategy\",value:function setDirectionStrategy(){var isVertical=this.options.hierarchical.direction===\"UD\"||this.options.hierarchical.direction===\"DU\";if(isVertical){this.direction=new VerticalStrategy(this)}else{this.direction=new HorizontalStrategy(this)}}},{key:\"_getCenterPosition\",value:function _getCenterPosition(childNodes){var minPos=1e9;var maxPos=-1e9;for(var i=0;i<childNodes.length;i++){var childNode=void 0;if(childNodes[i].id!==undefined){childNode=childNodes[i]}else{var childNodeId=childNodes[i];childNode=this.body.nodes[childNodeId]}var position=this.direction.getPosition(childNode);minPos=Math.min(minPos,position);maxPos=Math.max(maxPos,position)}return.5*(minPos+maxPos)}}]);return LayoutEngine}();exports[\"default\"]=LayoutEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.VerticalStrategy=exports.HorizontalStrategy=undefined;var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DirectionInterface=function(){function DirectionInterface(){(0,_classCallCheck3[\"default\"])(this,DirectionInterface)}(0,_createClass3[\"default\"])(DirectionInterface,[{key:\"abstract\",value:function abstract(){throw new Error(\"Can't instantiate abstract class!\")}},{key:\"fake_use\",value:function fake_use(){}},{key:\"curveType\",value:function curveType(){return this.abstract()}},{key:\"getPosition\",value:function getPosition(node){this.fake_use(node);return this.abstract()}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;this.fake_use(node,position,level);this.abstract()}},{key:\"getTreeSize\",value:function getTreeSize(index){this.fake_use(index);return this.abstract()}},{key:\"sort\",value:function sort(nodeArray){this.fake_use(nodeArray);this.abstract()}},{key:\"fix\",value:function fix(node,level){this.fake_use(node,level);this.abstract()}},{key:\"shift\",value:function shift(nodeId,diff){this.fake_use(nodeId,diff);this.abstract()}}]);return DirectionInterface}();var VerticalStrategy=function(_DirectionInterface){(0,_inherits3[\"default\"])(VerticalStrategy,_DirectionInterface);function VerticalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,VerticalStrategy);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(VerticalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(VerticalStrategy)).call(this));_this.layout=layout;return _this}(0,_createClass3[\"default\"])(VerticalStrategy,[{key:\"curveType\",value:function curveType(){return\"horizontal\"}},{key:\"getPosition\",value:function getPosition(node){return node.x}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.x=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_x,max:res.max_x}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.x===undefined||b.x===undefined)return 0;return a.x-b.x})}},{key:\"fix\",value:function fix(node,level){node.y=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.y=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].x+=diff}}]);return VerticalStrategy}(DirectionInterface);var HorizontalStrategy=function(_DirectionInterface2){(0,_inherits3[\"default\"])(HorizontalStrategy,_DirectionInterface2);function HorizontalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,HorizontalStrategy);var _this2=(0,_possibleConstructorReturn3[\"default\"])(this,(HorizontalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(HorizontalStrategy)).call(this));_this2.layout=layout;return _this2}(0,_createClass3[\"default\"])(HorizontalStrategy,[{key:\"curveType\",value:function curveType(){return\"vertical\"}},{key:\"getPosition\",value:function getPosition(node){return node.y}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.y=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_y,max:res.max_y}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.y===undefined||b.y===undefined)return 0;return a.y-b.y})}},{key:\"fix\",value:function fix(node,level){node.x=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.x=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].y+=diff}}]);return HorizontalStrategy}(DirectionInterface);exports.HorizontalStrategy=HorizontalStrategy;exports.VerticalStrategy=VerticalStrategy},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var ManipulationSystem=function(){function ManipulationSystem(body,canvas,selectionHandler){var _this=this;(0,_classCallCheck3[\"default\"])(this,ManipulationSystem);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.editMode=false;this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined;this.manipulationHammers=[];this.temporaryUIFunctions={};this.temporaryEventFunctions=[];this.touchTime=0;this.temporaryIds={nodes:[],edges:[]};this.guiEnabled=false;this.inMode=false;this.selectedControlNode=undefined;this.options={};this.defaultOptions={enabled:false,initiallyActive:false,addNode:true,addEdge:true,editNode:undefined,editEdge:true,deleteNode:true,deleteEdge:true,controlNodeStyle:{shape:\"dot\",size:6,color:{background:\"#ff0000\",border:\"#3c3c3c\",highlight:{background:\"#07f968\",border:\"#3c3c3c\"}},borderWidth:2,borderWidthSelected:2}};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"destroy\",function(){_this._clean()});this.body.emitter.on(\"_dataChanged\",this._restore.bind(this));this.body.emitter.on(\"_resetData\",this._restore.bind(this))}(0,_createClass3[\"default\"])(ManipulationSystem,[{key:\"_restore\",value:function _restore(){if(this.inMode!==false){if(this.options.initiallyActive===true){this.enableEditMode()}else{this.disableEditMode()}}}},{key:\"setOptions\",value:function setOptions(options,allOptions,globalOptions){if(allOptions!==undefined){if(allOptions.locale!==undefined){this.options.locale=allOptions.locale}else{this.options.locale=globalOptions.locale}if(allOptions.locales!==undefined){this.options.locales=allOptions.locales}else{this.options.locales=globalOptions.locales}}if(options!==undefined){if(typeof options===\"boolean\"){this.options.enabled=options}else{this.options.enabled=true;util.deepExtend(this.options,options)}if(this.options.initiallyActive===true){this.editMode=true}this._setup()}}},{key:\"toggleEditMode\",value:function toggleEditMode(){if(this.editMode===true){this.disableEditMode()}else{this.enableEditMode()}}},{key:\"enableEditMode\",value:function enableEditMode(){this.editMode=true;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";this.editModeDiv.style.display=\"none\";this.showManipulatorToolbar()}}},{key:\"disableEditMode\",value:function disableEditMode(){this.editMode=false;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"none\";this.closeDiv.style.display=\"none\";this.editModeDiv.style.display=\"block\";this._createEditButton()}}},{key:\"showManipulatorToolbar\",value:function showManipulatorToolbar(){this._clean();this.manipulationDOM={};if(this.guiEnabled===true){this.editMode=true;this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";var selectedNodeCount=this.selectionHandler._getSelectedNodeCount();var selectedEdgeCount=this.selectionHandler._getSelectedEdgeCount();var selectedTotalCount=selectedNodeCount+selectedEdgeCount;var locale=this.options.locales[this.options.locale];var needSeperator=false;if(this.options.addNode!==false){this._createAddNodeButton(locale);needSeperator=true}if(this.options.addEdge!==false){if(needSeperator===true){this._createSeperator(1)}else{needSeperator=true}this._createAddEdgeButton(locale)}if(selectedNodeCount===1&&typeof this.options.editNode===\"function\"){if(needSeperator===true){this._createSeperator(2)}else{needSeperator=true}this._createEditNodeButton(locale)}else if(selectedEdgeCount===1&&selectedNodeCount===0&&this.options.editEdge!==false){if(needSeperator===true){this._createSeperator(3)}else{needSeperator=true}this._createEditEdgeButton(locale)}if(selectedTotalCount!==0){if(selectedNodeCount>0&&this.options.deleteNode!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}else if(selectedNodeCount===0&&this.options.deleteEdge!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}}this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this));this._temporaryBindEvent(\"select\",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit(\"_redraw\")}},{key:\"addNodeMode\",value:function addNodeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addNode\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"addDescription\"]||this.options.locales[\"en\"][\"addDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent(\"click\",this._performAddNode.bind(this))}},{key:\"editNode\",value:function editNode(){var _this2=this;if(this.editMode!==true){this.enableEditMode()}this._clean();var node=this.selectionHandler._getSelectedNode();if(node!==undefined){this.inMode=\"editNode\";if(typeof this.options.editNode===\"function\"){if(node.isCluster!==true){var data=util.deepExtend({},node.options,false);data.x=node.x;data.y=node.y;if(this.options.editNode.length===2){this.options.editNode(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this2.inMode===\"editNode\"){_this2.body.data.nodes.getDataSet().update(finalizedData)}_this2.showManipulatorToolbar()})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{alert(this.options.locales[this.options.locale][\"editClusterError\"]||this.options.locales[\"en\"][\"editClusterError\"])}}else{throw new Error(\"No function has been configured to handle the editing of nodes.\")}}else{this.showManipulatorToolbar()}}},{key:\"addEdgeMode\",value:function addEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addEdge\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"edgeDescription\"]||this.options.locales[\"en\"][\"edgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI(\"onTouch\",this._handleConnect.bind(this));this._temporaryBindUI(\"onDragEnd\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDrag\",this._dragControlNode.bind(this));this._temporaryBindUI(\"onRelease\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDragStart\",this._dragStartEdge.bind(this));this._temporaryBindUI(\"onHold\",function(){})}},{key:\"editEdgeMode\",value:function editEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"editEdge\";if((0,_typeof3[\"default\"])(this.options.editEdge)===\"object\"&&typeof this.options.editEdge.editWithoutDrag===\"function\"){this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var edge=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(edge.from,edge.to);return}}if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"editEdgeDescription\"]||this.options.locales[\"en\"][\"editEdgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var _edge=this.body.edges[this.edgeBeingEditedId];var controlNodeFrom=this._getNewTargetNode(_edge.from.x,_edge.from.y);var controlNodeTo=this._getNewTargetNode(_edge.to.x,_edge.to.y);this.temporaryIds.nodes.push(controlNodeFrom.id);this.temporaryIds.nodes.push(controlNodeTo.id);this.body.nodes[controlNodeFrom.id]=controlNodeFrom;this.body.nodeIndices.push(controlNodeFrom.id);this.body.nodes[controlNodeTo.id]=controlNodeTo;this.body.nodeIndices.push(controlNodeTo.id);this._temporaryBindUI(\"onTouch\",this._controlNodeTouch.bind(this));this._temporaryBindUI(\"onTap\",function(){});this._temporaryBindUI(\"onHold\",function(){});this._temporaryBindUI(\"onDragStart\",this._controlNodeDragStart.bind(this));this._temporaryBindUI(\"onDrag\",this._controlNodeDrag.bind(this));this._temporaryBindUI(\"onDragEnd\",this._controlNodeDragEnd.bind(this));this._temporaryBindUI(\"onMouseMove\",function(){});this._temporaryBindEvent(\"beforeDrawing\",function(ctx){var positions=_edge.edgeType.findBorderPositions(ctx);if(controlNodeFrom.selected===false){controlNodeFrom.x=positions.from.x;controlNodeFrom.y=positions.from.y}if(controlNodeTo.selected===false){controlNodeTo.x=positions.to.x;controlNodeTo.y=positions.to.y}});this.body.emitter.emit(\"_redraw\")}else{this.showManipulatorToolbar()}}},{key:\"deleteSelected\",value:function deleteSelected(){var _this3=this;if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"delete\";var selectedNodes=this.selectionHandler.getSelectedNodes();var selectedEdges=this.selectionHandler.getSelectedEdges();var deleteFunction=undefined;if(selectedNodes.length>0){for(var i=0;i<selectedNodes.length;i++){if(this.body.nodes[selectedNodes[i]].isCluster===true){alert(this.options.locales[this.options.locale][\"deleteClusterError\"]||this.options.locales[\"en\"][\"deleteClusterError\"]);return}}if(typeof this.options.deleteNode===\"function\"){deleteFunction=this.options.deleteNode}}else if(selectedEdges.length>0){if(typeof this.options.deleteEdge===\"function\"){deleteFunction=this.options.deleteEdge}}if(typeof deleteFunction===\"function\"){var data={nodes:selectedNodes,edges:selectedEdges};if(deleteFunction.length===2){deleteFunction(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this3.inMode===\"delete\"){_this3.body.data.edges.getDataSet().remove(finalizedData.edges);_this3.body.data.nodes.getDataSet().remove(finalizedData.nodes);_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}else{_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}})}else{throw new Error(\"The function for delete does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().remove(selectedEdges);this.body.data.nodes.getDataSet().remove(selectedNodes);this.body.emitter.emit(\"startSimulation\");this.showManipulatorToolbar()}}},{key:\"_setup\",value:function _setup(){if(this.options.enabled===true){this.guiEnabled=true;this._createWrappers();if(this.editMode===false){this._createEditButton()}else{this.showManipulatorToolbar()}}else{this._removeManipulationDOM();this.guiEnabled=false}}},{key:\"_createWrappers\",value:function _createWrappers(){if(this.manipulationDiv===undefined){this.manipulationDiv=document.createElement(\"div\");this.manipulationDiv.className=\"vis-manipulation\";if(this.editMode===true){this.manipulationDiv.style.display=\"block\"}else{this.manipulationDiv.style.display=\"none\"}this.canvas.frame.appendChild(this.manipulationDiv)}if(this.editModeDiv===undefined){this.editModeDiv=document.createElement(\"div\");this.editModeDiv.className=\"vis-edit-mode\";if(this.editMode===true){this.editModeDiv.style.display=\"none\"}else{this.editModeDiv.style.display=\"block\"}this.canvas.frame.appendChild(this.editModeDiv)}if(this.closeDiv===undefined){this.closeDiv=document.createElement(\"div\");this.closeDiv.className=\"vis-close\";this.closeDiv.style.display=this.manipulationDiv.style.display;this.canvas.frame.appendChild(this.closeDiv)}}},{key:\"_getNewTargetNode\",value:function _getNewTargetNode(x,y){var controlNodeStyle=util.deepExtend({},this.options.controlNodeStyle);controlNodeStyle.id=\"targetNode\"+util.randomUUID();controlNodeStyle.hidden=false;controlNodeStyle.physics=false;controlNodeStyle.x=x;controlNodeStyle.y=y;var node=this.body.functions.createNode(controlNodeStyle);node.shape.boundingBox={left:x,right:x,top:y,bottom:y};return node}},{key:\"_createEditButton\",value:function _createEditButton(){this._clean();this.manipulationDOM={};util.recursiveDOMDelete(this.editModeDiv);var locale=this.options.locales[this.options.locale];var button=this._createButton(\"editMode\",\"vis-button vis-edit vis-edit-mode\",locale[\"edit\"]||this.options.locales[\"en\"][\"edit\"]);this.editModeDiv.appendChild(button);this._bindHammerToDiv(button,this.toggleEditMode.bind(this))}},{key:\"_clean\",value:function _clean(){this.inMode=false;if(this.guiEnabled===true){util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.manipulationDiv);this._cleanManipulatorHammers()}this._cleanupTemporaryNodesAndEdges();this._unbindTemporaryUIs();this._unbindTemporaryEvents();this.body.emitter.emit(\"restorePhysics\")}},{key:\"_cleanManipulatorHammers\",value:function _cleanManipulatorHammers(){if(this.manipulationHammers.length!=0){for(var i=0;i<this.manipulationHammers.length;i++){this.manipulationHammers[i].destroy()}this.manipulationHammers=[]}}},{key:\"_removeManipulationDOM\",value:function _removeManipulationDOM(){this._clean();util.recursiveDOMDelete(this.manipulationDiv);util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.closeDiv);if(this.manipulationDiv){this.canvas.frame.removeChild(this.manipulationDiv)}if(this.editModeDiv){this.canvas.frame.removeChild(this.editModeDiv)}if(this.closeDiv){this.canvas.frame.removeChild(this.closeDiv)}this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined}},{key:\"_createSeperator\",value:function _createSeperator(){var index=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;this.manipulationDOM[\"seperatorLineDiv\"+index]=document.createElement(\"div\");this.manipulationDOM[\"seperatorLineDiv\"+index].className=\"vis-separator-line\";this.manipulationDiv.appendChild(this.manipulationDOM[\"seperatorLineDiv\"+index])}},{key:\"_createAddNodeButton\",value:function _createAddNodeButton(locale){var button=this._createButton(\"addNode\",\"vis-button vis-add\",locale[\"addNode\"]||this.options.locales[\"en\"][\"addNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addNodeMode.bind(this))}},{key:\"_createAddEdgeButton\",value:function _createAddEdgeButton(locale){var button=this._createButton(\"addEdge\",\"vis-button vis-connect\",locale[\"addEdge\"]||this.options.locales[\"en\"][\"addEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addEdgeMode.bind(this))}},{key:\"_createEditNodeButton\",value:function _createEditNodeButton(locale){var button=this._createButton(\"editNode\",\"vis-button vis-edit\",locale[\"editNode\"]||this.options.locales[\"en\"][\"editNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editNode.bind(this))}},{key:\"_createEditEdgeButton\",value:function _createEditEdgeButton(locale){var button=this._createButton(\"editEdge\",\"vis-button vis-edit\",locale[\"editEdge\"]||this.options.locales[\"en\"][\"editEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editEdgeMode.bind(this))}},{key:\"_createDeleteButton\",value:function _createDeleteButton(locale){var deleteBtnClass;if(this.options.rtl){deleteBtnClass=\"vis-button vis-delete-rtl\"}else{deleteBtnClass=\"vis-button vis-delete\"}var button=this._createButton(\"delete\",deleteBtnClass,locale[\"del\"]||this.options.locales[\"en\"][\"del\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.deleteSelected.bind(this))}},{key:\"_createBackButton\",value:function _createBackButton(locale){\nvar button=this._createButton(\"back\",\"vis-button vis-back\",locale[\"back\"]||this.options.locales[\"en\"][\"back\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.showManipulatorToolbar.bind(this))}},{key:\"_createButton\",value:function _createButton(id,className,label){var labelClassName=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"vis-label\";this.manipulationDOM[id+\"Div\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Div\"].className=className;this.manipulationDOM[id+\"Label\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Label\"].className=labelClassName;this.manipulationDOM[id+\"Label\"].innerHTML=label;this.manipulationDOM[id+\"Div\"].appendChild(this.manipulationDOM[id+\"Label\"]);return this.manipulationDOM[id+\"Div\"]}},{key:\"_createDescription\",value:function _createDescription(label){this.manipulationDiv.appendChild(this._createButton(\"description\",\"vis-button vis-none\",label))}},{key:\"_temporaryBindEvent\",value:function _temporaryBindEvent(event,newFunction){this.temporaryEventFunctions.push({event:event,boundFunction:newFunction});this.body.emitter.on(event,newFunction)}},{key:\"_temporaryBindUI\",value:function _temporaryBindUI(UIfunctionName,newFunction){if(this.body.eventListeners[UIfunctionName]!==undefined){this.temporaryUIFunctions[UIfunctionName]=this.body.eventListeners[UIfunctionName];this.body.eventListeners[UIfunctionName]=newFunction}else{throw new Error(\"This UI function does not exist. Typo? You tried: \"+UIfunctionName+\" possible are: \"+(0,_stringify2[\"default\"])((0,_keys2[\"default\"])(this.body.eventListeners)))}}},{key:\"_unbindTemporaryUIs\",value:function _unbindTemporaryUIs(){for(var functionName in this.temporaryUIFunctions){if(this.temporaryUIFunctions.hasOwnProperty(functionName)){this.body.eventListeners[functionName]=this.temporaryUIFunctions[functionName];delete this.temporaryUIFunctions[functionName]}}this.temporaryUIFunctions={}}},{key:\"_unbindTemporaryEvents\",value:function _unbindTemporaryEvents(){for(var i=0;i<this.temporaryEventFunctions.length;i++){var eventName=this.temporaryEventFunctions[i].event;var boundFunction=this.temporaryEventFunctions[i].boundFunction;this.body.emitter.off(eventName,boundFunction)}this.temporaryEventFunctions=[]}},{key:\"_bindHammerToDiv\",value:function _bindHammerToDiv(domElement,boundFunction){var hammer=new Hammer(domElement,{});hammerUtil.onTouch(hammer,boundFunction);this.manipulationHammers.push(hammer)}},{key:\"_cleanupTemporaryNodesAndEdges\",value:function _cleanupTemporaryNodesAndEdges(){for(var i=0;i<this.temporaryIds.edges.length;i++){this.body.edges[this.temporaryIds.edges[i]].disconnect();delete this.body.edges[this.temporaryIds.edges[i]];var indexTempEdge=this.body.edgeIndices.indexOf(this.temporaryIds.edges[i]);if(indexTempEdge!==-1){this.body.edgeIndices.splice(indexTempEdge,1)}}for(var _i=0;_i<this.temporaryIds.nodes.length;_i++){delete this.body.nodes[this.temporaryIds.nodes[_i]];var indexTempNode=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[_i]);if(indexTempNode!==-1){this.body.nodeIndices.splice(indexTempNode,1)}}this.temporaryIds={nodes:[],edges:[]}}},{key:\"_controlNodeTouch\",value:function _controlNodeTouch(event){this.selectionHandler.unselectAll();this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation)}},{key:\"_controlNodeDragStart\",value:function _controlNodeDragStart(event){var pointer=this.lastTouch;var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var from=this.body.nodes[this.temporaryIds.nodes[0]];var to=this.body.nodes[this.temporaryIds.nodes[1]];var edge=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=undefined;var fromSelect=from.isOverlappingWith(pointerObj);var toSelect=to.isOverlappingWith(pointerObj);if(fromSelect===true){this.selectedControlNode=from;edge.edgeType.from=from}else if(toSelect===true){this.selectedControlNode=to;edge.edgeType.to=to}if(this.selectedControlNode!==undefined){this.selectionHandler.selectObject(this.selectedControlNode)}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDrag\",value:function _controlNodeDrag(event){this.body.emitter.emit(\"disablePhysics\");var pointer=this.body.functions.getPointer(event.center);var pos=this.canvas.DOMtoCanvas(pointer);if(this.selectedControlNode!==undefined){this.selectedControlNode.x=pos.x;this.selectedControlNode.y=pos.y}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDragEnd\",value:function _controlNodeDragEnd(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var edge=this.body.edges[this.edgeBeingEditedId];if(this.selectedControlNode===undefined){return}this.selectionHandler.unselectAll();var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(overlappingNodeIds[i]!==this.selectedControlNode.id){node=this.body.nodes[overlappingNodeIds[i]];break}}if(node!==undefined&&this.selectedControlNode!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var from=this.body.nodes[this.temporaryIds.nodes[0]];if(this.selectedControlNode.id===from.id){this._performEditEdge(node.id,edge.to.id)}else{this._performEditEdge(edge.from.id,node.id)}}}else{edge.updateEdgeType();this.body.emitter.emit(\"restorePhysics\")}this.body.emitter.emit(\"_redraw\")}},{key:\"_handleConnect\",value:function _handleConnect(event){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation);var pointer=this.lastTouch;var node=this.selectionHandler.getNodeAt(pointer);if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var targetNode=this._getNewTargetNode(node.x,node.y);this.body.nodes[targetNode.id]=targetNode;this.body.nodeIndices.push(targetNode.id);var connectionEdge=this.body.functions.createEdge({id:\"connectionEdge\"+util.randomUUID(),from:node.id,to:targetNode.id,physics:false,smooth:{enabled:true,type:\"continuous\",roundness:.5}});this.body.edges[connectionEdge.id]=connectionEdge;this.body.edgeIndices.push(connectionEdge.id);this.temporaryIds.nodes.push(targetNode.id);this.temporaryIds.edges.push(connectionEdge.id)}}this.touchTime=(new Date).valueOf()}}},{key:\"_dragControlNode\",value:function _dragControlNode(event){var pointer=this.body.functions.getPointer(event.center);if(this.temporaryIds.nodes[0]!==undefined){var targetNode=this.body.nodes[this.temporaryIds.nodes[0]];targetNode.x=this.canvas._XconvertDOMtoCanvas(pointer.x);targetNode.y=this.canvas._YconvertDOMtoCanvas(pointer.y);this.body.emitter.emit(\"_redraw\")}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}}},{key:\"_finishConnect\",value:function _finishConnect(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var connectFromId=undefined;if(this.temporaryIds.edges[0]!==undefined){connectFromId=this.body.edges[this.temporaryIds.edges[0]].fromId}var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(this.temporaryIds.nodes.indexOf(overlappingNodeIds[i])===-1){node=this.body.nodes[overlappingNodeIds[i]];break}}this._cleanupTemporaryNodesAndEdges();if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{if(this.body.nodes[connectFromId]!==undefined&&this.body.nodes[node.id]!==undefined){this._performAddEdge(connectFromId,node.id)}}}this.body.emitter.emit(\"_redraw\")}},{key:\"_dragStartEdge\",value:function _dragStartEdge(event){var pointer=this.lastTouch;this.selectionHandler._generateClickEvent(\"dragStart\",event,pointer,undefined,true)}},{key:\"_performAddNode\",value:function _performAddNode(clickData){var _this4=this;var defaultData={id:util.randomUUID(),x:clickData.pointer.canvas.x,y:clickData.pointer.canvas.y,label:\"new\"};if(typeof this.options.addNode===\"function\"){if(this.options.addNode.length===2){this.options.addNode(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this4.inMode===\"addNode\"){_this4.body.data.nodes.getDataSet().add(finalizedData);_this4.showManipulatorToolbar()}})}else{this.showManipulatorToolbar();throw new Error(\"The function for add does not support two arguments (data,callback)\")}}else{this.body.data.nodes.getDataSet().add(defaultData);this.showManipulatorToolbar()}}},{key:\"_performAddEdge\",value:function _performAddEdge(sourceNodeId,targetNodeId){var _this5=this;var defaultData={from:sourceNodeId,to:targetNodeId};if(typeof this.options.addEdge===\"function\"){if(this.options.addEdge.length===2){this.options.addEdge(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this5.inMode===\"addEdge\"){_this5.body.data.edges.getDataSet().add(finalizedData);_this5.selectionHandler.unselectAll();_this5.showManipulatorToolbar()}})}else{throw new Error(\"The function for connect does not support two arguments (data,callback)\")}}else{this.body.data.edges.getDataSet().add(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}},{key:\"_performEditEdge\",value:function _performEditEdge(sourceNodeId,targetNodeId){var _this6=this;var defaultData={id:this.edgeBeingEditedId,from:sourceNodeId,to:targetNodeId,label:this.body.data.edges._data[this.edgeBeingEditedId].label};var eeFunct=this.options.editEdge;if((typeof eeFunct===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(eeFunct))===\"object\"){eeFunct=eeFunct.editWithoutDrag}if(typeof eeFunct===\"function\"){if(eeFunct.length===2){eeFunct(defaultData,function(finalizedData){if(finalizedData===null||finalizedData===undefined||_this6.inMode!==\"editEdge\"){_this6.body.edges[defaultData.id].updateEdgeType();_this6.body.emitter.emit(\"_redraw\");_this6.showManipulatorToolbar()}else{_this6.body.data.edges.getDataSet().update(finalizedData);_this6.selectionHandler.unselectAll();_this6.showManipulatorToolbar()}})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().update(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}}]);return ManipulationSystem}();exports[\"default\"]=ManipulationSystem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _FloydWarshall=__webpack_require__(239);var _FloydWarshall2=_interopRequireDefault(_FloydWarshall);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var KamadaKawai=function(){function KamadaKawai(body,edgeLength,edgeStrength){(0,_classCallCheck3[\"default\"])(this,KamadaKawai);this.body=body;this.springLength=edgeLength;this.springConstant=edgeStrength;this.distanceSolver=new _FloydWarshall2[\"default\"]}(0,_createClass3[\"default\"])(KamadaKawai,[{key:\"setOptions\",value:function setOptions(options){if(options){if(options.springLength){this.springLength=options.springLength}if(options.springConstant){this.springConstant=options.springConstant}}}},{key:\"solve\",value:function solve(nodesArray,edgesArray){var ignoreClusters=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var D_matrix=this.distanceSolver.getDistances(this.body,nodesArray,edgesArray);this._createL_matrix(D_matrix);this._createK_matrix(D_matrix);this._createE_matrix();var threshold=.01;var innerThreshold=1;var iterations=0;var maxIterations=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3));var maxInnerIterations=5;var maxEnergy=1e9;var highE_nodeId=0,dE_dx=0,dE_dy=0,delta_m=0,subIterations=0;while(maxEnergy>threshold&&iterations<maxIterations){iterations+=1;var _getHighestEnergyNode2=this._getHighestEnergyNode(ignoreClusters);var _getHighestEnergyNode3=(0,_slicedToArray3[\"default\"])(_getHighestEnergyNode2,4);highE_nodeId=_getHighestEnergyNode3[0];maxEnergy=_getHighestEnergyNode3[1];dE_dx=_getHighestEnergyNode3[2];dE_dy=_getHighestEnergyNode3[3];delta_m=maxEnergy;subIterations=0;while(delta_m>innerThreshold&&subIterations<maxInnerIterations){subIterations+=1;this._moveNode(highE_nodeId,dE_dx,dE_dy);var _getEnergy2=this._getEnergy(highE_nodeId);var _getEnergy3=(0,_slicedToArray3[\"default\"])(_getEnergy2,3);delta_m=_getEnergy3[0];dE_dx=_getEnergy3[1];dE_dy=_getEnergy3[2]}}}},{key:\"_getHighestEnergyNode\",value:function _getHighestEnergyNode(ignoreClusters){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var maxEnergy=0;var maxEnergyNodeId=nodesArray[0];var dE_dx_max=0,dE_dy_max=0;for(var nodeIdx=0;nodeIdx<nodesArray.length;nodeIdx++){var m=nodesArray[nodeIdx];if(nodes[m].predefinedPosition===false||nodes[m].isCluster===true&&ignoreClusters===true||nodes[m].options.fixed.x===true||nodes[m].options.fixed.y===true){var _getEnergy4=this._getEnergy(m),_getEnergy5=(0,_slicedToArray3[\"default\"])(_getEnergy4,3),delta_m=_getEnergy5[0],dE_dx=_getEnergy5[1],dE_dy=_getEnergy5[2];if(maxEnergy<delta_m){maxEnergy=delta_m;maxEnergyNodeId=m;dE_dx_max=dE_dx;dE_dy_max=dE_dy}}}return[maxEnergyNodeId,maxEnergy,dE_dx_max,dE_dy_max]}},{key:\"_getEnergy\",value:function _getEnergy(m){var _E_sums$m=(0,_slicedToArray3[\"default\"])(this.E_sums[m],2),dE_dx=_E_sums$m[0],dE_dy=_E_sums$m[1];var delta_m=Math.sqrt(Math.pow(dE_dx,2)+Math.pow(dE_dy,2));return[delta_m,dE_dx,dE_dy]}},{key:\"_moveNode\",value:function _moveNode(m,dE_dx,dE_dy){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var d2E_dx2=0;var d2E_dxdy=0;var d2E_dy2=0;var x_m=nodes[m].x;var y_m=nodes[m].y;var km=this.K_matrix[m];var lm=this.L_matrix[m];for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var kmat=km[i];var lmat=lm[i];var denominator=1/Math.pow(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2),1.5);d2E_dx2+=kmat*(1-lmat*Math.pow(y_m-y_i,2)*denominator);d2E_dxdy+=kmat*(lmat*(x_m-x_i)*(y_m-y_i)*denominator);d2E_dy2+=kmat*(1-lmat*Math.pow(x_m-x_i,2)*denominator)}}var A=d2E_dx2,B=d2E_dxdy,C=dE_dx,D=d2E_dy2,E=dE_dy;var dy=(C/A+E/B)/(B/A-D/B);var dx=-(B*dy+C)/A;nodes[m].x+=dx;nodes[m].y+=dy;this._updateE_matrix(m)}},{key:\"_createL_matrix\",value:function _createL_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeLength=this.springLength;this.L_matrix=[];for(var i=0;i<nodesArray.length;i++){this.L_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.L_matrix[nodesArray[i]][nodesArray[j]]=edgeLength*D_matrix[nodesArray[i]][nodesArray[j]]}}}},{key:\"_createK_matrix\",value:function _createK_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeStrength=this.springConstant;this.K_matrix=[];for(var i=0;i<nodesArray.length;i++){this.K_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.K_matrix[nodesArray[i]][nodesArray[j]]=edgeStrength*Math.pow(D_matrix[nodesArray[i]][nodesArray[j]],-2)}}}},{key:\"_createE_matrix\",value:function _createE_matrix(){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;this.E_matrix={};this.E_sums={};for(var mIdx=0;mIdx<nodesArray.length;mIdx++){this.E_matrix[nodesArray[mIdx]]=[]}for(var _mIdx=0;_mIdx<nodesArray.length;_mIdx++){var m=nodesArray[_mIdx];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=_mIdx;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));this.E_matrix[m][iIdx]=[this.K_matrix[m][i]*(x_m-x_i-this.L_matrix[m][i]*(x_m-x_i)*denominator),this.K_matrix[m][i]*(y_m-y_i-this.L_matrix[m][i]*(y_m-y_i)*denominator)];this.E_matrix[i][_mIdx]=this.E_matrix[m][iIdx];dE_dx+=this.E_matrix[m][iIdx][0];dE_dy+=this.E_matrix[m][iIdx][1]}}this.E_sums[m]=[dE_dx,dE_dy]}}},{key:\"_updateE_matrix\",value:function _updateE_matrix(m){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var colm=this.E_matrix[m];var kcolm=this.K_matrix[m];var lcolm=this.L_matrix[m];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var cell=colm[iIdx];var oldDx=cell[0];var oldDy=cell[1];var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));var dx=kcolm[i]*(x_m-x_i-lcolm[i]*(x_m-x_i)*denominator);var dy=kcolm[i]*(y_m-y_i-lcolm[i]*(y_m-y_i)*denominator);colm[iIdx]=[dx,dy];dE_dx+=dx;dE_dy+=dy;var sum=this.E_sums[i];sum[0]+=dx-oldDx;sum[1]+=dy-oldDy}}this.E_sums[m]=[dE_dx,dE_dy]}}]);return KamadaKawai}();exports[\"default\"]=KamadaKawai},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var FloydWarshall=function(){function FloydWarshall(){(0,_classCallCheck3[\"default\"])(this,FloydWarshall)}(0,_createClass3[\"default\"])(FloydWarshall,[{key:\"getDistances\",value:function getDistances(body,nodesArray,edgesArray){var D_matrix={};var edges=body.edges;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var cell={};D_matrix[node]=cell;for(var j=0;j<nodesArray.length;j++){cell[nodesArray[j]]=i==j?0:1e9}}for(var _i=0;_i<edgesArray.length;_i++){var edge=edges[edgesArray[_i]];if(edge.connected===true&&D_matrix[edge.fromId]!==undefined&&D_matrix[edge.toId]!==undefined){D_matrix[edge.fromId][edge.toId]=1;D_matrix[edge.toId][edge.fromId]=1}}var nodeCount=nodesArray.length;for(var k=0;k<nodeCount;k++){var knode=nodesArray[k];var kcolm=D_matrix[knode];for(var _i2=0;_i2<nodeCount-1;_i2++){var inode=nodesArray[_i2];var icolm=D_matrix[inode];for(var _j=_i2+1;_j<nodeCount;_j++){var jnode=nodesArray[_j];var jcolm=D_matrix[jnode];var val=Math.min(icolm[jnode],icolm[knode]+kcolm[jnode]);icolm[jnode]=val;jcolm[inode]=val}}}return D_matrix}}]);return FloydWarshall}();exports[\"default\"]=FloydWarshall}])});\n",
"type": "application/javascript",
"module-type": "library"
}
}
}
{
"tiddlers": {
"$:/plugins/flibbles/relink/js/bulkops.js": {
"text": "/*\\\nmodule-type: startup\n\nReplaces the relinkTiddler defined in $:/core/modules/wiki-bulkops.js\n\nThis is a startup instead of a wikimethods module-type because it's the only\nway to ensure this runs after the old relinkTiddler method is applied.\n\n\\*/\n(function(){\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"redefine-relinkTiddler\";\nexports.synchronous = true;\n// load-modules is when wikimethods are applied in\n// ``$:/core/modules/startup/load-modules.js``\nexports.after = ['load-modules'];\n\nexports.startup = function() {\n\t$tw.Wiki.prototype.relinkTiddler = relinkTiddler;\n};\n\n/** Walks through all relinkable tiddlers and relinks them.\n * This replaces the existing function in core Tiddlywiki.\n */\nfunction relinkTiddler(fromTitle, toTitle, options) {\n\tvar self = this;\n\tvar failures = this.eachRelinkableTiddler(\n\t\t\tfromTitle,\n\t\t\ttoTitle,\n\t\t\toptions,\n\t\t\tfunction(changes, tiddler) {\n\t\tvar newTiddler = new $tw.Tiddler(tiddler,changes,self.getModificationFields())\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\tself.addTiddler(newTiddler);\n\t});\n\tif (failures.length > 0) {\n\t\tlanguage.reportFailures(failures);\n\t}\n};\n\n})();\n",
"module-type": "startup",
"title": "$:/plugins/flibbles/relink/js/bulkops.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/errors.js": {
"text": "/*\\\nmodule-type: library\n\nThis is the exception that gets thrown when a relink is impossible.\n (Or the hoops we'd have to go through to make it work are more than the user\n would want Relink to do, like create new tiddlers)\n\\*/\n\nfunction RelinkError() {};\nRelinkError.prototype = Object.create(Error);\nexports.RelinkError = RelinkError;\n\nfunction CannotRelinkError() { };\nCannotRelinkError.prototype = new RelinkError();\nexports.CannotRelinkError = CannotRelinkError\n\nfunction CannotFindMacroDefError(macroName) { this.macroName = macroName; };\nCannotFindMacroDefError.prototype = new RelinkError();\nexports.CannotFindMacroDefError = CannotFindMacroDefError;\n//Cannot find definition for ${macroName}. Make sure your macro whitelist is configured properly, and that you're macro is globally defined, or defined in all the places it's used.\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/errors.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/language.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles all logging and alerts Relink emits.\n\n\\*/\n\nexports.logRelink = function(message, args, options) {\n\tif (options.quiet) {\n\t\treturn;\n\t}\n\tvar raw = exports.log[message];\n\tif (raw) {\n\t\t// This is cheap, but whatevs. To do a proper\n\t\t// rendering would require working through a wiki\n\t\t// object. Too heavy weight for log messages.\n\t\tvar msg = raw.replace(/<<([^<>]+)>>/g, function(match, key) {\n\t\t\treturn args[key] || (\"<<\"+key+\">>\");\n\t\t});\n\t\tif (raw.indexOf('%c') >= 0) {\n\t\t\t// Doing a little bit of bold so the user sees\n\t\t\t// where we had to jump through hoops.\n\t\t\tconsole.log(\"%c\" + msg, \"\", \"font-weight: bold;\");\n\t\t} else {\n\t\t\tconsole.log(msg);\n\t\t}\n\t} else {\n\t\tconsole.warn(\"No such log message: \" + message);\n\t}\n};\n\nexports.getString = function(title, options) {\n\ttitle = \"$:/plugins/flibbles/relink/language/\" + title;\n\treturn options.wiki.renderTiddler(\"text/plain\", title,\n\t {variables: options.variables});\n};\n\nexports.failureAlert = \"Relink was unable to update the following tiddlers due to the complexity of the title:\";\n\nexports.reportFailures = function(failureList) {\n\tvar reportList = failureList.map(function(f) {return \"\\n \" + f});\n\tconsole.warn(exports.failureAlert + reportList);\n};\n\nexports.log = {\n\t\"attribute\": \"Renaming '<<from>>' to '<<to>>' in <<<element>> <<attribute>> /> attribute of tiddler '<<tiddler>>'\",\n\t\"attribute-placeholder\": \"Renaming '<<from>>' to '<<to>>' in <<<element>> <<attribute>> /> attribute of tiddler '<<tiddler>>' %cby creating placeholder macros\",\n\t\"field\": \"Renaming '<<from>>' to '<<to>>' in <<field>> of tiddler '<<tiddler>>'\",\n\t\"filteredtransclude\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>'\",\n\t\"filteredtransclude-placeholder\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>' %cby creating placeholder macros\",\n\t\"filteredtransclude-placeholder-widget\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"filteredtransclude-widget\": \"Renaming '<<from>>' to '<<to>>' in filtered transclusion of tiddler '<<tiddler>>' %cby converting it into a widget\",\n\t\"import\": \"Renaming '<<from>>' to '<<to>>' in \\\\import filter of tiddler '<<tiddler>>'\",\n\t\"import-placeholder\": \"Renaming '<<from>>' to '<<to>>' in \\\\import filter of tiddler '<<tiddler>>' %cby creating placeholder macros\",\n\t\"macrodef\": \"Renaming '<<from>>' to '<<to>>' in <<macro>> definition of tiddler '<<tiddler>>'\",\n\t\"macrodef-placeholder\": \"Renaming '<<from>>' to '<<to>>' in <<macro>> definition of tiddler '<<tiddler>>' %cby creating more placeholder macros\",\n\t\"prettylink\": \"Renaming '<<from>>' to '<<to>>' in prettylink of tiddler '<<tiddler>>'\",\n\t\"prettylink-placeholder\": \"Renaming '<<from>>' to '<<to>>' in prettylink of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"prettylink-widget\": \"Renaming '<<from>>' to '<<to>>' in prettylink of tiddler '<<tiddler>>' %cby converting it into a widget\",\n\t\"transclude\": \"Renaming '<<from>>' to '<<to>>' in transclusion of tiddler '<<tiddler>>'\",\n\t\"transclude-placeholder\": \"Renaming '<<from>>' to '<<to>>' in transclusion of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"transclude-widget\": \"Renaming '<<from>>' to '<<to>>' in transclusion of tiddler '<<tiddler>>' %cby converting it into a widget\",\n\t\"wikilink\": \"Renaming '<<from>>' to '<<to>>' in CamelCase link of tiddler '<<tiddler>>'\",\n\t\"wikilink-placeholder\": \"Renaming '<<from>>' to '<<to>>' in CamelCase link of tiddler '<<tiddler>>' %cby converting it into a widget and creating placeholder macros\",\n\t\"wikilink-pretty\": \"Renaming '<<from>>' to '<<to>>' in CamelCase link of tiddler '<<tiddler>>' %cby converting it into a prettylink\"\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/language.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/settings.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar fieldTypes = Object.create(null);\n\n$tw.modules.forEachModuleOfType(\"relinkfieldtype\", function(title, exports) {\n\tfieldTypes[exports.name] = exports;\n\t// For legacy reasons, some of the field types can go by other names\n\tif (exports.aliases) {\n\t\t$tw.utils.each(exports.aliases, function(alias) {\n\t\t\tfieldTypes[alias] = exports;\n\t\t});\n\t}\n});\n\n/**Returns a specific relinker.\n * This is useful for wikitext rules which need to parse a filter or a list\n */\nexports.getRelinker = function(name) {\n\treturn fieldTypes[name];\n};\n\nexports.getAttributes = function(options) {\n\treturn getSettings(options).attributes;\n};\n\nexports.getFields = function(options) {\n\treturn getSettings(options).fields;\n};\n\nexports.getMacros = function(options) {\n\treturn getSettings(options).macros;\n};\n\nexports.getOperators = function(options) {\n\treturn getSettings(options).operators;\n};\n\n/**Factories define methods that create settings given config tiddlers.\n * for factory method 'example', it will be called once for each:\n * \"$:/config/flibbles/relink/example/...\" tiddler that exists.\n * the argument \"key\" will be set to the contents of \"...\"\n *\n * The reason I build relink settings in this convoluted way is to minimize\n * the number of times tiddlywiki has to run through EVERY tiddler looking\n * for relink config tiddlers.\n *\n * Also, by exporting \"factories\", anyone who extends relink can patch in\n * their own factory methods to create settings that are generated exactly\n * once per rename.\n */\nexports.factories = {\n\tattributes: function(attributes, tiddler, key) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\tvar elem = root(key);\n\t\t\tvar attr = key.substr(elem.length+1);\n\t\t\tattributes[elem] = attributes[elem] || Object.create(null);\n\t\t\tattributes[elem][attr] = relinker;\n\t\t}\n\t},\n\tfields: function(fields, tiddler, name) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\tfields[name] = relinker;\n\t\t}\n\t},\n\tmacros: function(macros, tiddler, key) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\t// We take the last index, not the first, because macro\n\t\t\t// parameters can't have slashes, but macroNames can.\n\t\t\tvar name = dir(key);\n\t\t\tvar arg = key.substr(name.length+1);\n\t\t\tmacros[name] = macros[name] || Object.create(null);\n\t\t\tmacros[name][arg] = relinker;\n\t\t}\n\t},\n\toperators: function(operators, tiddler, name) {\n\t\tvar relinker = fieldTypes[tiddler.fields.text];\n\t\tif (relinker) {\n\t\t\toperators[name] = relinker;\n\t\t}\n\t}\n};\n\n/**We're caching the generated settings inside of options. Not exactly how\n * options was meant to be used, but it's fiiiiine.\n * The wiki global cache isn't a great place, because it'll get cleared many\n * times during a bulk relinking operation, and we can't recalculate this every\n * time without exploding a rename operation's time.\n * options works great. It only lasts just as long as the rename.\n * No longer, no shorter.\n */\nfunction getSettings(options) {\n\tvar secretCache = \"__relink_settings\";\n\tvar cache = options[secretCache];\n\tif (cache === undefined) {\n\t\tcache = options[secretCache] = compileSettings(options.wiki);\n\t}\n\treturn cache;\n};\n\nfunction compileSettings(wiki) {\n\tvar prefix = \"$:/config/flibbles/relink/\";\n\tvar settings = Object.create(null);\n\tfor (var name in exports.factories) {\n\t\tsettings[name] = Object.create(null);\n\t}\n\twiki.eachShadowPlusTiddlers(function(tiddler, title) {\n\t\tif (title.substr(0, prefix.length) === prefix) {\n\t\t\tvar remainder = title.substr(prefix.length);\n\t\t\tvar category = root(remainder);\n\t\t\tvar factory = exports.factories[category];\n\t\t\tif (factory) {\n\t\t\t\tvar name = remainder.substr(category.length+1);\n\t\t\t\tfactory(settings[category], tiddler, name);\n\t\t\t}\n\t\t}\n\t});\n\treturn settings;\n};\n\n/* Returns first bit of a path. path/to/tiddler -> path\n */\nfunction root(string) {\n\tvar index = string.indexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n};\n\n/* Returns all but the last bit of a path. path/to/tiddler -> path/to\n */\nfunction dir(string) {\n\tvar index = string.lastIndexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n}\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/settings.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/wikimethods.js": {
"text": "/*\\\nmodule-type: wikimethod\n\nIntroduces some utility methods used by Relink.\n\n\\*/\n\nvar errors = require('$:/plugins/flibbles/relink/js/errors');\n\nvar relinkOperations = Object.create(null);\n$tw.modules.applyMethods('relinkoperator', relinkOperations);\n\n/**Walks through all non-shadow tiddlers and sees which ones need to be relinked\n *\n * For each one, calls method on it with arguments (changes, tiddler, title)\n * Returns a list of tiddlers it would fail to update.\n */\nexports.eachRelinkableTiddler = function(fromTitle, toTitle, options, method) {\n\tvar data = this.getRelinkableTiddlers(fromTitle, toTitle, options);\n\tfor (var title in data.changes) {\n\t\tmethod(data.changes[title], this.getTiddler(title), title);\n\t}\n\treturn data.failures;\n};\n\n/** Returns a pair like this,\n * { changes: {...}, failures: [] }\n */\nexports.getRelinkableTiddlers = function(fromTitle, toTitle, options) {\n\tvar cache = this.getGlobalCache(\"relink-\"+fromTitle, function() {\n\t\treturn Object.create(null);\n\t});\n\tif (!cache[toTitle]) {\n\t\tcache[toTitle] = getFreshRelinkableTiddlers(this, fromTitle, toTitle, options);\n\t}\n\treturn cache[toTitle];\n};\n\nfunction getFreshRelinkableTiddlers(wiki, fromTitle, toTitle, options) {\n\toptions = options || {};\n\toptions.wiki = options.wiki || wiki;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tvar failures = [];\n\tvar changeList = Object.create(null);\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tvar toUpdate = getRelinkFilter(wiki);\n\t\tvar tiddlerList = toUpdate.call(wiki); // no source or widget\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(tiddler\n\t\t\t&& !tiddler.fields[\"plugin-type\"]\n\t\t\t&& tiddler.fields.type !== \"application/javascript\") {\n\t\t\t\ttry {\n\t\t\t\t\tvar changes = Object.create(null);\n\t\t\t\t\tfor (var operation in relinkOperations) {\n\t\t\t\t\t\trelinkOperations[operation](tiddler, fromTitle, toTitle, changes, options);\n\t\t\t\t\t}\n\t\t\t\t\t// If any fields changed, update tiddler\n\t\t\t\t\tif(Object.keys(changes).length > 0) {\n\t\t\t\t\t\tchangeList[title] = changes;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (e instanceof errors.RelinkError) {\n\t\t\t\t\t\tfailures.push(title);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Should we test for instanceof Error instead?: yes\n\t\t\t\t\t\t// Does that work in the testing environment?: no\n\t\t\t\t\t\tif (e.message) {\n\t\t\t\t\t\t\te.message = e.message + \"\\nWhen relinking '\" + title + \"'\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn {changes: changeList, failures: failures};\n};\n\nfunction getRelinkFilter(wiki) {\n\tvar toUpdate = \"$:/config/flibbles/relink/to-update\";\n\treturn wiki.getCacheForTiddler(toUpdate, \"relink-toUpdate\", function() {\n\t\tvar tiddler = wiki.getTiddler(toUpdate);\n\t\tif (tiddler) {\n\t\t\tvar filter = wiki.compileFilter(tiddler.fields.text);\n\t\t\treturn filter;\n\t\t} else {\n\t\t\treturn wiki.allTitles;\n\t\t}\n\t});\n};\n\n/**Returns a list of tiddlers that would be renamed by a relink operations.\n */\nexports.relinkTiddlerDryRun = function(fromTitle, toTitle, options) {\n\tvar results = [];\n\tthis.eachRelinkableTiddler(\n\t\t\tfromTitle,\n\t\t\ttoTitle,\n\t\t\toptions,\n\t\t\tfunction(changes, tiddler, title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\nvar ImportVariablesWidget = require(\"$:/core/modules/widgets/importvariables.js\").importvariables;\n\nexports.relinkGlobalMacros = function() {\n\tif (!this._relinkWidget) {\n\t\tvar importWidget = this.relinkGenerateVariableWidget( \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\");\n\t\tthis.addEventListener(\"change\", function(changes) {\n\t\t\timportWidget.refresh(changes);\n\t\t});\n\t\tthis._relinkWidget = importWidget;\n\t}\n\tvar rtn = this._relinkWidget;\n\twhile (rtn.children.length > 0) {\n\t\trtn = rtn.children[0];\n\t}\n\treturn rtn;\n};\n\nexports.relinkGenerateVariableWidget = function(filter, parent) {\n\tvar treeNode = { attributes: {\n\t\t\"filter\": {\n\t\t\ttype: \"string\",\n\t\t\tvalue: filter\n\t\t}\n\t}};\n\tvar importWidget = new ImportVariablesWidget(treeNode,{parentWidget: parent, wiki: this});\n\timportWidget.computeAttributes();\n\timportWidget.execute();\n\t// These two functions neuter the widget, so it never tries\n\t// to render.\n\timportWidget.findNextSiblingDomNode = function() {};\n\timportWidget.renderChildren(this.parentDomNode);\n\treturn importWidget;\n};\n",
"module-type": "wikimethod",
"title": "$:/plugins/flibbles/relink/js/wikimethods.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/impossible.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven an input of toTitles, (probably just one), outputs all the tiddlers in\nwhich Relink would fail to update the operand to any of those given titles.\n\n`[[{terrible'}!!\"title\"]relink:impossible[fromTiddler]]`\n\nWould output all the tiddlers where Relink would fail to update `from here` to\n`{terrible'}!!\"title\"`\n\nI know, it's weird. You'd think it would test all incoming inputs instead of\nusing them as to fromTitle, but this is the only way to input both a fromTitle\nand a toTitle.\n\nResults are dominantly appanded if more than one input tiddler is given.\n\\*/\n\nexports.impossible = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\tsource(function(toTiddler, toTitle) {\n\t\t\tvar fails = options.wiki.eachRelinkableTiddler(\n\t\t\t\tfromTitle, toTitle,\n\t\t\t\t$tw.utils.extend({quiet: true}, options),\n\t\t\t\tfunction(tiddler, title) {});\n\t\t\t$tw.utils.pushTop(results, fails);\n\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/impossible.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/references.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns all non-shadow tiddlers that have any\nsort of updatable reference to it.\n\n\n`relink:references[fromTiddler]]`\n\nReturns all tiddlers that reference `fromTiddler` somewhere inside them.\n\nInput is ignored. Maybe it shouldn't do this.\nAlso, maybe it should properly recon, instead of fake replacing the title with\n`__relink_dummy__`\n\\*/\n\nexports.references = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\toptions.wiki.eachRelinkableTiddler(\n\t\t\tfromTitle, \"__relink_dummy__\",\n\t\t\t$tw.utils.extend({quiet: true}, options),\n\t\t\tfunction(changes, tiddler, title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/references.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/relink.js": {
"text": "/*\\\nmodule-type: filteroperator\n\nThis filter acts as a namespace for several small, simple filters, such as\n\n`[relink:impossible[]]`\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nvar relinkFilterOperators;\n\nfunction getRelinkFilterOperators() {\n\tif(!relinkFilterOperators) {\n\t\trelinkFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"relinkfilteroperator\",\n\t\t relinkFilterOperators);\n\t}\n\treturn relinkFilterOperators;\n}\n\nexports.relink = function(source,operator,options) {\n\tvar suffixPair = parseSuffix(operator.suffix);\n\tvar relinkFilterOperator = getRelinkFilterOperators()[suffixPair[0]];\n\tif (relinkFilterOperator) {\n\t\tvar newOperator = $tw.utils.extend({}, operator);\n\t\tnewOperator.suffix = suffixPair[1];\n\t\treturn relinkFilterOperator(source, newOperator, options);\n\t} else {\n\t\treturn [language.getString(\"Error/RelinkFilterOperator\", options)];\n\t}\n};\n\nfunction parseSuffix(suffix) {\n\tvar index = suffix? suffix.indexOf(\":\"): -1;\n\tif (index >= 0) {\n\t\treturn [suffix.substr(0, index), suffix.substr(index+1)];\n\t} else {\n\t\treturn [suffix];\n\t}\n}\n",
"module-type": "filteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/relink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/splitafter.js": {
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: relinkfilteroperator\n\nFilter operator that splits each result on the last occurance of the specified separator and returns the last bit.\n\nWhat does this have to do with relink? Nothing. I need this so I can render\nthe configuration menu. I //could// use [splitregexp[]], but then I'd be\nlimited to Tiddlywiki v5.1.20 or later.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitafter = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar index = title.lastIndexOf(operator.operand);\n\t\tif(index < 0) {\n\t\t\t$tw.utils.pushTop(results,title);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,title.substr(index+1));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n\n",
"title": "$:/plugins/flibbles/relink/js/filteroperators/splitafter.js",
"type": "application/javascript",
"module-type": "relinkfilteroperator"
},
"$:/plugins/flibbles/relink/js/fieldtypes/filter.js": {
"text": "/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\n/**Returns undefined if no change was made.\n */\n\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\n\nexports.name = \"filter\";\n\nexports.relink = function(filter, fromTitle, toTitle, options) {\n\tif (!filter || filter.indexOf(fromTitle) < 0) {\n\t\treturn undefined;\n\t}\n\tvar relinker = new Rebuilder(filter);\n\tvar whitelist = settings.getOperators(options);\n\tvar p = 0, // Current position in the filter string\n\t\tmatch, noPrecedingWordBarrier,\n\t\twordBarrierRequired=false;\n\tvar whitespaceRegExp = /\\s+/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filter.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filter);\n\t\tnoPrecedingWordBarrier = false;\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t} else if (p != 0) {\n\t\t\tif (wordBarrierRequired) {\n\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\twordBarrierRequired = false;\n\t\t\t} else {\n\t\t\t\tnoPrecedingWordBarrier = true;\n\t\t\t}\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filter.length) {\n\t\t\tvar val;\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filter);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\t// It's a bad filter\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif(match[1]) { // prefix\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\t// We check if this is a standalone title,\n\t\t\t\t// like `[[MyTitle]]`. We treat those like\n\t\t\t\t// `\"MyTitle\"` or `MyTitle`. Not like a run.\n\t\t\t\tvar standaloneTitle = /\\[\\[([^\\]]+)\\]\\]/g;\n\t\t\t\tstandaloneTitle.lastIndex = p;\n\t\t\t\tvar alone = standaloneTitle.exec(filter);\n\t\t\t\tif (!alone || alone.index != p) {\n\t\t\t\t\t// It's a legit run\n\t\t\t\t\tp =parseFilterOperation(relinker,fromTitle,toTitle,filter,p,whitelist,options);\n\t\t\t\t\tif (p === undefined) {\n\t\t\t\t\t\t// The filter is malformed\n\t\t\t\t\t\t// We do nothing.\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbracketTitle = alone[1];\n\t\t\t\toperandRegExp.lastIndex = standaloneTitle.lastIndex;\n\t\t\t\tval = alone[1];\n\t\t\t} else {\n\t\t\t\t// standalone Double quoted string, single\n\t\t\t\t// quoted string, or noquote ahead.\n\t\t\t\tval = match[3] || match[4] || match[5];\n\t\t\t}\n\t\t\t// From here on, we're dealing with a standalone title\n\t\t\t// expression. like `\"MyTitle\"` or `[[MyTitle]]`\n\t\t\t// We're much more flexible about relinking these.\n\t\t\tvar preference = undefined;\n\t\t\tif (match[3]) {\n\t\t\t\tpreference = '\"';\n\t\t\t} else if (match[4]) {\n\t\t\t\tpreference = \"'\";\n\t\t\t} else if (match[5]) {\n\t\t\t\tpreference = '';\n\t\t\t}\n\t\t\tif (val === fromTitle) {\n\t\t\t\tvar newVal = wrapTitle(toTitle, preference);\n\t\t\t\tif (newVal === undefined) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tthrow new CannotRelinkError();\n\t\t\t\t\t}\n\t\t\t\t\tnewVal = \"[<\"+options.placeholder.getPlaceholderFor(toTitle)+\">]\";\n\t\t\t\t\toptions.usedPlaceholder = true;\n\t\t\t\t}\n\t\t\t\tif (newVal[0] != '[') {\n\t\t\t\t\t// not bracket enclosed\n\t\t\t\t\t// this requires whitespace\n\t\t\t\t\t// arnound it\n\t\t\t\t\tif (noPrecedingWordBarrier && !match[1]) {\n\t\t\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\t\t}\n\t\t\t\t\twordBarrierRequired = true;\n\t\t\t\t}\n\t\t\t\trelinker.add(newVal,p,operandRegExp.lastIndex);\n\t\t\t}\n\t\t\tp = operandRegExp.lastIndex;\n\t\t}\n\t}\n\treturn relinker.results();\n};\n\nfunction wrapTitle(value, preference) {\n\tvar choices = {\n\t\t\"\": function(v) {return !/[\\s\\[\\]]/.test(v); },\n\t\t\"[\": canBePrettyOperand,\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; }\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"[\": function(v) {return \"[[\"+v+\"]]\"; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; }\n\t};\n\tif (choices[preference]) {\n\t\tif (choices[preference](value)) {\n\t\t\treturn wrappers[preference](value);\n\t\t}\n\t}\n\tfor (var quote in choices) {\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n}\n\nfunction parseFilterOperation(relinker, fromTitle, toTitle, filterString, p, whitelist, options) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\t// Missing [ in filter expression\n\t\treturn undefined;\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\tp++;\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing [ in filter expression\n\t\t\treturn undefined;\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\tvar ref = $tw.utils.parseTextReference(operand);\n\t\t\t\tif (ref.title === fromTitle) {\n\t\t\t\t\tif(!canBePrettyIndirect(toTitle)) {\n\t\t\t\t\t\tthrow new CannotRelinkError();\n\t\t\t\t\t}\n\t\t\t\t\tref.title = toTitle;\n\t\t\t\t\tvar newRef = refHandler.toString(ref);\n\t\t\t\t\t// We don't check the whitelist.\n\t\t\t\t\t// All indirect operands convert.\n\t\t\t\t\trelinker.add(newRef,p,nextBracketPos);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// Check if this is a relevant operator\n\t\t\t\tvar handler = fieldType(whitelist, operator);\n\t\t\t\tif (!handler) {\n\t\t\t\t\t// This operator isn't managed. Bye.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar result = handler.relink(operand, fromTitle, toTitle, options);\n\t\t\t\tif (!result) {\n\t\t\t\t\t// The fromTitle wasn't in the operand.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar wrapped;\n\t\t\t\tif (!canBePrettyOperand(result)) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tthrow new CannotRelinkError();\n\t\t\t\t\t}\n\t\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(result);\n\t\t\t\t\twrapped = \"<\"+ph+\">\";\n\t\t\t\t\toptions.usedPlaceholder = true;\n\t\t\t\t} else {\n\t\t\t\t\twrapped = \"[\"+result+\"]\";\n\t\t\t\t}\n\t\t\t\trelinker.add(wrapped, p-1, nextBracketPos+1);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Unterminated regular expression\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing closing bracket in filter expression\n\t\t\t// return undefined;\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\t// Missing ] in filter expression\n\t\treturn undefined;\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n// Returns the relinker needed for a given operator, or returns undefined.\nfunction fieldType(whitelist, operator) {\n\treturn whitelist[operator.operator] ||\n\t (operator.suffix &&\n\t whitelist[operator.operator + \":\" + operator.suffix]);\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\nfunction canBePrettyIndirect(value) {\n\treturn value.indexOf('}') < 0;\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/filter.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/list.js": {
"text": "/*\\\nThis manages replacing titles that occur within stringLists, like,\n\nTiddlerA [[Tiddler with spaces]] [[Another Title]]\n\\*/\n\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\n\nexports.name = \"list\";\n\n/**Returns undefined if no change was made.\n * Parameter: value can literally be a list. This can happen for builtin\n * types 'list' and 'tag'. In those cases, we also return list.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar isModified = false,\n\t\tactualList = false,\n\t\tlist;\n\tif (typeof value !== \"string\") {\n\t\t// Not a string. Must be a list.\n\t\t// clone it, since we may make changes to this possibly\n\t\t// frozen list.\n\t\tlist = (value || []).slice(0);\n\t\tactualList = true;\n\t} else {\n\t\tlist = $tw.utils.parseStringArray(value || \"\");\n\t}\n\t$tw.utils.each(list,function (title,index) {\n\t\tif(title === fromTitle) {\n\t\t\tlist[index] = toTitle;\n\t\t\tisModified = true;\n\t\t}\n\t});\n\tif (isModified) {\n\t\t// It doesn't parse correctly alone, it won't\n\t\t// parse correctly in any list.\n\t\tif (!canBeListItem(toTitle)) {\n\t\t\tthrow new CannotRelinkError();\n\t\t}\n\t\tif (actualList) {\n\t\t\treturn list;\n\t\t} else {\n\t\t\treturn $tw.utils.stringifyList(list);\n\t\t}\n\t}\n\treturn undefined;\n};\n\nfunction canBeListItem(value) {\n\tvar regexp = /\\]\\][^\\S\\xA0]/m;\n\treturn !regexp.test(value);\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/list.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/reference.js": {
"text": "/*\\\nThis manages replacing titles that occur inside text references,\n\ntiddlerTitle\ntiddlerTitle!!field\n!!field\ntiddlerTitle##propertyIndex\n\\*/\n\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\n\nexports.name = \"reference\";\n\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar reference = $tw.utils.parseTextReference(value);\n\tif (reference.title !== fromTitle) {\n\t\treturn undefined;\n\t}\n\treference.title = toTitle;\n\treturn exports.toString(reference);\n};\n\nexports.toString = function(textReference) {\n\tvar title = textReference.title || '';\n\tif (!exports.canBePretty(title)) {\n\t\tthrow new CannotRelinkError();\n\t}\n\tif (textReference.field) {\n\t\treturn title + \"!!\" + textReference.field;\n\t} else if (textReference.index) {\n\t\treturn title + \"##\" + textReference.index;\n\t}\n\treturn title;\n};\n\nexports.canBePretty = function(title) {\n\treturn title.indexOf(\"!!\") < 0 && title.indexOf(\"##\") < 0;\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/reference.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/title.js": {
"text": "/*\\\nThis specifies logic for replacing a single-tiddler field. This is the\nsimplest kind of field type. One title swaps out for the other.\n\\*/\n\n// NOTE TO MODDERS: If you're making your own field types, the name must be\n// alpha characters only.\nexports.name = 'title';\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tif (value === fromTitle) {\n\t\treturn toTitle;\n\t}\n\treturn undefined;\n};\n\n// This is legacy support for when 'title' was known as 'field'\nexports.aliases = ['field', 'yes'];\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/title.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/fields.js": {
"text": "/*\\\n\nHandles all fields specified in the plugin configuration. Currently, this\nonly supports single-value fields.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\n\nexports['fields'] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = settings.getFields(options);\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tvar value = handler.relink(input, fromTitle, toTitle, options);\n\t\tif (value !== undefined) {\n\t\t\tlog(\"field\", {\n\t\t\t\tfrom: fromTitle,\n\t\t\t\tto: toTitle,\n\t\t\t\ttiddler: tiddler.fields.title,\n\t\t\t\tfield: descriptor(field)\n\t\t\t}, options);\n\t\t\tchanges[field] = value;\n\t\t}\n\t});\n};\n\nfunction descriptor(field) {\n\tif (field === \"tags\") {\n\t\treturn \"tags\";\n\t} else {\n\t\treturn field + \" field\" ;\n\t}\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/fields.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text.js": {
"text": "/*\\\n\nDepending on the tiddler type, this will apply textOperators which may\nrelink titles within the body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar defaultOperator = \"text/vnd.tiddlywiki\";\n\nvar textOperators = Object.create(null);\n$tw.modules.applyMethods('relinktextoperator', textOperators);\n\nexports['text'] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar text = tiddler.fields.text,\n\t\tbuilder = [],\n\t\tbuildIndex = 0;\n\tif (text && text.indexOf(fromTitle) >= 0) {\n\t\tvar type = tiddler.fields.type || defaultOperator;\n\t\tif (textOperators[type]) {\n\t\t\ttextOperators[type].call(this, tiddler, fromTitle, toTitle, changes, options);\n\t\t}\n\t}\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js": {
"text": "/*\\\n\nChecks for fromTitle in a tiddler's text. If found, sees if it's relevant,\nand tries to swap it out if it is.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar type = 'text/vnd.tiddlywiki';\nvar WikiParser = require(\"$:/core/modules/parsers/wikiparser/wikiparser.js\")[type];\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder.js\");\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar rules = Object.create(null);\n\n$tw.modules.forEachModuleOfType(\"relinkwikitextrule\", function(title, exports) {\n\tvar names = exports.name;\n\tif (typeof names === \"string\") {\n\t\tnames = [names];\n\t}\n\tfor (var i = 0; i < names.length; i++) {\n\t\trules[names[i]] = exports;\n\t}\n});\n\nfunction WikiRelinker(text, title, toTitle, options) {\n\tWikiParser.call(this, null, text, options);\n\tif (!this.relinkMethodsInjected) {\n\t\t$tw.utils.each([this.pragmaRuleClasses, this.blockRuleClasses, this.inlineRuleClasses], function(classList) {\n\t\t\tfor (var name in classList) {\n\t\t\t\tif (rules[name]) {\n\t\t\t\t\tdelete rules[name].name;\n\t\t\t\t\t$tw.utils.extend(classList[name].prototype, rules[name]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tWikiRelinker.prototype.relinkMethodsInjected = true;\n\t}\n\tthis.title = title;\n\tthis.toTitle = toTitle;\n\tthis.inlineRules = this.blockRules.concat(this.pragmaRules, this.inlineRules);\n\t// We work through relinkRules so we can change it later.\n\t// relinkRules is inlineRules so it gets touched up by amendRules().\n\tthis.relinkRules = this.inlineRules;\n\tthis.placeholders = Object.create(null);\n\tthis.reverseMap = Object.create(null);\n\tthis.knownMacros = Object.create(null);\n\tthis.widget = undefined;\n};\n\nWikiRelinker.prototype = Object.create(WikiParser.prototype);\nWikiRelinker.prototype.parsePragmas = function() {return []; };\nWikiRelinker.prototype.parseInlineRun = function() {};\nWikiRelinker.prototype.parseBlocks = function() {};\n\nWikiRelinker.prototype.getPlaceholderFor = function(value, category) {\n\tvar placeholder = this.reverseMap[value];\n\tif (placeholder) {\n\t\treturn placeholder;\n\t}\n\tvar number = 0;\n\tvar prefix = \"relink-\"\n\tif (category && category !== \"title\") {\n\t\t// I don't like \"relink-title-1\". \"relink-1\" should be for\n\t\t// titles. lists, and filters can have descriptors though.\n\t\tprefix += category + \"-\";\n\t}\n\tdo {\n\t\tnumber += 1;\n\t\tplaceholder = prefix + number;\n\t} while (this.knownMacros[placeholder]);\n\tthis.placeholders[placeholder] = value;\n\tthis.reverseMap[value] = placeholder;\n\tthis.reserve(placeholder);\n\treturn placeholder;\n};\n\nWikiRelinker.prototype.addWidget = function(widget) {\n\tthis.widget = widget;\n\twhile (this.widget.children.length > 0) {\n\t\tthis.widget = this.widget.children[0];\n\t}\n};\n\nWikiRelinker.prototype.getVariableWidget = function() {\n\tif (!this.widget) {\n\t\tthis.widget = this.wiki.relinkGlobalMacros();\n\t\tvar parentWidget = new Widget({}, {parentWidget: this.widget});\n\t\tparentWidget.setVariable(\"currentTiddler\", this.title);\n\t\tvar widget = new Widget({}, {parentWidget: parentWidget});\n\t\tthis.addWidget(widget);\n\t}\n\treturn this.widget;\n};\n\nWikiRelinker.prototype.reserve = function(macro) {\n\tthis.knownMacros[macro] = true;\n};\n\nWikiRelinker.prototype.getPreamble = function() {\n\tvar results = [];\n\tfor (var name in this.placeholders) {\n\t\tvar val = this.placeholders[name];\n\t\tresults.push(\"\\\\define \"+name+\"() \"+val+\"\\n\");\n\t}\n\tif (results.length > 0) {\n\t\treturn results.join('');\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\nexports[type] = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar text = tiddler.fields.text,\n\t\tbuilder = new Rebuilder(text),\n\t\tparser = new WikiRelinker(text, tiddler.fields.title, toTitle, options),\n\t\tmatchingRule;\n\twhile (matchingRule = parser.findNextMatch(parser.relinkRules, parser.pos)) {\n\t\tif (matchingRule.rule.relink) {\n\t\t\tvar newSegment = matchingRule.rule.relink(tiddler, text, fromTitle, toTitle, options);\n\t\t\tif (newSegment !== undefined) {\n\t\t\t\tbuilder.add(newSegment, matchingRule.matchIndex, parser.pos);\n\t\t\t}\n\t\t} else {\n\t\t\tif (matchingRule.rule.matchRegExp !== undefined) {\n\t\t\t\tparser.pos = matchingRule.rule.matchRegExp.lastIndex;\n\t\t\t} else {\n\t\t\t\t// We can't easily determine the end of this\n\t\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t\t// the results.\n\t\t\t\tmatchingRule.rule.parse();\n\t\t\t}\n\t\t}\n\t}\n\tif (builder.changed()) {\n\t\tbuilder.prepend(parser.getPreamble());\n\t\tchanges.text = builder.results();\n\t}\n};\n",
"module-type": "relinktextoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles comment blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"<!-- [[Renamed Title]] -->\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"commentinline\", \"commentblock\"];\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of filtered transclusions in wiki text like,\n\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n\nThis renames both the list and the template field.\n\n\\*/\n\nexports.name = ['filteredtranscludeinline', 'filteredtranscludeblock'];\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getRelinker('filter');\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar utils = require(\"./utils.js\");\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar m = this.match;\n\t\tfilter = m[1],\n\t\ttooltip = m[2],\n\t\ttemplate = m[3],\n\t\tstyle = m[4],\n\t\tclasses = m[5],\n\t\tparser = this.parser,\n\t\tlogArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t};\n\tparser.pos = this.matchRegExp.lastIndex;\n\tvar modified = false;\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t// preserves user-inputted whitespace\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\tvar relinkedFilter = filterHandler.relink(filter, fromTitle, toTitle, extendedOptions);\n\tvar message = \"filteredtransclude\";\n\tif (extendedOptions.usedPlaceholder) {\n\t\tmessage = \"filteredtransclude-placeholder\";\n\t}\n\tif (relinkedFilter !== undefined) {\n\t\tfilter = relinkedFilter;\n\t\tmodified = true;\n\t}\n\tif (!modified) {\n\t\treturn undefined;\n\t}\n\tif (canBePretty(filter) && canBePrettyTemplate(template)) {\n\t\tlog(message, logArguments, options);\n\t\treturn prettyList(filter, tooltip, template, style, classes);\n\t}\n\tmessage = message + \"-widget\";\n\tif (classes !== undefined) {\n\t\tclasses = classes.split('.').join(' ');\n\t}\n\tfunction wrap(name, value, treatAsTitle) {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\t\tvar wrappedValue = utils.wrapAttributeValue(value);\n\t\tif (wrappedValue === undefined) {\n\t\t\tvar category = treatAsTitle ? undefined : name;\n\t\t\twrappedValue = \"<<\"+parser.getPlaceholderFor(value,category)+\">>\";\n\t\t\tmessage = \"filteredtransclude-placeholder-widget\";\n\t\t}\n\t\treturn \" \"+name+\"=\"+wrappedValue;\n\t};\n\tvar widget = [\n\t\t\"<$list\",\n\t\twrap(\"filter\", filter),\n\t\twrap(\"tooltip\", tooltip),\n\t\twrap(\"template\", template, true),\n\t\twrap(\"style\", style),\n\t\twrap(\"itemClass\", classes),\n\t\t\"/>\"\n\t].join('');\n\tlog(message, logArguments, options);\n\treturn widget;\n};\n\nfunction canBePretty(filter) {\n\treturn filter.indexOf('|') < 0 && filter.indexOf('}}') < 0;\n};\n\nfunction canBePrettyTemplate(template) {\n\treturn !template || (\n\t\ttemplate.indexOf('|') < 0\n\t\t&& template.indexOf('{') < 0\n\t\t&& template.indexOf('}') < 0);\n};\n\nfunction prettyList(filter, tooltip, template, style, classes) {\n\tif (tooltip === undefined) {\n\t\ttooltip = '';\n\t} else {\n\t\ttooltip = \"|\" + tooltip;\n\t}\n\tif (template === undefined) {\n\t\ttemplate = '';\n\t} else {\n\t\ttemplate = \"||\" + template;\n\t}\n\tif (classes === undefined) {\n\t\tclasses = '';\n\t} else {\n\t\tclasses = \".\" + classes;\n\t}\n\tstyle = style || '';\n\treturn \"{{{\"+filter+tooltip+template+\"}}\"+style+\"}\"+classes;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in attributes of widgets and html elements\nThis is configurable to select exactly which attributes of which elements\nshould be changed.\n\n<$link to=\"TiddlerTitle\" />\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar html = require(\"$:/core/modules/parsers/wikiparser/rules/html.js\");\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/settings\").getRelinker('filter');\nvar macrocall = require(\"./macrocall.js\");\nvar CannotRelinkError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotRelinkError;\n\nexports.name = \"html\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar managedElement = settings.getAttributes(options)[this.nextTag.tag],\n\t\tbuilder = new Rebuilder(text, this.nextTag.start);\n\tvar importFilterAttr;\n\tfor (var attributeName in this.nextTag.attributes) {\n\t\tvar attr = this.nextTag.attributes[attributeName];\n\t\tvar nextEql = text.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\timportFilterAttr = attr;\n\t\t}\n\t\tvar oldValue, quote, logMessage = \"attribute\";\n\t\tif (attr.type === \"string\") {\n\t\t\tvar handler = getAttributeHandler(this.nextTag, attributeName, options);\n\t\t\tif (!handler) {\n\t\t\t\t// We don't manage this attribute. Bye.\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\t\t\toldValue = attr.value;\n\t\t\tvar value = handler.relink(attr.value, fromTitle, toTitle, extendedOptions);\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (extendedOptions.usedPlaceholder) {\n\t\t\t\tlogMessage = \"attribute-placeholder\";\n\t\t\t}\n\t\t\tquote = utils.determineQuote(text, attr);\n\t\t\tattr.quotedValue = utils.wrapAttributeValue(value,quote);\n\t\t\tif (attr.quotedValue === undefined) {\n\t\t\t\t// The value was unquotable. We need to make\n\t\t\t\t// a macro in order to replace it.\n\t\t\t\tvalue = this.parser.getPlaceholderFor(value,handler.name)\n\t\t\t\tattr.type = \"macro\";\n\t\t\t\tattr.quotedValue = \"<<\"+value+\">>\";\n\t\t\t\tlogMessage = \"attribute-placeholder\";\n\t\t\t}\n\t\t\tattr.value = value;\n\t\t} else if (attr.type === \"indirect\") {\n\t\t\tif (toTitle.indexOf(\"}\") >= 0) {\n\t\t\t\t// Impossible replacement\n\t\t\t\tthrow new CannotRelinkError();\n\t\t\t}\n\t\t\toldValue = attr.textReference;\n\t\t\tquote = \"{{\";\n\t\t\tvar ref = $tw.utils.parseTextReference(attr.textReference);\n\t\t\tif (ref.title !== fromTitle) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tref.title = toTitle;\n\t\t\tattr.textReference = refHandler.toString(ref);\n\t\t\tattr.quotedValue = \"{{\"+attr.textReference+\"}}\";\n\t\t} else if (attr.type === \"filtered\") {\n\t\t\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\t\t\toldValue = attr.filter\n\t\t\tvar filter = filterHandler.relink(attr.filter, fromTitle, toTitle, extendedOptions);\n\t\t\tif (filter === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!canBeFilterValue(filter)) {\n\t\t\t\t// Although I think we can actually do this one.\n\t\t\t\tthrow new CannotRelinkError();\n\t\t\t}\n\t\t\tattr.filter = filter;\n\t\t\tattr.quotedValue = \"{{{\" + filter + \"}}}\";\n\t\t\tquote = \"{{{\";\n\t\t} else if (attr.type === \"macro\") {\n\t\t\tvar macro = attr.value;\n\t\t\toldValue = attr.value;\n\t\t\tvar newMacro = macrocall.relinkMacroInvocation(macro, text, this.parser, fromTitle, toTitle, options);\n\t\t\tif (newMacro === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (macrocall.mustBeAWidget(newMacro)) {\n\t\t\t\tthrow new CannotRelinkError();\n\t\t\t}\n\t\t\tattr.value = newMacro;\n\t\t\t// TODO: Let's not hack like this. attr.value is\n\t\t\t// expected to be a string of the unquoted value below.\n\t\t\t// Make this better when I can.\n\t\t\toldValue.length = (macro.end-macro.start)-4;\n\t\t\tquote = \"<<\";\n\t\t\tattr.quotedValue = macrocall.macroToString(newMacro, text, this.parser, options);\n\t\t} else {\n\t\t\tcontinue;\n\t\t}\n\t\t// account for the quote if it's there.\n\t\t// We count backwards from the end to preserve whitespace\n\t\tvar valueStart = attr.end\n\t\t - (quote.length*2)\n\t\t - oldValue.length;\n\t\tbuilder.add(attr.quotedValue, valueStart, attr.end);\n\t\tvar logArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title,\n\t\t\telement: this.nextTag.tag,\n\t\t\tattribute: attributeName\n\t\t};\n\t\tlog(logMessage, logArguments, options);\n\t}\n\tif (importFilterAttr) {\n\t\tvar importFilter = computeAttribute(importFilterAttr, this.parser, options);\n\t\tvar parentWidget = this.parser.getVariableWidget();\n\t\tvar varHolder = options.wiki.relinkGenerateVariableWidget(importFilter, parentWidget);\n\t\tthis.parser.addWidget(varHolder);\n\t}\n\tthis.parser.pos = this.nextTag.end;\n\treturn builder.results(this.nextTag.end);\n};\n\n/** Returns the field handler for the given attribute of the given widget.\n * If this returns undefined, it means we don't handle it. So skip.\n */\nfunction getAttributeHandler(widget, attributeName, options) {\n\tif (widget.tag === \"$macrocall\") {\n\t\tvar nameAttr = widget.attributes[\"$name\"];\n\t\tvar macro = settings.getMacros(options)[nameAttr.value];\n\t\tif (macro) {\n\t\t\treturn macro[attributeName];\n\t\t}\n\t} else {\n\t\tvar element = settings.getAttributes(options)[widget.tag];\n\t\tif (element) {\n\t\t\treturn element[attributeName];\n\t\t}\n\t}\n\treturn undefined;\n};\n\nfunction computeAttribute(attribute, parser, options) {\n\tvar value;\n\tif(attribute.type === \"filtered\") {\n\t\tvar parentWidget = parser.getVariableWidget();\n\t\tvalue = options.wiki.filterTiddlers(attribute.filter,parentWidget)[0] || \"\";\n\t} else if(attribute.type === \"indirect\") {\n\t\tvar parentWidget = parser.getVariableWidget();\n\t\tvalue = options.wiki.getTextReference(attribute.textReference,\"\",parentWidget.variables.currentTiddler.value);\n\t} else if(attribute.type === \"macro\") {\n\t\tvar parentWidget = parser.getVariableWidget();\n\t\tvalue = parentWidget.getVariable(attribute.value.name,{params: attribute.value.params});\n\t} else { // String attribute\n\t\tvalue = attribute.value;\n\t}\n\treturn value;\n};\n\nfunction canBeFilterValue(value) {\n\treturn value.indexOf(\"}}}\") < 0 && value.substr(value.length-2) !== '}}';\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles import pragmas\n\n\\import [tag[MyTiddler]]\n\\*/\n\nvar settings = require(\"$:/plugins/flibbles/relink/js/settings.js\");\nvar log = require(\"$:/plugins/flibbles/relink/js/language.js\").logRelink;\nvar filterRelinker = settings.getRelinker('filter');\n\nexports.name = \"import\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\t// In this one case, I'll let the parser parse out the filter and move\n\t// the ptr.\n\tvar start = this.matchRegExp.lastIndex;\n\tvar parseTree = this.parse();\n\tvar filter = parseTree[0].attributes.filter.value;\n\n\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser},options);\n\tvar value = filterRelinker.relink(filter, fromTitle, toTitle, extendedOptions);\n\tvar rtn = undefined;\n\tif (value !== undefined) {\n\t\tvar message = extendedOptions.usedPlaceholder ? \"import-placeholder\" : \"import\";\n\t\tlog(message, {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t}, options);\n\t\tvar newline = text.substring(start+filter.length, this.parser.pos);\n\t\tfilter = value;\n\t\trtn = \"\\\\import \" + value + newline;\n\t}\n\n\t// Before we go, we need to actually import the variables\n\t// it's calling for.\n\tvar parentWidget = this.parser.getVariableWidget();\n\tvar variableHolder = options.wiki.relinkGenerateVariableWidget(filter, parentWidget);\n\tthis.parser.addWidget(variableHolder);\n\n\treturn rtn;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles macro calls.\n\n<<myMacro '[[MyFilter]]' 'myTitle'>>\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar settings = require('$:/plugins/flibbles/relink/js/settings.js');\nvar CannotFindMacroDefError = require(\"$:/plugins/flibbles/relink/js/errors.js\").CannotFindMacroDefError;\n\nexports.name = [\"macrocallinline\", \"macrocallblock\"];\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2],\n\t\tmacroText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar start = this.matchRegExp.lastIndex - this.match[0].length;\n\tvar managedMacro = settings.getMacros(options)[macroName];\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar offset = macroName.length+2;\n\toffset = $tw.utils.skipWhiteSpace(macroText, offset);\n\tvar params = parseParams(paramString, offset+start);\n\tvar macroInfo = {\n\t\tname: macroName,\n\t\tstart: start,\n\t\tend: this.matchRegExp.lastIndex,\n\t\tparams: params\n\t};\n\tvar results = this.relinkMacroInvocation(macroInfo, text, this.parser, fromTitle, toTitle, options);\n\tif (results) {\n\t\treturn this.macroToString(results, text, this.parser, options);\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\n/**Processes the given macro,\n * macro: {name:, params:, start:, end:}\n * each parameters: {name:, end:, value:}\n * Macro invocation returned is the same, but relinked, and may have new keys:\n * parameters: {type: macro, start:, newValue: (quoted replacement value)}\n */\nexports.relinkMacroInvocation = function(macro, text, parser, fromTitle, toTitle, options) {\n\tvar managedMacro = settings.getMacros(options)[macro.name];\n\tvar modified = false;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tif (macro.params.every(function(p) {\n\t\treturn p.value.indexOf(fromTitle) < 0;\n\t})) {\n\t\t// We cut early if the fromTitle doesn't even appear\n\t\t// anywhere in the title. This is to avoid any headache\n\t\t// about finding macro definitions (and any resulting\n\t\t// exceptions if there isn't even a title to replace.\n\t\treturn undefined;\n\t}\n\tvar outMacro = $tw.utils.extend({}, macro);\n\toutMacro.params = macro.params.slice();\n\tfor (var managedArg in managedMacro) {\n\t\tvar index = getParamIndexWithinMacrocall(macro.name, managedArg, macro.params, parser, options);\n\t\tif (index < 0) {\n\t\t\t// this arg either was not supplied, or we can't find\n\t\t\t// the definition, so we can't tie it to an anonymous\n\t\t\t// argument. Either way, move on to the next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar extendedOptions = $tw.utils.extend({placeholder: parser}, options);\n\t\tvar value = handler.relink(param.value, fromTitle, toTitle, extendedOptions);\n\t\tif (value === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar quote = utils.determineQuote(text, param);\n\t\tvar quoted = utils.wrapAttributeValue(value, quote, ['', \"'\", '\"', '[[', '\"\"\"']);\n\t\tvar newParam = $tw.utils.extend({}, param);\n\t\tif (quoted === undefined) {\n\t\t\tvar ph = parser.getPlaceholderFor(value,handler.name);\n\t\t\tnewParam.newValue = \"<<\"+ph+\">>\";\n\t\t\tnewParam.type = \"macro\";\n\t\t} else {\n\t\t\tnewParam.start = newParam.end - (newParam.value.length + (quote.length*2));\n\t\t\tnewParam.value = value;\n\t\t\tnewParam.newValue = quoted;\n\t\t}\n\t\toutMacro.params[index] = newParam;\n\t\tmodified = true;\n\t}\n\tif (modified) {\n\t\treturn outMacro;\n\t}\n\treturn undefined;\n};\n\nexports.mustBeAWidget = function(macro) {\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tif (macro.params[i].type === \"macro\") {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false\n};\n\n/**Given a macro object ({name:, params:, start: end:}), and the text where\n * it was parsed from, returns a new macro that maintains any syntactic\n * structuring.\n */\nexports.macroToString = function(macro, text, parser, options) {\n\tif (exports.mustBeAWidget(macro)) {\n\t\tvar names = getParamNames(macro.name, macro.params, parser, options);\n\t\tvar attrs = [];\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar p = macro.params[i];\n\t\t\tvar val;\n\t\t\tif (p.newValue) {\n\t\t\t\tval = p.newValue;\n\t\t\t} else {\n\t\t\t\tval = utils.wrapAttributeValue(p.value);\n\t\t\t}\n\t\t\tattrs.push(\" \"+names[i]+\"=\"+val);\n\t\t}\n\t\treturn \"<$macrocall $name=\"+utils.wrapAttributeValue(macro.name)+attrs.join('')+\"/>\";\n\t} else {\n\t\tvar builder = new Rebuilder(text, macro.start);\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar param = macro.params[i];\n\t\t\tif (param.newValue) {\n\t\t\t\tbuilder.add(param.newValue, param.start, param.end);\n\t\t\t}\n\t\t}\n\t\treturn builder.results(macro.end);\n\t}\n};\n\nfunction getParamIndexWithinMacrocall(macroName, param, params, parser, options) {\n\tvar index, i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tif (params[i].name === param) {\n\t\t\treturn i;\n\t\t}\n\t}\n\tvar expectedIndex = indexOfParameterDef(macroName, param, parser, options);\n\t// We've got to skip over all the named parameter instances.\n\tif (expectedIndex >= 0) {\n\t\tvar anonI = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (params[i].name === undefined) {\n\t\t\t\tif (anonI === expectedIndex) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t\tanonI++;\n\t\t\t} else {\n\t\t\t\tvar indexOfOther = indexOfParameterDef(macroName, params[i].name, parser, options);\n\t\t\t\tif (indexOfOther < expectedIndex) {\n\t\t\t\t\tanonI++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n};\n\n// Looks up the definition of a macro, and figures out what the expected index\n// is for the given parameter.\nfunction indexOfParameterDef(macroName, paramName, parser, options) {\n\tvar def = getDefinition(macroName, parser, options);\n\tvar params = def.params || [];\n\tfor (var i = 0; i < params.length; i++) {\n\t\tif (params[i].name === paramName) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\nfunction getParamNames(macroName, params, parser, options) {\n\tvar used = Object.create(null);\n\tvar rtn = new Array(params.length);\n\tvar anonsExist = false;\n\tvar i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name) {\n\t\t\trtn[i] = name;\n\t\t\tused[name] = true;\n\t\t} else {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (anonsExist) {\n\t\tvar defParams = getDefinition(macroName, parser, options).params || [];\n\t\tvar defPtr = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (rtn[i] === undefined) {\n\t\t\t\twhile(defPtr < defParams.length && used[defParams[defPtr].name]) {\n\t\t\t\t\tdefPtr++;\n\t\t\t\t}\n\t\t\t\tif (defPtr >= defParams.length) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\trtn[i] = defParams[defPtr].name;\n\t\t\t\tused[defParams[defPtr].name] = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn rtn;\n};\n\n/** Returns undefined if the definition cannot be found.\n */\nfunction getDefinition (macroName, parser, options) {\n\tvar variableContainer = parser.getVariableWidget();\n\tvar def = variableContainer.variables[macroName];\n\tif (!def) {\n\t\t// Check with the macro modules\n\t\tif ($tw.utils.hop($tw.macros, macroName)) {\n\t\t\tdef = $tw.macros[macroName];\n\t\t} else {\n\t\t\tthrow new CannotFindMacroDefError(macroName);\n\t\t}\n\t}\n\treturn def;\n};\n\nfunction parseParams(paramString, pos) {\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\t//paramInfo.start = pos;\n\t\tparamInfo.end = reParam.lastIndex + pos;\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn params;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles pragma macro definitions. Except we only update placeholder macros\nthat we may have previously install.\n\n\\define relink-?() Tough title\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar settings = require(\"$:/plugins/flibbles/relink/js/settings\");\n\nexports.name = \"macrodef\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar setParseTreeNode = this.parse();\n\tvar parentWidget = this.parser.getVariableWidget();\n\tvar setWidget = parentWidget.makeChildWidget(setParseTreeNode[0]);\n\tsetWidget.computeAttributes();\n\tsetWidget.execute();\n\tthis.parser.addWidget(setWidget);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar m = this.match;\n\t// This macro is not available should we need to make one.\n\tthis.parser.reserve(m[1]);\n\t// !m[3] means it's not a multiline macrodef\n\tvar placeholder = /^relink-(?:(\\w+)-)?(\\d+)$/.exec(m[1]);\n\tif (placeholder && m[2] === '' && !m[3]) {\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(text, this.parser.pos);\n\t\tvar valueRegExp = /([^\\n\\r]+)(\\r?\\n)/mg;\n\t\tvalueRegExp.lastIndex = this.parser.pos;\n\t\tvar match = valueRegExp.exec(text);\n\t\tif (match) {\n\t\t\tvar handler = settings.getRelinker(placeholder[1] || 'title');\n\t\t\t\t// This is a filter\n\t\t\tvar extendedOptions = $tw.utils.extend({placeholder: this.parser}, options);\n\t\t\tvar value = handler.relink(match[1], fromTitle, toTitle, extendedOptions);\n\t\t\tif (value !== undefined) {\n\t\t\t\tvar message = \"macrodef\";\n\t\t\t\tif (extendedOptions.usedPlaceholder) {\n\t\t\t\t\tmessage = \"macrodef-placeholder\";\n\t\t\t\t}\n\t\t\t\tlog(message, {\n\t\t\t\t\tfrom: fromTitle,\n\t\t\t\t\tto: toTitle,\n\t\t\t\t\ttiddler: tiddler.fields.title,\n\t\t\t\t\tmacro: m[1]\n\t\t\t\t}, options);\n\t\t\t\tthis.parser.pos += match[0].length;\n\t\t\t\treturn \"\\\\define \"+m[1]+\"() \"+value+match[2];\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[[Introduction]]\n\n[[link description|TiddlerTitle]]\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar utils = require(\"./utils.js\");\n\nexports.name = \"prettylink\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar caption, quoted, m = this.match;\n\tif (m[2] === fromTitle) {\n\t\t// format is [[caption|MyTiddler]]\n\t\tcaption = m[1];\n\t} else if (m[2] !== undefined || m[1] !== fromTitle) {\n\t\t// format is [[MyTiddler]], and it doesn't match\n\t\treturn undefined;\n\t}\n\tvar logArguments = {\n\t\tfrom: fromTitle,\n\t\tto: toTitle,\n\t\ttiddler: tiddler.fields.title\n\t};\n\tif (utils.canBePretty(toTitle)) {\n\t\tlog(\"prettylink\", logArguments, options);\n\t\treturn prettyLink(toTitle, caption);\n\t} else if (caption === undefined) {\n\t\t// If we don't have a caption, we have to resort to placeholders\n\t\t// anyway to prevent link/caption desync from later relinks.\n\t\t// It doesn't matter whether the toTitle is quotable\n\t\tlog(\"prettylink-placeholder\", logArguments, options);\n\t\tvar ph = this.parser.getPlaceholderFor(toTitle);\n\t\treturn \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t} else if (quoted = utils.wrapAttributeValue(toTitle)) {\n\t\tlog(\"prettylink-widget\", logArguments, options);\n\t\treturn \"<$link to=\"+quoted+\">\"+caption+\"</$link>\";\n\t} else {\n\t\tlog(\"prettylink-placeholder\", logArguments, options);\n\t\tvar ph = this.parser.getPlaceholderFor(toTitle);\n\t\treturn \"<$link to=<<\"+ph+\">>>\"+caption+\"</$link>\";\n\t}\n};\n\nfunction prettyLink(title, caption) {\n\tif (caption) {\n\t\treturn \"[[\" + caption + \"|\" + title + \"]]\";\n\t} else {\n\t\treturn \"[[\" + title + \"]]\";\n\t}\n};\n\nfunction isSafe(value) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']';\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nParses and acknowledges any pragma rules a tiddler has.\n\n\\rules except html wikilink\n\n\\*/\n\nexports.name = \"rules\";\n\n/**This is all we have to do. The rules rule doesn't parse. It just amends\n * the rules, which is exactly what I want it to do too.\n * It also takes care of moving the pos pointer forward.\n */\nexports.relink = function() { this.parse(); };\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of transclusions in wiki text like,\n\n{{RenamedTiddler}}\n{{RenamedTiddler||TemplateTitle}}\n\nThis renames both the tiddler and the template field.\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar utils = require(\"./utils.js\");\n\nexports.name = ['transcludeinline', 'transcludeblock'];\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\treference = m[1],\n\t\ttemplate = m[2],\n\t\tquoted,\n\t\tlogArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t};\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar trimmedRef = $tw.utils.trim(reference);\n\tvar ref = $tw.utils.parseTextReference(trimmedRef);\n\t// This block takes care of 99% of all cases\n\tif (canBePrettyTemplate(toTitle) &&\n\t\t// title part has one extra restriction\n\t (ref.title !== fromTitle || refHandler.canBePretty(toTitle))) {\n\t\tvar modified = false;\n\t\tif (ref.title === fromTitle) {\n\t\t\tmodified = true;\n\t\t\tref.title = toTitle;\n\t\t\tvar refString = refHandler.toString(ref);\n\t\t\t// preserve user's whitespace\n\t\t\treference = reference.replace(trimmedRef, refString);\n\t\t}\n\t\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t\tmodified = true;\n\t\t\t// preserve user's whitespace\n\t\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\t}\n\t\tif (modified) {\n\t\t\tlog(\"transclude\", logArguments, options);\n\t\t\treturn prettyTransclude(reference, template);\n\t\t}\n\t\treturn undefined;\n\t}\n\t// Now for the 1%...\n\tif (ref.title === fromTitle) {\n\t\tvar resultTitle = utils.wrapAttributeValue(toTitle);\n\t\tif (resultTitle === undefined) {\n\t\t\tresultTitle = \"<<\"+this.parser.getPlaceholderFor(toTitle)+\">>\";\n\t\t\tlog(\"transclude-placeholder\", logArguments, options);\n\t\t} else {\n\t\t\tlog(\"transclude-widget\", logArguments, options);\n\t\t}\n\t\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t\t// Now for this bizarre-ass use-case, where both the\n\t\t\t// title and template are being replaced.\n\t\t\tvar attrs = this.transcludeAttributes(ref.field, ref.index);\n\t\t\treturn \"<$tiddler tiddler=\"+resultTitle+\"><$transclude tiddler=\"+resultTitle+attrs+\"/></$tiddler>\";\n\t\t} else {\n\t\t\tref.title = undefined;\n\t\t\treturn \"<$tiddler tiddler=\"+resultTitle+\">\"+prettyTransclude(ref, template)+\"</$tiddler>\";\n\t\t}\n\t}\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\tvar resultTemplate = utils.wrapAttributeValue(toTitle);\n\t\tvar message = \"transclude-widget\";\n\t\tvar rtn;\n\t\tif (resultTemplate === undefined) {\n\t\t\tresultTemplate = \"<<\"+this.parser.getPlaceholderFor(toTitle)+\">>\";\n\t\t\tmessage = \"transclude-placeholder\";\n\t\t}\n\t\tif (ref.title) {\n\t\t\tvar resultTitle = utils.wrapAttributeValue(ref.title);\n\t\t\tif (resultTitle === undefined) {\n\t\t\t\t// This is one of the rare cases were we need\n\t\t\t\t// to placeholder a title OTHER than the one\n\t\t\t\t// we're changing.\n\t\t\t\tresultTitle = \"<<\"+this.parser.getPlaceholderFor(ref.title)+\">>\";\n\t\t\t\tmessage = \"transclude-placeholder\";\n\t\t\t}\n\t\t\tvar attrs = this.transcludeAttributes(ref.field, ref.index);\n\t\t\trtn = \"<$tiddler tiddler=\"+resultTitle+\"><$transclude tiddler=\"+resultTemplate+attrs+\"/></$tiddler>\";\n\t\t} else {\n\t\t\trtn = \"<$transclude tiddler=\"+resultTemplate+\"/>\";\n\t\t}\n\t\tlog(message, logArguments, options);\n\t\treturn rtn;\n\t}\n\treturn undefined;\n};\n\nfunction canBePrettyTemplate(value) {\n\treturn value.indexOf('}') < 0 && value.indexOf('{') < 0 && value.indexOf('|') < 0;\n};\n\n/**Returns attributes for a transclude widget.\n * only field or index should be used, not both, but both will return\n * the intuitive (albeit useless) result.\n */\nexports.transcludeAttributes = function(field, index) {\n\treturn rtn = [\n\t\twrapAttribute(this.parser, \"field\", field),\n\t\twrapAttribute(this.parser, \"index\", index)\n\t].join('');\n};\n\nfunction wrapAttribute(wikiRelinker, name, value) {\n\tif (value) {\n\t\tvar wrappedValue = utils.wrapAttributeValue(value);\n\t\tif (wrappedValue === undefined) {\n\t\t\twrappedValue = \"<<\"+wikiRelinker.getPlaceholderFor(value, name)+\">>\";\n\t\t}\n\t\treturn \" \"+name+\"=\"+wrappedValue;\n\t}\n\treturn '';\n};\n\nfunction prettyTransclude(textReference, template) {\n\tif (typeof textReference !== \"string\") {\n\t\ttextReference = refHandler.toString(textReference);\n\t}\n\tif (!textReference) {\n\t\ttextReference = '';\n\t}\n\tif (template !== undefined) {\n\t\treturn \"{{\"+textReference+\"||\"+template+\"}}\";\n\t} else {\n\t\treturn \"{{\"+textReference+\"}}\";\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js": {
"text": "/*\\\nmodule-type: library\n\nUtility methods for the wikitext relink rules.\n\n\\*/\n\n/**Finds an appropriate quote mark for a given value.\n *\n *Tiddlywiki doesn't have escape characters for attribute values. Instead,\n * we just have to find the type of quotes that'll work for the given title.\n * There exist titles that simply can't be quoted.\n * If it can stick with the preference, it will.\n *\n * return: Returns the wrapped value, or undefined if it's impossible to wrap\n */\nexports.wrapAttributeValue = function(value, preference, whitelist) {\n\twhitelist = whitelist || [\"\", \"'\", '\"', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\/\\s<>\"'=])/.test(v); },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';},\n\t\t\"[[\": exports.canBePrettyOperand\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; },\n\t\t'\"\"\"': function(v) {return '\"\"\"'+v+'\"\"\"'; },\n\t\t\"[[\": function(v) {return \"[[\"+v+\"]]\"; }\n\t};\n\tif (choices[preference]) {\n\t\tif (choices[preference](value)) {\n\t\t\treturn wrappers[preference](value);\n\t\t}\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\n/**Return true if value can be used inside a prettylink.\n */\nexports.canBePretty = function(value) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']';\n};\n\nexports.canBePrettyOperand = function(value) {\n\treturn value.indexOf(']') < 0;\n};\n\n/**Given some text, and a param or attribute within that text, this returns\n * what type of quotation that attribute is using.\n *\n * param: An object in the form {end:, ...}\n */\nexports.determineQuote = function(text, param) {\n\tvar pos = param.end-1;\n\tif (text[pos] === \"'\") {\n\t\treturn \"'\";\n\t}\n\tif (text[pos] === '\"') {\n\t\tif (text.substr(pos-2, 3) === '\"\"\"') {\n\t\t\treturn '\"\"\"';\n\t\t} else {\n\t\t\treturn '\"';\n\t\t}\n\t}\n\tif (text.substr(pos-1,2) === ']]' && text.substr((pos-param.value.length)-3, 2) === '[[') {\n\t\treturn \"[[\";\n\t}\n\treturn '';\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles CamelCase links\n\nWikiLink\n\nbut not:\n\n~WikiLink\n\n\\*/\n\nvar log = require('$:/plugins/flibbles/relink/js/language.js').logRelink;\nvar utils = require(\"./utils.js\");\n\nexports.name = \"wikilink\";\n\nexports.relink = function(tiddler, text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (this.match[0] === fromTitle && this.match[0][0] !== '~') {\n\t\tvar logArguments = {\n\t\t\tfrom: fromTitle,\n\t\t\tto: toTitle,\n\t\t\ttiddler: tiddler.fields.title\n\t\t};\n\t\tif (toTitle.match(this.matchRegExp) && toTitle[0] !== '~') {\n\t\t\tlog(\"wikilink\", logArguments, options);\n\t\t\treturn toTitle;\n\t\t} else if (utils.canBePretty(toTitle)) {\n\t\t\tlog(\"wikilink-pretty\", logArguments, options);\n\t\t\treturn \"[[\" + toTitle + \"]]\";\n\t\t} else {\n\t\t\tvar ph = this.parser.getPlaceholderFor(toTitle);\n\t\t\tlog(\"wikilink-placeholder\", logArguments, options);\n\t\t\treturn \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t\t}\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/rebuilder.js": {
"text": "/*\\\n\nThis helper class aids in reconstructing an existing string with new parts.\n\n\\*/\n\nfunction Rebuilder(text, start) {\n\tthis.text = text;\n\tthis.index = start || 0;\n\tthis.pieces = [];\n};\n\nmodule.exports = Rebuilder;\n\n/**Pieces must be added consecutively.\n * Start and end are the indices in the old string specifying where to graft\n * in the new piece.\n */\nRebuilder.prototype.add = function(value, start, end) {\n\tthis.pieces.push(this.text.substring(this.index, start), value);\n\tthis.index = end;\n};\n\nRebuilder.prototype.changed = function() {\n\treturn this.pieces.length > 0;\n};\n\n/** This sticks something on the beginning of the resulting content.\n */\nRebuilder.prototype.prepend = function(content) {\n\tif (content) {\n\t\tthis.pieces.unshift(content);\n\t}\n};\n\nRebuilder.prototype.results = function(end) {\n\tif (this.changed()) {\n\t\tthis.pieces.push(this.text.substring(this.index, end));\n\t\treturn this.pieces.join('');\n\t}\n\treturn undefined;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/rebuilder.js",
"type": "application/javascript"
},
"$:/config/flibbles/relink/attributes/$button/to": {
"title": "$:/config/flibbles/relink/attributes/$button/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tag": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tag",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$count/filter": {
"title": "$:/config/flibbles/relink/attributes/$count/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$draggable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$draggable/filter": {
"title": "$:/config/flibbles/relink/attributes/$draggable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit-text/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-text/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$encrypt/filter": {
"title": "$:/config/flibbles/relink/attributes/$encrypt/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$fieldmangler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fieldmangler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$fields/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fields/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$image/source": {
"title": "$:/config/flibbles/relink/attributes/$image/source",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$importvariables/filter": {
"title": "$:/config/flibbles/relink/attributes/$importvariables/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/to": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/set": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/set",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$link/to": {
"title": "$:/config/flibbles/relink/attributes/$link/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/filter": {
"title": "$:/config/flibbles/relink/attributes/$list/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$list/template": {
"title": "$:/config/flibbles/relink/attributes/$list/template",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/editTemplate": {
"title": "$:/config/flibbles/relink/attributes/$list/editTemplate",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/history": {
"title": "$:/config/flibbles/relink/attributes/$list/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/story": {
"title": "$:/config/flibbles/relink/attributes/$navigator/story",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/history": {
"title": "$:/config/flibbles/relink/attributes/$navigator/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$radio/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$radio/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$range/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$range/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$reveal/stateTitle": {
"title": "$:/config/flibbles/relink/attributes/$reveal/stateTitle",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$select/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$select/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/filter": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$set/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/filter": {
"title": "$:/config/flibbles/relink/attributes/$set/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$tiddler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$tiddler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/subtiddler",
"text": "title"
},
"$:/plugins/flibbles/relink/configuration": {
"title": "$:/plugins/flibbles/relink/configuration",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/flibbles/relink/Configuration]!has[draft.of]]\" \"$:/plugins/flibbles/relink/ui/configuration/Fields\">>\n</div>\n"
},
"$:/config/flibbles/relink/fields/list": {
"title": "$:/config/flibbles/relink/fields/list",
"text": "list"
},
"$:/config/flibbles/relink/fields/list-after": {
"title": "$:/config/flibbles/relink/fields/list-after",
"text": "title"
},
"$:/config/flibbles/relink/fields/list-before": {
"title": "$:/config/flibbles/relink/fields/list-before",
"text": "title"
},
"$:/config/flibbles/relink/fields/tags": {
"title": "$:/config/flibbles/relink/fields/tags",
"text": "list"
},
"$:/plugins/flibbles/relink/language/Buttons/Delete/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint",
"text": "Specify a new widget/element attribute to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Hint",
"text": "Specify a new field to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint",
"text": "Specify a new filter operator to be considered whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint",
"text": "Specify a new macro parameter to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator": {
"title": "$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator",
"text": "Filter Error: Unknown suffix for the 'relink' filter operator"
},
"$:/plugins/flibbles/relink/language/Help/Attributes": {
"title": "$:/plugins/flibbles/relink/language/Help/Attributes",
"text": "See the [[Attributes documentation page|https://flibbles.github.io/tw5-relink/#Attributes]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Fields": {
"title": "$:/plugins/flibbles/relink/language/Help/Fields",
"text": "See the [[Fields documentation page|https://flibbles.github.io/tw5-relink/#Fields]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Macros": {
"title": "$:/plugins/flibbles/relink/language/Help/Macros",
"text": "See the [[Macros documentation page|https://flibbles.github.io/tw5-relink/#Macros]] for details."
},
"$:/plugins/flibbles/relink/language/Help/Operators": {
"title": "$:/plugins/flibbles/relink/language/Help/Operators",
"text": "See the [[Operators documentation page|https://flibbles.github.io/tw5-relink/#Operators]] for details."
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty",
"text": "No tiddlers contain any fields, links, macros, transclusions, or widgets referencing this one"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description",
"text": "The following tiddlers contain fields, links, macros, transclusions, or widgets referencing this one:"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption",
"text": "//Relink// References"
},
"$:/plugins/flibbles/relink/language/ui/Attributes/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Attributes/Caption",
"text": "Attributes"
},
"$:/plugins/flibbles/relink/language/ui/Fields/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Fields/Caption",
"text": "Fields"
},
"$:/plugins/flibbles/relink/language/ui/Macros/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Macros/Caption",
"text": "Macros"
},
"$:/plugins/flibbles/relink/language/ui/Operators/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Operators/Caption",
"text": "Operators"
},
"$:/config/flibbles/relink/macros/csvtiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/csvtiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/datauri/title": {
"title": "$:/config/flibbles/relink/macros/datauri/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddler/title": {
"title": "$:/config/flibbles/relink/macros/jsontiddler/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/jsontiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links/filter": {
"title": "$:/config/flibbles/relink/macros/list-links/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links-draggable/tiddler": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/tag": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/tag": {
"title": "$:/config/flibbles/relink/macros/toc/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/selectedTiddler": {
"title": "$:/config/flibbles/relink/macros/toc/selectedTiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/template": {
"title": "$:/config/flibbles/relink/macros/toc/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/buttonTemplate": {
"title": "$:/config/flibbles/relink/macros/tabs/buttonTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/default": {
"title": "$:/config/flibbles/relink/macros/tabs/default",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/tabsList": {
"title": "$:/config/flibbles/relink/macros/tabs/tabsList",
"text": "filter"
},
"$:/config/flibbles/relink/macros/tabs/template": {
"title": "$:/config/flibbles/relink/macros/tabs/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag/tag": {
"title": "$:/config/flibbles/relink/macros/tag/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag-pill/tag": {
"title": "$:/config/flibbles/relink/macros/tag-pill/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/timeline/subfilter": {
"title": "$:/config/flibbles/relink/macros/timeline/subfilter",
"text": "filter"
},
"$:/config/flibbles/relink/operators/list": {
"title": "$:/config/flibbles/relink/operators/list",
"text": "reference"
},
"$:/config/flibbles/relink/operators/tag": {
"title": "$:/config/flibbles/relink/operators/tag",
"text": "title"
},
"$:/config/flibbles/relink/operators/title": {
"title": "$:/config/flibbles/relink/operators/title",
"text": "title"
},
"$:/config/flibbles/relink/operators/field:title": {
"title": "$:/config/flibbles/relink/operators/field:title",
"text": "title"
},
"$:/language/EditTemplate/Title/Impossibles/Prompt": {
"title": "$:/language/EditTemplate/Title/Impossibles/Prompt",
"text": "The following references to this tiddler can ''not'' be updated by //Relink// due to the complexity of the new title:"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following tiddlers will be updated if relinking:"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Use //Relink// to update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' across all other tiddlers"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "\\define conditional-list(state, prompt, filter)\n<$list filter=\"[subfilter<__filter__>limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/$state$\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}}\n<<lingo [[$prompt$]]>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}}\n<<lingo [[$prompt$]]>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$list filter=<<__filter__>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n</$reveal>\n\n</$vars>\n\\end\n\n<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\" tabindex={{$:/config/EditTabIndex}}/>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<<conditional-list impossibles EditTemplate/Title/Impossibles/Prompt \"[{!!draft.title}relink:impossible<fromTitle>]\">>\n\n<<conditional-list references EditTemplate/Title/References/Prompt \"[relink:references<fromTitle>!title[$:/StoryList]sort[title]]\">>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/plugins/flibbles/relink/readme": {
"title": "$:/plugins/flibbles/relink/readme",
"type": "text/vnd.tiddlywiki",
"text": "When renaming a tiddler, Relink can update the fields, filters, and widgets\nof all other tiddlers. However, it works through whitelisting.\n\nIt's already configured to update tiddler titles for all core widgets, filters,\nand fields, but the whitelists can be customized for each of this in the\nconfiguration panel.\n\nSee [[the tw5-relink website|https://github.com/flibbles/tw5-relink]] for\nmore details and examples.\n"
},
"$:/config/flibbles/relink/settings/default-type": {
"title": "$:/config/flibbles/relink/settings/default-type",
"text": "title"
},
"$:/plugins/flibbles/relink/ui/TiddlerInfo/References": {
"title": "$:/plugins/flibbles/relink/ui/TiddlerInfo/References",
"caption": "{{$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption}}",
"tags": "$:/tags/TiddlerInfo",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/TiddlerInfo/\n\\define filter() [relink:references<currentTiddler>!title[$:/StoryList]sort[title]]\n<$list filter=\"[subfilter<filter>first[]]\">\n\n<<lingo References/Description>>\n</$list>\n\n<$list filter=<<filter>> emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n"
},
"$:/plugins/flibbles/relink/ui/components/button-delete": {
"title": "$:/plugins/flibbles/relink/ui/components/button-delete",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\n<$button class=\"tc-btn-invisible\"><$list filter=\"[all[current]is[tiddler]]\">\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\n</$list><$list filter=\"[all[current]is[shadow]]\">\n<$action-setfield $tiddler=<<tiddlerName>> text=\"\" />\n</$list>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">{{$:/core/images/delete-button}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$(lingo-base)$Delete/Caption}}/></span>\n</$list></$button>\n"
},
"$:/plugins/flibbles/relink/ui/components/select-fieldtype": {
"title": "$:/plugins/flibbles/relink/ui/components/select-fieldtype",
"text": "<$select tiddler=<<currentTiddler>> default={{$:/config/flibbles/relinke/settings/default-type}} >\n<$list variable=\"option\"\n filter=\"[[relinkfieldtype]modules[]removeprefix[$:/plugins/flibbles/relink/js/fieldtypes/]removesuffix[.js]move:-100{$:/config/flibbles/relink/settings/default-type}]\">\n<option><$text text=<<option>> /></option>\n</$list>\n</$select>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Attributes": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Attributes",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Attributes/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-attr() $:/config/flibbles/relink/attributes/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Attributes}}\n\n<table><tbody>\n<tr><th>Widget/HTML Element</th><th>Attribute</th><th>Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-attr>!has[draft.of]has[text]]\">\n<$set name=\"element\"\n filter=\"[all[current]removeprefix<prefix-attr>splitbefore[/]removesuffix[/]]\">\n<$set name=\"attribute\"\n filter=\"[all[current]removeprefix<prefix-attr>removeprefix<element>removeprefix[/]]\">\n<tr>\n<td><$text text=<<element>> /></td>\n<td><$text text=<<attribute>> /></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$set></$set></$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new attribute:</em>\n<$edit-text tiddler=\"$(state-base)$element-name\"\n tag=\"input\" default=\"\" placeholder=\"widget/element\" />\n<$edit-text tiddler=\"$(state-base)$attribute-name\"\n tag=\"input\" default=\"\" placeholder=\"attribute\" />\n<$button tooltip={{$(lingo-base)$NewAttribute/Hint}}\n aria-label={{$(lingo-base)$NewAttribute/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-attr>addsuffix{$(state-base)$element-name}addsuffix[/]addsuffix{$(state-base)$attribute-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>>\n text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$attribute-name\" />\n<$action-deletetiddler $tiddler=\"$(state-base)$element-name\" />\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Fields": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Fields",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Fields/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-fields() $:/config/flibbles/relink/fields/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Fields}}\n\n<table><tbody>\n<tr><th>Field Name</th><th>Field Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-fields>!has[draft.of]has[text]]\">\n<tr>\n<td><$list filter=\"[all[current]removeprefix<prefix-fields>]\"><<currentTiddler>></$list></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new field:</em>\n<$edit-text tiddler=\"$(state-base)$field-name\"\n tag=\"input\" default=\"\" placeholder=\"field name\" />\n<$button tooltip={{$(lingo-base)$NewField/Hint}}\n aria-label={{$(lingo-base)$NewField/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-fields>addsuffix{$(state-base)$field-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>>\n text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$field-name\" />\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Macros": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Macros",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Macros/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-macro() $:/config/flibbles/relink/macros/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Macros}}\n\n<table><tbody>\n<tr><th>Macro</th><th>Parameter</th><th>Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-macro>!has[draft.of]has[text]]\">\n<$set name=\"parameter\"\n filter=\"[all[current]removeprefix<prefix-macro>relink:splitafter[/]]\">\n<$set name=\"macro\"\n filter=\"[all[current]removeprefix<prefix-macro>removesuffix<parameter>removesuffix[/]]\">\n<tr>\n<td><$text text=<<macro>> /></td>\n<td><$text text=<<parameter>> /></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$set></$set></$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new macro parameter:</em>\n<$edit-text tiddler=\"$(state-base)$macro-name\"\n tag=\"input\" default=\"\" placeholder=\"macro\" />\n<$edit-text tiddler=\"$(state-base)$parameter-name\"\n tag=\"input\" default=\"\" placeholder=\"parameter\" />\n<$button tooltip={{$(lingo-base)$NewParameter/Hint}}\n aria-label={{$(lingo-base)$NewParameter/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-macro>addsuffix{$(state-base)$macro-name}addsuffix[/]addsuffix{$(state-base)$parameter-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>>\n text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$parameter-name\" />\n<$action-deletetiddler $tiddler=\"$(state-base)$macro-name\" />\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Operators": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Operators",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Operators/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\define prefix-ops() $:/config/flibbles/relink/operators/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define state-base() $:/state/flibbles/relink/\n\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Operators}}\n\n<table><tbody>\n<tr><th>Filter Operator</th><th>Operand Type</th><th>Delete</th></tr>\n<$list filter=\"[all[shadows+tiddlers]prefix<prefix-ops>!has[draft.of]has[text]]\">\n<tr>\n<td><$list variable=\"listItem\" filter=\"[<currentTiddler>removeprefix<prefix-ops>]\"><<listItem>></$list></td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td>{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</tr>\n</$list>\n</tbody></table>\n\n<em class=\"tc-edit\">Add a new filter operator:</em>\n<$edit-text tiddler=\"$(state-base)$operator-name\"\n tag=\"input\" default=\"\" placeholder=\"operator name\" />\n<$button tooltip={{$(lingo-base)$NewOperator/Hint}}\n aria-label={{$(lingo-base)$NewOperator/Caption}}>\n<$set name=\"tiddlerName\"\n filter=\"[<prefix-ops>addsuffix{$(state-base)$operator-name}]\">\n<$action-setfield $tiddler=<<tiddlerName>> text={{$:/config/flibbles/relink/settings/default-type}} />\n</$set>\n<$action-deletetiddler $tiddler=\"$(state-base)$operator-name\" />\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n\\end\n\n<<body>>\n"
}
}
}
{
"tiddlers": {
"$:/jd/fullscreen-editor/EditButton": {
"text": "\\whitespace trim\n<$navigator story=\"$:/fullscreen-editor\">\n<$button message=\"tm-edit-tiddler\" tooltip=\"Edit in full screen mode\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text=\"edit in full screen\"/>\n</span>\n</$list>\n</$button>\n</$navigator>",
"title": "$:/jd/fullscreen-editor/EditButton",
"tags": "$:/tags/ViewToolbar",
"modifier": "jd",
"modified": "20190204134418116",
"description": "Edit in full screen mode",
"creator": "jd",
"created": "20190204123121582",
"caption": "{{$:/core/images/full-screen-button}} edit in full screen"
},
"$:/jd/fullscreen-editor/EditTemplate": {
"text": "<$navigator story=\"$:/fullscreen-editor\">\n<$keyboard key=((cancel-edit-tiddler)) message=\"tm-cancel-tiddler\">\n<$keyboard key=((save-tiddler)) actions=\"\"\"<$action-sendmessage $message=\"tm-save-tiddler\"/><$action-sendmessage $message=\"tm-close-tiddler\"/>\"\"\" class=\"fullscreen-story-river\" tag=\"div\">\n{{||$:/core/ui/EditTemplate/controls}}\n{{||$:/core/ui/EditTemplate/body}}\n</$keyboard>\n</$keyboard>\n</$navigator>",
"title": "$:/jd/fullscreen-editor/EditTemplate",
"modifier": "jd",
"modified": "20190204140310285",
"creator": "jd",
"created": "20190204123536452"
},
"$:/jd/fullscreen-editor/PageTemplate": {
"text": "<$list filter=\"[list[$:/fullscreen-editor]]\" template=\"$:/jd/fullscreen-editor/ViewTemplate\" editTemplate=\"$:/jd/fullscreen-editor/EditTemplate\"/>\n",
"title": "$:/jd/fullscreen-editor/PageTemplate",
"tags": "$:/tags/PageTemplate",
"modifier": "jd",
"modified": "20190204135522488",
"creator": "jd",
"created": "20190204123350692"
},
"$:/jd/fullscreen-editor/Stylesheet": {
"text": "<$list filter=\"[[$:/fullscreen-editor]has:field[list]!field:list[]]\">\n<$list filter=\"[[$:/fullscreen-editor]search:list[draft of]]\">\n\n.tc-story-river {display: none; }\n\n.fullscreen-story-river {\n background-color: <<colour tiddler-editor-background>>;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: block;\n z-index: 2200;\n overflow-y: auto;\n}\n\n.fullscreen-story-river .tc-tiddler-edit-title {\n position: sticky;\n top: 0;\n background: <<colour page-background>>;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.5em 1em;\n}\n\n.fullscreen-story-river .tc-tiddler-edit-title > div:nth-child(2) {\n display: none;\n}\n\n.fullscreen-story-river .tc-tiddler-controls.tc-titlebar,\n.fullscreen-story-river .tc-tiddler-controls.tc-titlebar .tc-btn-invisible {\n display: flex;\n align-items: center;\n}\n\n.fullscreen-story-river .tc-editor-toolbar {\n background: <<colour page-background>>;\n padding: 0.25em 1em;\n margin: 0;\n}\n\n.fullscreen-story-river .tc-editor-toolbar button {\n background: <<colour page-background>>;\n}\n\n.fullscreen-story-river textarea.tc-edit-texteditor {\n border: none;\n padding: 1em;\n background-color: <<colour tiddler-editor-background>>;\n}\n\n<$list filter=\"[[$:/state/showeditpreview]text[yes]]\">\n.fullscreen-story-river iframe.tc-edit-texteditor { width: 49%; }\n</$list>\n\n<$list filter=\"[[$:/state/showeditpreview]!text[yes]]\">\n.fullscreen-story-river iframe.tc-edit-texteditor { width: 100%; }\n</$list>\n\n</$list>\n</$list>",
"title": "$:/jd/fullscreen-editor/Stylesheet",
"tags": "$:/tags/Stylesheet",
"modifier": "jd",
"modified": "20190204141756609",
"creator": "jd",
"created": "20190204124703056"
},
"$:/jd/fullscreen-editor/readme": {
"created": "20190206054820870",
"creator": "HC Haase",
"text": "With ''~FullscreenEditor'', you'll be able to edit the current tiddler distraction-free with this button, found at the usual tiddler controls: @@font-size:1.5em;{{||$:/jd/fullscreen-editor/EditButton}}@@\n\nAlso in this mode, <kbd>ctrl</kbd>+<kbd>enter</kbd> will save and close the tiddler, and <kbd>esc</kbd> will cancel the edit (or whatever keyboard shortcut have been set for these two actions at $:/core/ui/ControlPanel/KeyboardShortcuts).",
"title": "$:/jd/fullscreen-editor/readme",
"modifier": "HC Haase",
"modified": "20190206054846709"
}
}
}
{"tiddlers":{"$:/plugins/kookma/commander/buttons/pagecontrol":{"title":"$:/plugins/kookma/commander/buttons/pagecontrol","caption":"{{$:/plugins/kookma/commander/images/file-alt}} {{$:/language/Buttons/Commander/Caption}}","created":"20190724145015836","description":"Open tiddler commander","list-after":"$:/core/ui/Buttons/advanced-search","modified":"20210102140141074","tags":"$:/tags/PageControls","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\define commander-button(class)\n<$button to=\"$:/Commander\" tooltip={{$:/language/Buttons/Commander/Hint}} aria-label={{$:/language/Buttons/Commander/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/kookma/commander/images/commander.svg}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Commander/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Commander]]\" emptyMessage=<<commander-button>>>\n<<commander-button \"tc-selected\">>\n</$list>\n"},"$:/plugins/kookma/commander/config/AutoFocus":{"title":"$:/plugins/kookma/commander/config/AutoFocus","created":"20190212055413944","modified":"20200324070652337","tags":"","type":"text/vnd.tiddlywiki","text":"yes"},"$:/plugins/kookma/commander/config/commonfields":{"title":"$:/plugins/kookma/commander/config/commonfields","created":"20200114192650891","modified":"20200324070652345","tags":"","type":"text/vnd.tiddlywiki","text":"created creator modified modifier revision bag"},"$:/plugins/kookma/commander/config/minlength":{"title":"$:/plugins/kookma/commander/config/minlength","created":"20200110122842113","modified":"20200324070652355","tags":"","type":"text/vnd.tiddlywiki","text":"3"},"$:/plugins/kookma/commander/config/relink":{"title":"$:/plugins/kookma/commander/config/relink","created":"20190911153159143","modified":"20200324070652362","tags":"","type":"text/vnd.tiddlywiki","text":"\\define relink-plugin-notExisted() Update title in //tags// and //list// fields of other tiddlers\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\">\n<$list filter=\"[[$:/plugins/flibbles/relink]] +[has[title]]\" emptyMessage=<<relink-plugin-notExisted>> >\nUse //Relink// to update title across all other tiddlers\n</$list>\n</$checkbox>"},"$:/plugins/kookma/commander/config/systemfields":{"title":"$:/plugins/kookma/commander/config/systemfields","created":"20200106164439016","modified":"20200324070652372","tags":"","type":"text/vnd.tiddlywiki","text":"title text tags \ncreated modified craetor modifier \ntype bag revision\nlist caption"},"$:/plugins/kookma/commander/field/macros/add":{"title":"$:/plugins/kookma/commander/field/macros/add","created":"20200112073000701","modified":"20200325055206697","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define add-new-field-bulk(datafieldsTid:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"add-new-field-bulk\">>\n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"newTitle\">\n<<add-bulk-fields>>\n<$wikify name=newFields text=<<getFieldsname>> >\n<$macrocall $name=\"log-add-single-operation\" msg={{{[<newFields>addprefix[new fields:]addsuffix[added]]}}} tidItem=<<newTitle>> />\n</$wikify>\n</$list>\n</$vars>\n</$list>\n\\end\n\n\\define getFieldsname()\n<$list filter=\"[<__datafieldsTid__>indexes[]prefix[fldn]]\" variable=item>\n{{{ [<__datafieldsTid__>getindex<item>trim[]lowercase[]split[ ]join[_]] }}} \n</$list>\n\\end"},"$:/plugins/kookma/commander/field/macros/bulkfields":{"title":"$:/plugins/kookma/commander/field/macros/bulkfields","created":"20200109104450902","modified":"20200913180532516","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define numfilter() [range[1,$(flt)$]]\n\\define id_fldName() fldn$(cnt)$\n\\define id_fldValue() fldv$(cnt)$\n\n\\define add-bulk-fields()\n<$set name=\"flt\" tiddler=<<datafieldsTid>> field=\"counter\" emptyValue=\"1\"><!-- when the datafieldsTid is not exist, there is at least one field row -->\n<$list filter=<<numfilter>> variable=\"cnt\">\n<$list filter=\"[<datafieldsTid>getindex<id_fldName>]\" variable=\"newField\">\n<$action-setfield $tiddler=<<newTitle>> \n $field={{{ [<newField>trim[]lowercase[]split[ ]join[_]] }}}\n $value={{{ [<datafieldsTid>getindex<id_fldValue>] }}} />\n</$list>\n</$list>\n</$set>\n\\end\n\n\\define getInputs()\n<$edit-text tiddler=<<datafieldsTid>> index=<<id_fldName>> tag=input default=\"\" placeholder=\"field name\" />\n<$edit-text tiddler=<<datafieldsTid>> index=<<id_fldValue>> tag=input default=\"\" placeholder=\"field value\"/>\n\\end\n\n\\define add-reset()\n<$button>insert\n<$action-setfield $tiddler=<<datafieldsTid>> counter={{{[<datafieldsTid>get[counter]add[1]]~[[2]]}}}/>\n</$button>\n<$button>reset\n<$action-setfield $tiddler=<<datafieldsTid>> counter=\"1\"/>\n<$action-setfield $tiddler=<<datafieldsTid>> text=\"\"/>\n</$button>\n\\end\n\n\\define create-field-inputbox()\n<$wikify name=flt text={{{ [<datafieldsTid>get[counter]]~[[1]] }}} >\n<$list filter=<<numfilter>> variable=cnt>\n\n<<getInputs>>\n</$list>\n</$wikify>\n\\end\n\n\\define add-more-fields-ui(datafieldsTid:\"\")\n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<<add-reset>>\n<<create-field-inputbox>>\n</$vars>\n\\end\n\n\\define add-more-fields-selective-ui(datafieldsTid:\"\", stateTiddler:\"$:/state/commander/tiddler-addfields-status\")\n<$checkbox \n tiddler=<<__stateTiddler__>>\n field=\"text\" \n checked=\"addfields\" unchecked=\"nofields\"\n default=\"nofields\" > \n Add fields\n</$checkbox>\n<$reveal type=\"match\" state=<<__stateTiddler__>> text=\"addfields\" default=\"nofields\" >\n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<<add-reset>>\n<div style=\"padding-left:88px;\">\n<<create-field-inputbox>>\n</div>\n</$vars>\n</$reveal>\n\\end"},"$:/plugins/kookma/commander/field/macros/remove":{"title":"$:/plugins/kookma/commander/field/macros/remove","created":"20200109083928203","modified":"20200325055328423","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define xx-add-new-field-bulk(newField:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__newField__>!is[blank]]\">\n<<create-log-tiddler \"add-new-field-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]+[!is[missing]]-[has:field[$newField$]]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-field\" $param=<<__newField__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"new field `$newField$` added\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\n\\define remove-old-field-bulk(oldField:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__oldField__>!is[blank]]\">\n<<create-log-tiddler \"remove-old-field-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]+[!is[missing]]+[has:field[$oldField$]]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-field\" $param=<<__oldField__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"old field `$oldField$` removed\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define set-field-value-bulk(fieldName:\"Empty\", fieldValue:\"Empty\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__fieldName__>!is[blank]]\" variable=null>\n<$list filter=\"[<__fieldValue__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"set-field-value-create-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]-[$fieldName$[$fieldValue$]]\">\n<$list filter=\"[<currentTiddler>has:field[$fieldName$]]\" variable=ignore \nemptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not `$fieldName$` field. Operation ignored//\" tidItem=<<currentTiddler>> />\"\"\" >\n<$action-setfield $field=<<__fieldName__>> $value=<<__fieldValue__>> />\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"field `$fieldName$` got a value\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/field/macros/rename":{"title":"$:/plugins/kookma/commander/field/macros/rename","created":"20200107051937869","modified":"20200325055328448","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define rename-field-bulk(oldField:\"\", newField:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore>\n<$list filter=\"[<__oldField__>!is[blank]]\" variable=null>\n<$list filter=\"[<__newField__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"rename-field-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"[<currentTiddler>has:field[$oldField$]]\" variable=ignore\n emptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not field `$oldField$`. Operation ignored.//\" tidItem=<<currentTiddler>> /> \"\"\">\n<$set name=oldValue tiddler=<<currentTiddler>> field=<<__oldField__>> >\t\n<$action-setfield $tiddler=<<currentTiddler>> $field=<<__newField__>> $value=<<oldValue>>/>\n</$set>\n<$action-deletefield $tiddler=<<currentTiddler>> $field=<<__oldField__>> />\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"fied `$oldField$` renamed to `$newField$`\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/field/macros/set":{"title":"$:/plugins/kookma/commander/field/macros/set","created":"20190212101155537","modified":"20200325055328470","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define set-field-value-bulk(fieldName:\"\", fieldValue:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__fieldName__>!is[blank]]\" variable=null>\n<$list filter=\"[<__fieldValue__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"set-field-value-create-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]-[$fieldName$[$fieldValue$]]\">\n<$list filter=\"[<currentTiddler>has:field[$fieldName$]]\" variable=ignore \nemptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not `$fieldName$` field. Operation ignored//\" tidItem=<<currentTiddler>> />\"\"\" >\n<$action-setfield $field=<<__fieldName__>> $value=<<__fieldValue__>> />\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"field `$fieldName$` got a value\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/field/ui":{"title":"$:/plugins/kookma/commander/field/ui","caption":"Field","created":"20190212061551615","list-after":"$:/plugins/kookma/commander/tag/ui","modified":"20200324070652439","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/FieldOps]!has[draft.of]]\"\ndefault:\"$:/plugins/kookma/commander/field/uicomp/add-fields\" \nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\"\n>>\n\n"},"$:/plugins/kookma/commander/field/uicomp/add-fields":{"title":"$:/plugins/kookma/commander/field/uicomp/add-fields","caption":"Add fields","created":"20200109083519146","modified":"20200325055328482","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<!-- create the interface-->\n<$macrocall $name=\"add-more-fields-ui\" datafieldsTid=\"$:/temp/commander/tiddler/datafields/addfield\" />\n\n\n<!-- call action macro -->\n<$button class=\"cmd-btn cmd-btn-wd\"> Add new fields\n<$macrocall $name=\"add-new-field-bulk\" \n datafieldsTid=\"$:/temp/commander/tiddler/datafields/addfield\" />\n</$button><br>\n,,Note: This will overwrite the existing fileds!,,"},"$:/plugins/kookma/commander/field/uicomp/remove-fields":{"title":"$:/plugins/kookma/commander/field/uicomp/remove-fields","caption":"Remove fields","created":"20190314051054548","list-after":"$:/plugins/kookma/commander/field/uicomp/add-fields","modified":"20200325055328489","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Old field</label><$select class=\"cmd-select-wd\" tiddler=\"$:/temp/commander/field-remove\" default=\"\">\n<$list filter=\"[subfilter<searchfilter>fields[]sort[]] -title -tags\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove old field\n<$macrocall $name=\"remove-old-field-bulk\" oldField={{$:/temp/commander/field-remove}} />\n</$button>"},"$:/plugins/kookma/commander/field/uicomp/rename-fields":{"title":"$:/plugins/kookma/commander/field/uicomp/rename-fields","caption":"Rename fields","created":"20200107052908832","list-after":"$:/plugins/kookma/commander/field/uicomp/remove-fields","modified":"20200325055328499","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Old field</label><$select class=\"cmd-select-wd\" \n tiddler=\"$:/temp/commander/rename-field/old\" default=\"\" >\n<$list filter=\"[subfilter<searchfilter>fields[]sort[]] -[<systemFieldsTid>get[text]split[ ]]\" > \n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<label class=\"kk-cmd-label\">New field</label><$edit-text\ntiddler=\"$:/temp/commander/rename-field/new\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" new field name\"\n/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Rename field\n<$macrocall $name=\"rename-field-bulk\" \noldField={{$:/temp/commander/rename-field/old}} \nnewField={{{ [[$:/temp/commander/rename-field/new]get[text]lowercase[]trim[]split[ ]join[_]] }}} />\n</$button>\n\n<!-- new field name is checked to be lowecase and leading and trailing spaces are removed and space between words replaced by underscore (_).\n-->"},"$:/plugins/kookma/commander/field/uicomp/set-field-value":{"title":"$:/plugins/kookma/commander/field/uicomp/set-field-value","caption":"Set field value","created":"20190212120609737","list-after":"$:/plugins/kookma/commander/field/uicomp/rename-fields","modified":"20200325055328506","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Field name</label><$select class=\"cmd-select-wd\" \n tiddler=\"$:/temp/commander/field-name\" default=\"\" >\n<$list filter=\"[subfilter<searchfilter>fields[]sort[]] -[<systemFieldsTid>get[text]split[ ]]\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<label class=\"kk-cmd-label\">Field value</label><$edit-text\ntiddler=\"$:/temp/commander/field-value\"\ntag=\"input\" default=\"\"\nclass=\"cmd-txt-area\" placeholder=\" field value\"/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Set field value\n<$macrocall \n $name=\"set-field-value-bulk\" \n fieldName={{$:/temp/commander/field-name}} \n fieldValue={{$:/temp/commander/field-value}} \n/>\n</$button>"},"$:/plugins/kookma/commander/filters/Drafts":{"title":"$:/plugins/kookma/commander/filters/Drafts","created":"20190214135512125","description":"{{$:/language/Filters/Drafts}}","filter":"[has[draft.of]sort[title]]","modified":"20200324070652476","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/geneal":{"title":"$:/plugins/kookma/commander/filters/geneal","created":"20190725091830350","description":"General filter","filter":"[all[shadows+tiddlers]search[your keywrods]]","modified":"20200324070652484","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/Missing":{"title":"$:/plugins/kookma/commander/filters/Missing","created":"20190214140029091","description":"{{$:/language/Filters/Missing}}","filter":"[all[missing]sort[title]]","modified":"20200324070652492","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/Orphans":{"title":"$:/plugins/kookma/commander/filters/Orphans","created":"20190214135426497","description":"{{$:/language/Filters/Orphans}}","filter":"[all[orphans]sort[title]]","modified":"20200324070652498","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/RecentSystemTiddlers":{"title":"$:/plugins/kookma/commander/filters/RecentSystemTiddlers","created":"20190214135950458","description":"{{$:/language/Filters/RecentSystemTiddlers}}","filter":"[has[modified]!sort[modified]limit[50]]","modified":"20200324070652508","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/RecentTiddlers":{"title":"$:/plugins/kookma/commander/filters/RecentTiddlers","created":"20190214135912493","description":"{{$:/language/Filters/RecentTiddlers}}","filter":"[!is[system]has[modified]!sort[modified]limit[50]]","modified":"20200324070652513","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/SessionTiddlers":{"title":"$:/plugins/kookma/commander/filters/SessionTiddlers","created":"20190214135831279","description":"Tiddlers modified since the wiki was loaded","filter":"[haschanged[]]","modified":"20200324070652525","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/StoryList":{"title":"$:/plugins/kookma/commander/filters/StoryList","created":"20190214135246552","description":"{{$:/language/Filters/StoryList}}","filter":"[list[$:/StoryList]] -$:/AdvancedSearch","modified":"20200324070652532","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/temp-and-state":{"title":"$:/plugins/kookma/commander/filters/temp-and-state","created":"20190214141452091","description":"Temporary and state tiddlers","filter":"[prefix[$:/temp]] [prefix[$:/state]]","modified":"20200324070652542","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/help/ui":{"title":"$:/plugins/kookma/commander/help/ui","caption":"Help","created":"20190314050052494","icon":"$:/core/images/help","list-after":"$:/plugins/kookma/commander/setting/ui","modified":"20200324070652550","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/Help]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/help/uicomp/quick-tutorial\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n\n\n"},"$:/plugins/kookma/commander/help/uicomp/quick-tutorial":{"title":"$:/plugins/kookma/commander/help/uicomp/quick-tutorial","caption":"Quick tutorial","created":"20190314050138754","modified":"20200325092740142","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"# Use ''Combo search'' to list possible tiddlers\n#* example: `concept` performs a standard search and find all matches in title, text, and tags\n#* example: `[tag[xx]]` finds all tiddlers tagged with //xx//\n#* example: `[prefix[tt]` finds all tiddlers have title started with //tt//\n#* example: `[has[draft.of]sort[title]]` finds all draft tiddlers\n\n# Use ''Select tiddlers'' for the resulting list to identify which specific tiddlers to do a batch operation on\n#* this step lets you to do a batch operation on selected tiddlers NOT all items by ''Combo search''!\n#* it is possible to select/deselect all tiddlers from ''Combo search'' result at once! Note that, by default all tiddlers are considered for bulk operation until selective operation is activated!\n# From ''Batch operations tabs'' select the batch operation you wish to perform on selected tiddlers\n#* example: title, tag, and field operations\n#* example: Snr operation\n#* Inspect tab can be used to inspect tiddlers before or after performing operations\n\n* Notes:\n** Multiple batch operations can be done on the same set (unless you change something in the search criteria)\n** Sometimes it is useful to use an intermediate batch to help, like tag tiddlers with a \"working\" tag, using multiple searches, then then use the \"working\" tag to apply a batch operation to\n\n<div class=\"commander-alert\">''Note'': For good operation a tiddler width of 800px is recommended. You can also use //Sidebar layout// as `Fluid story`.</div>\n\n\nFor detailed docummention go to [[Demo page|https://kookma.github.io/TW-Commander/]]\n\n!!! Footenote\n# [[Use filter expression|https://tiddlywiki.com/prerelease/#Filters:Filters%20%5B%5BFilter%20Expression%5D%5D%20%5B%5BFilter%20Syntax%5D%5D%20%5B%5BFilter%20Operators%5D%5D%20%5B%5BFilter%20Parameter%5D%5D%20%5B%5BFilter%20Run%5D%5D%20%5B%5BFilter%20Step%5D%5D%20%5B%5BFilter%20Whitespace%5D%5D]]"},"$:/plugins/kookma/commander/help/uicomp/regular-expression":{"title":"$:/plugins/kookma/commander/help/uicomp/regular-expression","caption":"Regular expressions","created":"20190314084511720","list-after":"$:/plugins/kookma/commander/help/uicomp/snr","modified":"20200325093450357","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"!! Regular Expressions Quick Reference\n\n|''FLAGS'' |<|<|h\n| i |ignore case|case insensitive matching|\n| |whole words|match strings of a-z, 0-9 and _|\n| g |global|field start=^, field end=$, all matches|\n| m |multi-line|line start=^, line end=$, first match|\n| |first match|field start=^, field end=$, first match|\n|''MATCH'' |<|<|h\n|''Anchors''|<|<|\n| ^ |start of scope|see Flags, match is zero length|\n| $ |end of scope|see Flags, match is zero length|\n| \\b |word boundary|anchor to edge of word, zero length|\n| \\B |not word boundary|anchor inside word, zero length|\n|''Character Classes''|<|<|\n| [c] |class of characters|any one matches, e.g. [abc123]|\n| [^c] |negated class of characters|any one doesn't match, e.g. [^abc123]|\n|''Shorthand Character Classes''|<|<|\n| . |any character except newline|same as [^\\n]|\n| \\d |decimal|same as [0-9]|\n| \\D |not decimal|same as [^0-9]|\n| \\s |white-space|same as [\\ \\t\\n]|\n| \\S |not white-space|same as [^\\ \\t\\n]|\n| \\t |tab|same as [\\t]|\n| \\n |newline|same as [\\n]|\n| \\w |word character|same as [a-zA-Z0-9_]|\n| \\W |not word character|same as [^a-zA-Z0-9_]|\n|''Capturing Groups''|<|<|\n| (match) |match placed in variable $x|can be used in Replace|\n| (\\x) |repeats match pattern of $x|can be used in Replace|\n|''Quantifiers''|<|<|\n| ? |single match|match 0 or 1 time|\n| * |greedy match 0+|match 0 or as many times as possible|\n| *? |lazy match 0+|match 0 or as few times as possible|\n| + |greedy match 1+|match 1 or as many times as possible|\n| +? |lazy match 1+|match 1 or as few times as possible|\n| {x} |match x times|match x times|\n| {x,y} |match x to y times|match x times to exactly y times|\n| {x,} |match x or more times|match x times or as many as possible|\n|''Escapes''|<|<|\n| \\ |escape special characters|add to \\ [ ] ( ) { } ^ $ . ? * + for literals|\n|''REPLACE'' |<|<|h\n| $& |return the full match|<|\n| $x |return $x where x is the numeric index of a Capturing Group|<|\n|''NOTE'' |<|<|h\n|This Reference supports most ordinary uses of regular expressions.<br> For advanced options: [[MDN Reference|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Using_simple_patterns]]; examples: [[regular-expressions.info|https://www.regular-expressions.info/tutorial.html]].|<|<|\n\n"},"$:/plugins/kookma/commander/help/uicomp/relink":{"title":"$:/plugins/kookma/commander/help/uicomp/relink","caption":"Relink on rename","created":"20190912052826269","list-after":"$:/plugins/kookma/commander/help/uicomp/regular-expression","modified":"20200325093202388","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"!! Relink on rename\nWhen Tiddler Commander is used to rename bulk tiddlers in operation like\n\n* Title operation\n** add/remove prefix\n** add/remove suffix\n** remove chars from the begining or end of title\n* ~SnR\n** Search and replace in tiddlers title\n\nIt is possible to update all links to title. This includes //tags// and //list//. If [[Relink|https://flibbles.github.io/tw5-relink/]] plugin is installed, then not only title will be updated in //tags// and //list// field, but also in all filters, transclusions, text field and evrywhere.\n\n<div class=\"commander-alert\"> ''Note'': Relink does not update all forms of title e.g those created from different segments, but it will update any occurances</div>\n\n\n!! How to integrate with ''Relink''?\n\nSimply install the [[Relink|https://flibbles.github.io/tw5-relink/]] plugin and it will be appeared as an option when Tiddler Commander title operations including ~SnR are performed!\n"},"$:/plugins/kookma/commander/help/uicomp/snr":{"title":"$:/plugins/kookma/commander/help/uicomp/snr","caption":"Search-n-Replace","created":"20190307104654008","list-after":"$:/plugins/kookma/commander/help/uicomp/quick-tutorial","modified":"20200925143424505","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"!! Search and replace using Snr\nSnr stands for search and replace, is a powerful tool uses regular expression for searching all fields and lets replace chars, words, phrases with new values.\n\n!! How to use\n* Enter a search filter or keywords in ''Combo search'' box like `[tag[myTag]]` or `concept`\n* Use ''Select tiddlers'' for the resulting list to identify which specific tiddlers to do a Snr operation on\n** If selective operation is unchecked, all tiddlers from step one will be included in Snr operation.\n* From ''Tiddler title'' drop down menu select a tiddler\n* From ''Field name'' drop down menu select a tiddler field like `text`\n** all fileds even `title` can be selected\n* In the ''Search text'' type the search term for example `this`\n* In the ''Replace with'' type the term you want to replace with like `that`\n* Check the ''Differences'' and if you are satisfied with the result, press the `Replace?` button\n* You can press `Replace all?` if you want to search and replace in all selected tiddlers\n\n;Remarks\n: The `Replace all?` lets you to search and replace in all selected tiddlers at once! It is possible to search and replace even in `title` field!\n\n<$list filter=\"[[snr.png]is[tiddler]]\"><<image-pretty img:\"snr.png\" width:\"60%\" align:\"center\" caption:\"Fig 1. Search and replace using regular expression\">></$list>\n\n!! Special characters\n<<<\nAs `SNR` uses ''regexp'' pattern to make search and replace, when special characters are used in the ''Search text'' box, they shall be escaped among them are `*`, `+`, `[]`, `?` ...\nTo use these characters do like below\n\n```\n\\[ \\] \\( \\) \\{ \\} \\. \\* \\+ \\? \\^ \\$ \\\\ \\|\n```\n<<<\n\n!! Warning\n<<<\n* SNR replace the contents of tiddlers.<br> ''//The action can not be undone//''. So always make a backup before performing any replace action\n<<<"},"$:/plugins/kookma/commander/help/uicomp/warning":{"title":"$:/plugins/kookma/commander/help/uicomp/warning","caption":"Warning","created":"20200325092841002","list-after":"$:/plugins/kookma/commander/help/uicomp/relink","modified":"20200325093538187","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":";Note i\n:Tiddler Commander is a very powerful tool, it can change any field in any tiddler.// Make sure what you are doing//!\n\n;Note ii\n:Tiddler Commander uses two steps tiddler selection. It uses a combo search box to screen (using standard or filter search) possible tiddlers and then uses a selective list of tiddlers from first step for batch operation!\n:# If selective operation is unchecked, then all tiddlers from step one are used for batch operation\n:# If selective operation is checked, then user has to manually select among tiddlers, and the selected ones are used for batch operation \n\n;Note iii\n://Commander do not perform operation on shadow tiddlers//, unless they are overriden. Because shadow tiddlers aren’t stored as ''real'' tiddlers. They are intentionally excluded from most operations by default so that they don’t clutter filters made by users unless explicitly required. \n\n<div class=\"commander-alert\">''Warning''\nBefore using Tiddler commander for bulk operation on your own valuable, irreplaceable data, ''backup them''.\n</div>"},"$:/plugins/kookma/commander/history":{"title":"$:/plugins/kookma/commander/history","created":"20200324061906253","modified":"20210102152245874","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Commander/#ChangeLog\n\n* ''2.1.2'' -- 2021.01.02 -- Saq Imtiaz release\n* ''2.1.0'' -- 2020.03.25 -- stable release\n* ''0.1.0'' -- 2019.02.12 -- mature public release\n"},"$:/plugins/kookma/commander/images/commander.svg":{"title":"$:/plugins/kookma/commander/images/commander.svg","caption":"file-alt (Regular)","created":"20190724144859943","modified":"20210102140141641","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-file-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 384 512\"><path d=\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"/></svg>"},"$:/plugins/kookma/commander/inspect/comp/edit-fileds":{"title":"$:/plugins/kookma/commander/inspect/comp/edit-fileds","created":"20190313061511585","modified":"20200325055328517","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}] \n\\end\n\n\\define new-field()\n<$vars name={{$:/temp/newfieldname}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button class=\"cmd-btn\">\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button class=\"cmd-btn\">\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n\\define compInspect-edit-fileds(commonFields:\"\")\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n\n\n<$list filter=\"created creator modified modifier -[enlist<__commonFields__>]\" variable=\"currentField\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n\n\n\n\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n\\end"},"$:/plugins/kookma/commander/inspect/comp/edit-preview":{"title":"$:/plugins/kookma/commander/inspect/comp/edit-preview","created":"20200115050859257","modified":"20200325055328524","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compInspect-edit-preview(tiddler, commonFields:\"\")\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<tr class=\"tc-edit-field\"><td class=\"tc-edit-field-name\">title:</td>\n<td class=\"tc-edit-field-value\"><$link to=<<__tiddler__>> ><$text text=<<__tiddler__>> /></$link></td>\n</tr>\n<tr class=\"tc-edit-field\"><td class=\"tc-edit-field-name\">tags:</td>\n<td class=\"tc-edit-field-value\">{{$tiddler$||$:/core/ui/EditTemplate/tags}}</td>\n</tr>\n<tr class=\"tc-edit-field\"><td class=\"tc-edit-field-name\">text:</td>\n<td class=\"tc-edit-field-value\"><$macrocall $name=compInspect-get-field tiddler=<<__tiddler__>> field=\"text\" tag=\"textarea\" /></td>\n</tr>\n</tbody>\n</table>\n</div>\n\n<$tiddler tiddler=<<__tiddler__>> >\n<$macrocall $name=\"compInspect-edit-fileds\" commonFields=<<__commonFields__>> />\n</$tiddler>\n\\end\n\n\\define compInspect-get-field(tiddler, field, tag:\"input\") \n<$edit-text class=\"tc-edit-texteditor\" tiddler=<<__tiddler__>> field=<<__field__>> tag=<<__tag__>> default=\"\" placeholder={{$:/language/EditTemplate/Body/Placeholder}}/>\n\\end"},"$:/plugins/kookma/commander/inspect/comp/main":{"title":"$:/plugins/kookma/commander/inspect/comp/main","created":"20190308151331101","modified":"20200325055328536","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compInspect(filter, stateTiddler:\"thisTiddler\")\n<$set name=\"state\" \n value={{{ [[$:/state/compInspect/]addsuffix<__stateTiddler__>] }}} >\n<$vars\n slStateTid={{{ [<state>addsuffix[/]addsuffix[selectState-tiddler]] }}}\n rvStateTid={{{ [<state>addsuffix[/]addsuffix[revealState-tiddler]] }}}\n chStateTid={{{ [<state>addsuffix[/]addsuffix[checkboxState-tiddler]] }}} >\n\nSelect tiddler <$macrocall $name=compSelect filter=<<__filter__>> stateTiddler=<<slStateTid>> />\n \n<$macrocall $name=\"check-common-fields\" stateTiddler=<<chStateTid>> />\n \n<$reveal stateTitle=<<rvStateTid>> type=\"nomatch\" text=\"edit\">\n<$button class=\"tc-btn-invisible\" setTitle=<<rvStateTid>> setTo=\"edit\" tooltip=\"edit tiddler\">{{$:/core/images/edit-button}}</$button>\n<$macrocall $name=compInspect-show-preview tiddler={{{ [<slStateTid>get[text]]+[subfilter<__filter__>] }}} commonFields={{{ [<chStateTid>get[text]] }}}/>\n</$reveal>\n<$reveal stateTitle=<<rvStateTid>> type=\"match\" text=\"edit\">\n<$button class=\"tc-btn-invisible\" setTitle=<<rvStateTid>> setTo=\"\" tooltip=\"confirm changes\">{{$:/core/images/done-button}}</$button>\n<$macrocall $name=compInspect-edit-preview tiddler={{{ [<slStateTid>get[text]]+[subfilter<__filter__>] }}} commonFields={{{ [<chStateTid>get[text]] }}}/>\n</$reveal>\n\n</$vars>\n</$set>\n\\end\n\n\\define check-common-fields(stateTiddler)\n<$vars commonFields={{{[<commonFieldsTid>get[text]]}}}>\n<$checkbox \n tiddler=<<__stateTiddler__>>\n field=\"text\" \n checked=<<commonFields>>\n unchecked=\"\"\n default=\"\"\n> Exclude common fields?</$checkbox>\n</$vars>\n\\end"},"$:/plugins/kookma/commander/inspect/comp/select":{"title":"$:/plugins/kookma/commander/inspect/comp/select","created":"20190308070713468","modified":"20200325055328546","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compSelect(filter:\"\", stateTiddler:\"\", default:\"\", class:\"\", showButtons:\"show\")\n<$select tiddler=<<__stateTiddler__>> default=<<__default__>> class=<<__class__>> >\n<option value=\"\">None</option>\n<$list filter=<<__filter__>> variable=item>\n<option value=<<item>>><$text text=<<item>> /></option>\n</$list>\n</$select>\n<$reveal type=\"match\" text=\"show\" default=<<__showButtons__>> >\n<$vars myfilter=<<__filter__>> mystateTiddler=<<__stateTiddler__>> myitem={{{ [<__stateTiddler__>get[text]] }}} >\n<$button actions=<<cs-prev-item>> class=\"cmd-btn\"> prev </$button>\n<$button actions=<<cs-next-item>> class=\"cmd-btn\"> next </$button>\n</$vars>\n</$reveal>\n\\end\n\n\\define cs-prev-item()\n<$list filter=\"[subfilter<myfilter>] +[before<myitem>]\" variable=\"prev-item\" >\n<$action-setfield $tiddler=<<mystateTiddler>> text=<<prev-item>> />\n</$list>\n\\end\n\n\\define cs-next-item()\n<$list filter=\"[subfilter<myfilter>] +[after<myitem>]\" variable=\"next-item\" >\n<$action-setfield $tiddler=<<mystateTiddler>> text=<<next-item>> />\n</$list>\n\\end\n\n<!-- used by\n - $:/plugins/kookma/commander/compInspect/main\n-->"},"$:/plugins/kookma/commander/inspect/comp/show-preview":{"title":"$:/plugins/kookma/commander/inspect/comp/show-preview","created":"20190308070953891","modified":"20200325055328553","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compInspect-show-preview(tiddler, commonFields:\"\")\n<$vars mainFields=\"title tags text\">\n<table class=\"cmd-ci-table\">\n<tr><td class=\"leftcol\">title</td>\n<td class=\"rightcol\"><$link to=<<__tiddler__>> ><$text text=<<__tiddler__>> /></$link></td>\n</tr>\n\n<tr><td class=\"leftcol\">tags</td>\n<td style=\"padding:3px;\"><$macrocall $name=showTags tiddler=<<__tiddler__>> /></td>\n</tr>\n<tr><td class=\"leftcol\">text</td>\n<td><$transclude tiddler=<<__tiddler__>> field=\"text\" mode=\"block\"/></td>\n</tr>\n<$list filter=\"[<__tiddler__>fields[]] -[enlist<mainFields>] -[enlist<__commonFields__>]\" variable=\"otherFld\">\n<tr><td class=\"leftcol\"><<otherFld>></td>\n<td class=\"rightcol\"><$transclude tiddler=<<__tiddler__>> field=<<otherFld>> mode=\"inline\"/></td>\n</tr>\n</$list>\n</table>\n</$vars>\n\\end\n\n\\define showTags(tiddler)\n<$list filter=\"[<__tiddler__>tags[]]\" variable=tagItem >\n<$macrocall $name=tag tag=<<tagItem>> />\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/inspect/ui":{"title":"$:/plugins/kookma/commander/inspect/ui","caption":"Inspect","created":"20190313075823496","list-after":"$:/plugins/kookma/commander/field/ui","modified":"20200325055328564","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/InspectOps]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/inspect/uicomp/Inspection\"\nclass:\"tc-vertical cmd-tab-wd\">>\n"},"$:/plugins/kookma/commander/inspect/uicomp/Inspection":{"title":"$:/plugins/kookma/commander/inspect/uicomp/Inspection","caption":"Inspect","created":"20190313080119081","modified":"20200325055328571","tags":"$:/tags/Commander/InspectOps","type":"text/vnd.tiddlywiki","text":"<$macrocall \n $name=compInspect\n filter=<<searchfilter>>\n stateTiddler=\"commander\"\n/>"},"$:/plugins/kookma/commander/license":{"title":"$:/plugins/kookma/commander/license","created":"20200324061906254","modified":"20200324061959559","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2018-2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n<<<"},"$:/plugins/kookma/commander/log/ui":{"title":"$:/plugins/kookma/commander/log/ui","caption":"Log status","created":"20190221152805807","modified":"20200324070652656","tags":"","type":"text/vnd.tiddlywiki","text":"<div class=\"commander-alert\" style=\"padding:5px;font-size:0.90em;\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" actions=<<delete-all-log-tiddlers>>>Clear log</$button>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[tag[$:/tags/Commander/LogOps]]\" />\"\"\">\n<div class=\"tc-search-results\">\n<span class=\"kk-commander-log-note\">Recent number of operations: <<resultCount>></span><br>\n<$list filter=\"[tag[$:/tags/Commander/LogOps]] +[!sort[created]]\" variable=\"logTid\">\n<b><$view tiddler=<<logTid>> field=\"created\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm:0ss\"/> \n<$view tiddler=<<logTid>> field=\"caption\">\n <$view tiddler=<<logTid>> field=\"title\"></$view>\n</$view>\n</b>\n<ol><$list filter=\"[<logTid>indexes[]]\" variable=\"item\">\n<li><$link to=<<item>>><<item>></$link>\n<$set name=\"myItem\" tiddler=<<logTid>> index=<<item>> >\n<$list filter=\"[<myItem>!search[existed]]\" variable=\"ignore\" \n emptyMessage=\"\"\"<span style=\"color:red;\"><<myItem>></span>\"\"\" >\n<span class=\"kk-commander-log-item\"><<myItem>></span>\n</$list>\n</$set>\n</li>\n</$list></ol>\n</$list>\n</div>\n</$set>\n</div>"},"$:/plugins/kookma/commander/macros/compConfirmAction":{"title":"$:/plugins/kookma/commander/macros/compConfirmAction","created":"20190301145916990","modified":"20200324070652662","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compConfirmAction(\nbtnLabel:\"Delete these tiddlers\", \nconfirmMessage:\"Are you sure you wish to delete\", \nstateTiddler:\"\"\ncountFilter:\"\", \nactionMacro:\"\")\n<$set name=resultCount value={{{ [subfilter<__countFilter__>count[]] }}} >\n<$reveal type=\"gt\" text=\"0\" default=<<resultCount>> >\n<$button popup=<<qualify \"\"\"$stateTiddler$\"\"\">> class=\"cmd-btn\">$btnLabel$</$button>\n</$reveal>\n<$reveal state=<<qualify \"\"\"$stateTiddler$\"\"\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n$confirmMessage$ <<resultCount>> tiddler(s)?\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"cmd-btn\"> $btnLabel$\n<$macrocall $name=<<__actionMacro__>> />\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end"},"$:/plugins/kookma/commander/macros/definition":{"title":"$:/plugins/kookma/commander/macros/definition","created":"20200102195320611","description":"some macro are not used REMOVE THEM","modified":"20200325055328579","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define tempPath() $:/temp/commander\n\n\\define searchboxTid() $(tempPath)$/search-box\n\\define selectiveOpsTid() $(tempPath)$/selective-operation\n\n\n\\define workingTag() $:/tags/Commander/Working\n\\define exportTagTid() $:/temp/commander/exportTag\n\\define systemFieldsTid() $:/plugins/kookma/commander/config/systemfields\n\\define commonFieldsTid() $:/plugins/kookma/commander/config/commonfields"},"$:/plugins/kookma/commander/macros/logging":{"title":"$:/plugins/kookma/commander/macros/logging","created":"20190221163406469","modified":"20200325055356563","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define set-title() $:/temp/commander/logs/tid-{{{[tag[$:/tags/Commander/LogOps]count[]add[1]]}}}\n\n\\define create-log-tiddler(msg)\n<$wikify name=\"myTitle\" text=\"\"\"<<set-title>>\"\"\">\n<$wikify name=\"myCaption\" text=\"\"\"<$macrocall $name=\"set-caption\" msg=<<__msg__>> />\"\"\">\n<$action-createtiddler $basetitle=<<myTitle>>\n$savetitle=\"$:/state/commander/log-tiddler\"\ntags=\"$:/tags/Commander/LogOps\"\ntype=\"application/json\"\ncaption=<<__msg__>>\n/>\n</$wikify>\n</$wikify>\n\\end\n\n\\define log-add-single-operation(msg:\"commander operation\", tidItem:\"no item\")\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=<<__tidItem__>> $value=<<__msg__>> />\n\\end\n\n\n\\define delete-all-log-tiddlers()\n<$action-deletetiddler $filter=\"[tag[$:/tags/Commander/LogOps]]\" />\n\\end"},"$:/plugins/kookma/commander/macros/remove-workingtag":{"title":"$:/plugins/kookma/commander/macros/remove-workingtag","created":"20200103172259595","modified":"20200325055328597","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define remove-working-tag(oldTag)\n<$list filter=\"[all[shadows+tiddlers]tag<workingTag>limit[1]]\" variable=ignore>\n<<create-log-tiddler \"remove-workingTag\">>\n<$list filter=\"[all[shadows+tiddlers]tag<workingTag>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<__oldTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"working tag `$oldTag$` removed\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n\\end\n\n\n"},"$:/plugins/kookma/commander/macros/slider":{"title":"$:/plugins/kookma/commander/macros/slider","created":"20200105085554618","modified":"20200325065829776","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define commander-slider(title, default:\"closed\")\n<$set name=\"revealState\" value=<<qualify \"$:/state/commander/reveal/$title$\">>>\n<h2>\n <$reveal type=\"nomatch\" state=<<revealState>> text=\"open\" default=\"$default$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"open\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$default$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"closed\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <$view tiddler=\"$title$\" field=\"caption\">\n <$view tiddler=\"$title$\" field=\"title\"></$view>\n </$view>\n \n</h2>\n\n<$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$default$\">\n<$transclude tiddler=\"$title$\" mode=\"block\" />\n</$reveal>\n</$set>\n\\end"},"$:/plugins/kookma/commander/macros/utility":{"title":"$:/plugins/kookma/commander/macros/utility","created":"20190315092752816","modified":"20200325055356631","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define display(label,text)\n<$set name=\"stateTid\" value=\"$:/temp/commander/display/popup/$label$\" >\n<$button popup=<<stateTid>> class=\"tc-btn-invisible\"><span style=\"text-decoration: underline\">$label$</span></$button>\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<stateTid>> animate=\"yes\">\n<span style=\"color:blue;\"><$text text=<<__text__>> /></span></$reveal>\n</$set>\n\\end\n\n\\define is-filterSeearch-newer-than-selectedTitles(TidA, TidB)\n<$set name=\"tidAMod\" value={{{ [[$TidA$]get[modified]] }}}>\n<$set name=\"tidBMod\" value={{{ [[$TidB$]get[modified]] }}}>\n<$set name=\"tidAText\" value={{{ [[$TidA$]get[text]] }}}>\n<$set name=\"tidBText\" value={{{ [[$TidB$]get[text]] }}}>\n<$list filter=\"[<__TidB__>get[text]minlength[1]]\" variable=ignore>\n<$reveal type=\"nomatch\" default=<<tidAText>> text=<<tidBText>>>\n<$list filter=\"[<tidAMod>] [<tidBMod>] +[nsort[]last[1]removesuffix<tidBMod>]\">\nA new filter search has been detected, click on the search button to apply it.\n</$list>\n</$reveal>\n</$list>\n</$set>\n</$set>\n</$set>\n</$set>\n\\end\n\n!!Remarks\n;is-filterSeearch-newer-than-selectedTitles\n* Checks `TidA` and `TidB` for modified date and text\n* If They are not empty, then\n** checks if the text of two are equal, if not\n** checks to see if `TidB` is newer or not\n** if newer shows a message, to apply the new search filter\n* Note\n** `TidA=\"$:/temp/commander\"`\n** `TidB=\"$:/temp/commander/search-box\"`\n* is-filterSeearch-newer-than-selectedTitles is called from $:/plugins/kookma/commander/search/ui\n\n;display\n* gets a label and a text\n* create an inline label\n* on click label, the text is displayed as temporary popup\n* losing focus, the text goes hidden\n* this macro is used in customized compSelective to show the active filter"},"$:/plugins/kookma/commander/readme":{"title":"$:/plugins/kookma/commander/readme","created":"20200324061906254","modified":"20210102142228008","tags":"","type":"text/vnd.tiddlywiki","text":"; Tiddler Commander\nTiddler Commander, in short ''Commander'' is a unique tool for batch operations on tiddlers. Commander has the below features\n\n* Bulk tiddler creation/deletion\n* Combo search to filter and select tiddlers\n* Title operation: add, remove prefixes and suffixes, also remove cahras form begining and end of title (on renaming tiddlers, [[relink|$:/plugins/kookma/commander/help/uicomp/relink]] can be used to update title in other tiddlers)\n* Tag operation: add, remove, replace\n* Field operation: add, remove, rename, and set field value\n* SNR, search and replace in all fields including text, tags, //title//, and common fields\n* Inspect, to review and inspect tiddlers in one place, scroll among them and edit all fields (including common fields), tags, text (title is an exception!)\n* Log, create logs of all operations\n* Search, //save and load// any combination of filter search\n\n; Start Commander\n* Normally Commander adds its icon: <span class=\"cmd-doc\">{{$:/plugins/kookma/commander/images/commander.svg}}</span> to page controls.\n* Open the right sidebar and click on the <span class=\"cmd-doc\">{{$:/plugins/kookma/commander/images/commander.svg}}</span> Commander is started\n* In standard Tiddlywiki, control buttons are shown on the right sidebar under site title.\n\n; Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Commander/\n* Code: https://github.com/kookma/TW-Commander\n\n<style>\n.cmd-doc svg{\nwidth: 1.2em;\nheight: 1.2em;\nvertical-align: middle;}\n</style>"},"$:/plugins/kookma/commander/search/filter-button/clear":{"title":"$:/plugins/kookma/commander/search/filter-button/clear","created":"20190214132946159","list-after":"$:/plugins/kookma/commander/search/filter-button/search","modified":"20200325055356645","tags":"$:/tags/Commander/Search/FilterButton","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n\n<$reveal type=\"nomatch\" stateTitle=<<searchboxTid>> stateField=\"text\" text=\"\">\n<$button class=\"tc-btn-invisible\" tooltip=\"clear search box and selected tiddlers\">\n<$action-setfield $tiddler=<<searchboxTid>> $field=\"text\" $value=\"\"/>\n<$action-setfield $tiddler=\"$:/temp/commander\" $field=\"text\" $value=\"\"/>\n<$action-setfield $tiddler=\"$:/state/commander/snr/select-tiddler\" $field=\"text\" $value=\"\"/><!-- SNR selection -->\n<$action-setfield $tiddler=\"$:/state/compInspect/temp/commander/selectState-tiddler\" $field=\"text\" $value=\"\"/> <!-- Inspect selection -->\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<!--\nthere is extra action should be removed\n-->"},"$:/plugins/kookma/commander/search/filter-button/dropdown":{"title":"$:/plugins/kookma/commander/search/filter-button/dropdown","created":"20190214133424013","modified":"20200325055328632","tags":"$:/tags/Commander/Search/FilterButton","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/commander/filterDropdown\">> class=\"tc-btn-invisible\" tooltip=\"select a search filter\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/commander/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<searchboxTid>> >\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Commander/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>"},"$:/plugins/kookma/commander/search/filter-button/save":{"title":"$:/plugins/kookma/commander/search/filter-button/save","created":"20190214141644228","list-after":"$:/plugins/kookma/commander/search/filter-button/clear","modified":"20200325055356657","tags":"$:/tags/Commander/Search/FilterButton","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n\n<$reveal type=\"nomatch\" stateTitle=<<searchboxTid>> stateField=\"text\" text=\"\">\n<$button class=\"tc-btn-invisible\" tooltip=\"save current search\" popup=<<qualify \"$:/state/commander/SaveDropdown\">> >\n{{$:/core/images/file}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/commander/SaveDropdown\">> type=\"popup\" class=\"tc-popup-keep\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\nSave new search filter<br><br>\n<$edit-text\ntiddler=\"$:/temp/commander/save-new-filter\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\"description for new filter\"\n/> <br><br>\n\n<$button class=\"tc-btn\"> Save new filter\n<$macrocall $name=\"create-new-filter\" \n description={{$:/temp/commander/save-new-filter}} \n\tbasetitle=\"$:/plugins/kookma/commander/filters/yourFilter\" \n\tfilter={{{[<searchboxTid>get[text]]}}} \t/>\n<$action-deletetiddler $tiddler=\"$:/temp/commander/save-new-filter\"/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/commander/SaveDropdown\">> />\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n\n<!-- ToDO\ncorrect classes for textbox\n-->"},"$:/plugins/kookma/commander/search/macros/create-new-filter":{"title":"$:/plugins/kookma/commander/search/macros/create-new-filter","created":"20190214142032323","modified":"20200325055356665","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define create-new-filter(description:\"\", basetitle:\"\", filter:\"\")\n<$list filter=\"[<__description__>!is[blank]]\" variable=\"ignore\">\n<$action-createtiddler \n $basetitle=\"\"\"$basetitle$\"\"\"\n tags=\"$:/tags/Commander/Filter\"\n description=<<__description__>>\n filter=\"\"\"$filter$\"\"\"\n /> \n</$list>\n\\end\n"},"$:/plugins/kookma/commander/search/macros/select-deselect":{"title":"$:/plugins/kookma/commander/search/macros/select-deselect","created":"20200106121946448","modified":"20200325055328657","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define select-all()\n<$list filter=\"[subfilter<filtertext>!is[missing]!tag<workingTag>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<workingTag>> />\n</$fieldmangler>\n\\end\n\n\\define deselect-all()\n<$list filter=\"[tag<workingTag>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<workingTag>> />\n</$fieldmangler>\n\\end"},"$:/plugins/kookma/commander/search/macros/warning":{"title":"$:/plugins/kookma/commander/search/macros/warning","created":"20200106143244633","modified":"20200325055328672","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define warn-for-selectedTids-from-previous-operation()\n<$list filter=\"[tag<workingTag>]-[subfilter<filtertext>]+[count[]!match[0]] \">\n<span style=\"color:red;font-size:0.85em\">There are remained selected tiddlers from previous search! Remove them by pressing ''deselect all''!</span>\n</$list>\n\\end"},"$:/plugins/kookma/commander/search/selection":{"title":"$:/plugins/kookma/commander/search/selection","caption":"Select tiddlers","created":"20190725144912018","modified":"20200325055328684","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n<$checkbox tiddler=<<selectiveOpsTid>> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\" uncheckactions=<<deselect-all>> > Selective operation?</$checkbox>\n\n<$reveal type=\"nomatch\" stateTitle=<<selectiveOpsTid>> stateField=\"text\" text=\"yes\" tag=\"div\" class=\"kk-commander-tiddler-list kk-commander-columns3\">\n<$list filter=\"[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]\"><$link/><br></$list>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<selectiveOpsTid>> stateField=\"text\" text=\"yes\" tag=\"div\">\n<$button actions=<<select-all>> > Select all</$button> <$button actions=<<deselect-all>> > Deselect all</$button>\n<small style=\"margin-left:10px;\">Number of tiddlers selected: <$count filter=\"[tag<workingTag>]\" /></small><br>\n<<warn-for-selectedTids-from-previous-operation>>\n</$reveal>\n\n\n<$reveal type=\"match\" stateTitle=<<selectiveOpsTid>> stateField=\"text\" text=\"yes\" tag=\"div\" class=\"kk-commander-tiddler-list kk-commander-columns3\">\n<$list filter=\"[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]\">\n<$checkbox tag=<<workingTag>>> <$link/></$checkbox><br>\n</$list>\n</$reveal>\n\n<!-- Description\nThis tiddler implement interface to selectivly add tiddlers for commander operations.\nEach selected tiddler gets a working tag\n-->"},"$:/plugins/kookma/commander/search/ui":{"title":"$:/plugins/kookma/commander/search/ui","caption":"Commander filter search","created":"20190212055219117","modified":"20200325055356672","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n<!-- above statement is not required and only prevent this tiddler overwritten when this is opened by its own -->\n<div class=\"tc-search tc-advanced-search\" style=\"margin-bottom:-12px;\"><!-- negative margin for displaying matches -->\nCombo search <$edit-text tiddler=<<searchboxTid>> type=\"search\" tag=\"input\" default=\"\" placeholder=\"enter keywords or make a filter search e.g. [tag[myTag]]\" focus={{$:/plugins/kookma/commander/config/AutoFocus}}/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Commander/Search/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>"},"$:/plugins/kookma/commander/setting/ui":{"title":"$:/plugins/kookma/commander/setting/ui","caption":"Setting","created":"20190214140835173","icon":"$:/core/images/options-button","list-after":"$:/plugins/kookma/commander/inspect/ui","modified":"20200324070652760","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/Setting]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/setting/uicomp/snr\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n"},"$:/plugins/kookma/commander/setting/uicomp/delete-all-temp-tiddlers":{"title":"$:/plugins/kookma/commander/setting/uicomp/delete-all-temp-tiddlers","caption":"Temporary tiddlers","created":"20190301184304348","list-after":"$:/plugins/kookma/commander/setting/uicomp/relink","modified":"20200325055328690","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"\\define delete-all-temps()\n<$action-deletetiddler $filter=\"[search:title[$:/temp/commander/]]\" />\n\\end\n\n<$set name=numTids value={{{ [search:title[$:/temp/commander/]count[]] }}}>\n<$reveal type=\"match\" text=\"0\" default=<<numTids>> >\nNo temporary tiddlers is existed to delete!\n</$reveal>\n<$reveal type=\"gt\" text=\"0\" default=<<numTids>> >\nNumber of temporary tiddlers (including log tiddlers): <<numTids>><br>\n</$reveal>\n</$set>\n\n<$macrocall $name=\"compConfirmAction\"\nbtnLabel=\"Delete temp tiddlers\" \nconfirmMessage=\"Are you sure you wish to delete\"\nstateTiddler=\"$:/state/commander/setting/delete-temps\"\ncountFilter=\"[search:title[$:/temp/commander/]]\"\nactionMacro=\"delete-all-temps\"/>"},"$:/plugins/kookma/commander/setting/uicomp/minlength":{"title":"$:/plugins/kookma/commander/setting/uicomp/minlength","caption":"Search minimum length","created":"20200110132540295","modified":"20200324070652774","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"Controls the minimum length of a search string before results are displayed.\n\n<label class=\"kk-cmd-label\">Minlength</label><$edit-text tiddler=\"$:/plugins/kookma/commander/config/minlength\" field=text default=3 placeholder=\"enter a number\" tag=input/>"},"$:/plugins/kookma/commander/setting/uicomp/search-filters":{"title":"$:/plugins/kookma/commander/setting/uicomp/search-filters","caption":"Search filter","created":"20200116114041370","modified":"20200325055328703","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"The below list shows the Commander search filter. To edit click on the link and edit tiddler for filter syntax or description\n\n<details>\n<summary>Commander saved filter search</summary>\n<dl>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Commander/Filter]]\" >\n<dt><$link/></dt>\n<dd><span style=\"display:inline-block;font-weight:700;width:100px\">Description:</span><$view field=\"description\"/></dd>\n<dd><span style=\"display:inline-block;font-weight:700;width:100px\">Filter:</span><$view field=\"filter\"/></dd>\n</$list>\n</dl>\n</details>"},"$:/plugins/kookma/commander/setting/uicomp/snr":{"title":"$:/plugins/kookma/commander/setting/uicomp/snr","caption":"Snr setting","created":"20190324051157188","modified":"20200324070652789","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"<<snr-difftext-cleanup>>\n<div style=\"padding-left:25px;font-size:0.9em\">\n\nThe cleanup attribute determines which optional post-processing should be applied to the diffs:\n\n* none: no cleanup is performed\n* semantic (default): rewrites the diffs for human readability\n* efficient: rewrites the diffs to minimise the number of operations for subsequent processing\n</div>"},"$:/plugins/kookma/commander/snr/macros/actions":{"title":"$:/plugins/kookma/commander/snr/macros/actions","created":"20190307164924193","modified":"20200325055328711","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define regexp-flags()\n{{$:/state/commander/snr/gm}}{{$:/state/commander/snr/case-sensitive}}{{$:/state/commander/snr/unicode}}\n\\end\n\n\\define snr-ui-show-diffs()\n<form class=\"cmd-snr-form\" style=\"width:100%;\">\n <fieldset>\n <legend style=\"color:#FF0000;\">Differences</legend>\nTiddler: <$link to={{$:/state/commander/snr/select-tiddler}}><$text text={{$:/state/commander/snr/select-tiddler}}/></$link>\n\n<$wikify name=flags text=<<regexp-flags>> >\n\n<$macrocall $name=\"replace-text-diff\" \n tiddler={{$:/state/commander/snr/select-tiddler}} \n field={{$:/state/commander/snr/select-tiddler/field}} \n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n flags=<<flags>> \n wholeWords={{$:/state/commander/snr/whole-words}}\n/>\n\n</$wikify>\n</fieldset>\n</form>\n\\end\n\n\\define snr-check-diffs(tiddler:\"\", field:\"\")\n\\whitespace trim\n<$wikify name=flags text=<<regexp-flags>> >\n<$wikify name=\"result\" text=\"\"\"\n<$macrocall $name=\"replace-text\" \n tiddler=<<__tiddler__>>\n field=<<__field__>>\n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n flags=<<flags>> \n wholeWords={{$:/state/commander/snr/whole-words}}\n/>\"\"\">\n<$reveal type=\"match\" text={{{ [<__tiddler__>get<__field__>] }}} default=<<result>> >\nsame\n</$reveal>\n<$reveal type=\"nomatch\" text={{{ [<__tiddler__>get<__field__>] }}} default=<<result>> >\ndifferent\n</$reveal>\n</$wikify>\n</$wikify>\n\\end\n\n\\define search-replace-in-tiddler-field(tiddler:\"\",field:\"\",replace:\"\",replaceWith:\"\")\n<$wikify name=ss text=<<snr-check-diffs \"\"\"$tiddler$\"\"\" \"\"\"$field$\"\"\">> >\n<$list filter=\"[<ss>] -same\" variable=ignore>\n<$list filter=\"[<__tiddler__>has[title]]\" variable=\"ignore\">\n<$wikify name=flags text=<<regexp-flags>> >\n<$macrocall $name=\"replace-text-button\" \n tiddler=<<__tiddler__>> \n field=<<__field__>>\n replace=<<__replace__>>\n replaceWith=<<__replaceWith__>> \n flags=<<flags>> \n wholeWords={{$:/state/commander/snr/whole-words}}\n/>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"`$field$` field has been changed\"\"\" tidItem=<<__tiddler__>> />\n<$macrocall $name=\"clear-select-tiddler-if-field-is-title\" tiddler=<<__tiddler__>> field=<<__field__>> />\n</$wikify>\n</$list>\n</$list>\n</$wikify>\n\\end\n\n\\define clear-select-tiddler-if-field-is-title(tiddler, field)\n<$list filter=\"[<__field__>] +[search[title]]\" variable=\"ignore\">\n<$action-setfield $tiddler=\"$:/state/commander/snr/select-tiddler\" text=\"\"/>\n<$action-setfield $tiddler=\"$:/temp/commander/selected-titles\" $index=<<__tiddler__>> />\n</$list>\n\\end\n\n\\define search-replace-in-field-bulk()\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"SNR operation\">>\n<$list filter=\"[subfilter<searchfilter>!is[missing]]\" >\n <$macrocall \n $name=\"search-replace-in-tiddler-field\"\n tiddler=<<currentTiddler>> \n field={{$:/state/commander/snr/select-tiddler/field}} \n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n />\n</$list>\n</$list>\n\\end\n\n\\define search-replace-in-field-single-tiddler()\n<<create-log-tiddler \"SNR operation\">>\n <$macrocall \n $name=\"search-replace-in-tiddler-field\"\n tiddler={{$:/state/commander/snr/select-tiddler}}\n field={{$:/state/commander/snr/select-tiddler/field}} \n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n />\n\\end\n\n\\define snr-actions()\n<$button actions=<<search-replace-in-field-single-tiddler>> tooltip=\"search and replace in a single tiddler\" class=\"cmd-btn\">\nReplace?\n</$button> \n<!-- replace in bulk tiddler with confirmation -->\n<$macrocall $name=\"compConfirmAction\"\ncountFilter=<<searchfilter>>\nactionMacro=\"search-replace-in-field-bulk\"\nstateTiddler=\"$:/state/commander/SelectiveReplaceAllDropdown\"\nconfirmMessage=\"Are you sure you wish to replace text in\" \nbtnLabel=\"Replace all?\"/>\n\\end"},"$:/plugins/kookma/commander/snr/macros/inputs":{"title":"$:/plugins/kookma/commander/snr/macros/inputs","created":"20190306203626597","modified":"20200325055328720","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define snr-ui-inputs()\n<form class=\"cmd-snr-form\">\n <fieldset>\n <legend>Search and Replace</legend>\n\n<div class=\"item\">\n<label>Tiddler title</label>\n<$select tiddler=\"$:/state/commander/snr/select-tiddler\" default=\"\" class=\"cmd-snr-textbox\">\n<option value=\"\">None</option>\n<$list filter=\"[subfilter<searchfilter>]\" >\n<option value=<<currentTiddler>>><$text text=<<currentTiddler>>/></option>\n</$list>\n</$select>\n</div>\n\n<div class=\"item\">\n<label>Field name</label>\n<$select tiddler=\"$:/state/commander/snr/select-tiddler/field\" default=\"text\">\n<$list filter=\"[subfilter<searchfilter>fields[]]\">\n<option value=<<currentTiddler>>><$text text=<<currentTiddler>>/></option>\n</$list>\n</$select>\n</div>\n\n<div class=\"item\">\n<label>Search text</label>\n<$edit-text \n tiddler=\"$:/state/commander/snr/replace-text\" \n tag=\"input\" \n default=\"\" \n placeholder=\" text to replace\"\n class=\"cmd-snr-textbox\"/>\n</div>\n\n<div class=\"item\">\n<label>Replace with </label>\n<$edit-text \n tiddler=\"$:/state/commander/snr/replace-text-with\" \n tag=\"input\" \n default=\"\" \n placeholder=\" new text\"\n class=\"cmd-snr-textbox\"/>\n</div>\n<!-- Use relink to update titles -->\n<$list filter=\"[[$:/state/commander/snr/select-tiddler/field]get[text]match[title]]\" variable=ignore>\n<div class=\"item-relink\">{{$:/plugins/kookma/commander/config/relink}}</div>\n</$list>\n</fieldset>\n</form>\n\n\n\\end"},"$:/plugins/kookma/commander/snr/macros/regexp-flags":{"title":"$:/plugins/kookma/commander/snr/macros/regexp-flags","created":"20190306182052441","modified":"20200325055328730","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define snr-regexp-flags()\n\n<form class=\"cmd-snr-form\">\n<fieldset>\n<legend>Search flags</legend>\n\n<$checkbox \n tiddler=\"$:/state/commander/snr/case-sensitive\" \n field=\"text\" \n checked=\"i\" \n unchecked=\"\"\n/> ignore case<br>\n\n<$checkbox \n tiddler=\"$:/state/commander/snr/whole-words\" \n field=\"text\" \n checked=\"words\" \n unchecked=\"characters\"\n/> whole words<br>\n\n<$checkbox \n tiddler=\"$:/state/commander/snr/unicode\" \n field=\"text\" \n checked=\"u\" \n unchecked=\"\"\n/> unicode<br>\n\n<br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"\"> first match \n</$radio><br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"g\"> global match\n</$radio><br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"m\"> multiline mode\n</$radio><br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"mg\"> global multiline mode\n</$radio>\n\n</fieldset>\n</form>\n\\end"},"$:/plugins/kookma/commander/snr/macros/regexpsub.js":{"title":"$:/plugins/kookma/commander/snr/macros/regexpsub.js","text":"/*\\\ncreated: 20190214160253135\ntype: application/javascript\ntitle: $:/plugins/kookma/commander/snr/macros/regexpsub.js\nmodified: 20200307092210323\nmodule-type: macro\n\nMake regular expression substitutions\nDeveloped by Mark S\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n\"use strict\";\n\nexports.name = \"regexpsub\";\n\nexports.params = [\n\t{name: \"searchValue\"},\n\t{name: \"replaceValue\"},\n\t{name: \"sourceText\"},\n\t{name: \"flags\"},\n {name: \"wholeWords\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(searchValue, replaceValue, sourceText, flags = \"gi\", wholeWords = \"characters\") {\n \n try {\n \n\tvar searchText;\n if(wholeWords.toLowerCase() === 'words'){\n searchText = \"\\\\b\" + searchValue + \"\\\\b\";\n } else{\n searchText = searchValue;\n }\n\t\t\n searchText = new RegExp(searchText, flags);\n return sourceText.replace(searchText,replaceValue);\n\n } \n catch(err) { \n return \"ERROR IN REG EXPRESSION. YOU MAY NEED TO ESCAPE VALUES\"; \n }\n \n };\n\n})();\n","created":"20190214160253135","type":"application/javascript","modified":"20200324070652819","module-type":"macro"},"$:/plugins/kookma/commander/snr/macros/replace-text":{"title":"$:/plugins/kookma/commander/snr/macros/replace-text","created":"20190227134610136","modified":"20200325055328737","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define nothing-to-replace(tiddler, field:\"text\") \n<$diff-text source={{{ [<__tiddler__>get<__field__>] }}} dest={{{ [<__tiddler__>get<__field__>] }}} />\n\\end\n\n\\define replace-text(tiddler:\"\",field:\"text\",replace:\"\",replaceWith:\"\",flags:\"\", wholeWords:\"\")\n\\whitespace trim\n<$wikify name=\"source\" text=\"\"\"<$view tiddler=<<__tiddler__>> field=<<__field__>> mode=\"block\" format=\"text\"/>\"\"\">\n<$wikify name=\"result\" \n text=\"\"\"<$macrocall $name=\"regexpsub\" $type=\"text/plain\" \n sourceText=<<source>> \n searchValue=<<__replace__>> \n replaceValue=<<__replaceWith__>> \n flags=<<__flags__>> \n wholeWords=<<__wholeWords__>> />\"\"\" \n >\n<$text text=<<result>>/>\n</$wikify>\n</$wikify>\n\\end\n\n\\define replace-text-diff(tiddler:\"\", field:\"text\", replace, replaceWith, flags:\"\", wholeWords:\"\")\n<$list filter=\"[<__tiddler__>get<__field__>minlength[1]]\" variable=null emptyMessage=\"No tiddler is selected, or tiddler is empty.\">\n<$list filter=\"[<__replace__>minlength[1]]\" variable=null emptyMessage=<<nothing-to-replace \"\"\"$tiddler$\"\"\" \"\"\"$field$\"\"\">> >\n\n<$wikify name=\"result\" \n text=\"\"\"<$macrocall $name=\"replace-text\" \n tiddler=<<__tiddler__>> field=<<__field__>> \n replace=<<__replace__>> \n replaceWith=<<__replaceWith__>> \n flags=<<__flags__>>\n wholeWords=<<__wholeWords__>> />\"\"\"\n >\n<$diff-text source={{{ [<__tiddler__>get<__field__>] }}} dest=<<result>> cleanup={{$:/state/commander/snr/setting/cleanup}}/>\n</$wikify>\n\n</$list>\n</$list>\n\\end\n\n\\define replace-text-button(tiddler:\"\", field:\"text\", replace:\"\", replaceWith:\"\", flags:\"\", wholeWords:\"\")\n\\whitespace trim\n<$list filter=\"[<__tiddler__>get<__field__>minlength[1]]\" variable=null>\n<$list filter=\"[<__replace__>minlength[1]]\" variable=null>\n<$wikify name=\"result\" \n text=\"\"\"<$macrocall $name=\"replace-text\" \n tiddler=<<__tiddler__>> \n field=<<__field__>> \n replace=<<__replace__>> \n replaceWith=<<__replaceWith__>> \n flags=<<__flags__>>\n wholeWords=<<__wholeWords__>> />\"\"\"\n >\n<$reveal type=\"nomatch\" default=\"title\" text=<<__field__>> >\n <$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value=<<result>>/>\n</$reveal>\n<$reveal type=\"match\" default=\"title\" text=<<__field__>> >\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<__tiddler__>> to=<<result>> />\n</$reveal>\n</$wikify>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/snr/ui":{"title":"$:/plugins/kookma/commander/snr/ui","caption":"Snr","created":"20190220210055713","icon":"$:/core/images/gitter","list-after":"$:/plugins/kookma/commander/inspect/ui","modified":"20200324070652833","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"Search and replcae in tiddler fields!\n\n<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/SnrOps]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/snr/uicomp/replace-text\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n\n"},"$:/plugins/kookma/commander/snr/uicomp/replace-text":{"title":"$:/plugins/kookma/commander/snr/uicomp/replace-text","caption":"Search and replace","created":"20190220211138573","icon":"$:/core/images/gitter","modified":"20200325055328748","tags":"$:/tags/Commander/SnrOps","type":"text/vnd.tiddlywiki","text":"<div class=\"cmd-snr-row\">\n<div class=\"cmd-snr-double-column\">\n<<snr-ui-inputs>>\n</div>\n<div class=\"cmd-snr-column\">\n<<snr-regexp-flags>> \n</div>\n</div>\n<<snr-ui-show-diffs>>\n<<snr-actions>>"},"$:/plugins/kookma/commander/stylesheet/alert":{"title":"$:/plugins/kookma/commander/stylesheet/alert","text":".commander-alert {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px dotted gray;\n border-radius: 0.25rem;\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n\t\n}","created":"20190725161822490","modified":"20200325092557277","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/buttons":{"title":"$:/plugins/kookma/commander/stylesheet/buttons","text":"/**\n.cmd-btn{\n font-size:0.85em;\n font-size:300;\n color: #666666;\n background-color: #d8d8d8;\n padding: 3px 8px 3px 8px;\n border: 1px solid #a1a1a1;\n}\n**/\n\n.cmd-btn-wd{\n\twidth:20ch;\n}","created":"20190317080436103","modified":"20200324070652859","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/compInspect/table":{"title":"$:/plugins/kookma/commander/stylesheet/compInspect/table","text":"/*compInspect table*/\n.cmd-ci-table\n{border-collapse: collapse;}\n\n.cmd-ci-table .leftcol{\nwidth:20%;\nvertical-align: top;\ntext-align: right;\nbackground-color:#f0f0f0;\n}\n.cmd-ci-table .rightcol{\nwidth:650px;\n}\n","created":"20190308134702363","modified":"20200324070652871","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/new":{"title":"$:/plugins/kookma/commander/stylesheet/new","text":".kk-commander-log-note{\n\tfont-style:italic; font-size:small;\n}\n.kk-commander-log-item {\n\tcolor:green;\n}\n\n/* This is missing and I added it */\n.cmd-txt-area{\n\tmin-width:25ch;\n}\n\n.cmd-txt-area2{\n\tmin-width:50ch;\n}\n\n/* Correct this later*/\n.kk-cmd-label{\n\tdisplay:inline-block;\n\twidth:85px;\n}\n\n.kk-cmd-label2{\n\tdisplay:inline-block;\n\twidth:120px;\n}","created":"20200105140038538","modified":"20200324070652878","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/select-width":{"title":"$:/plugins/kookma/commander/stylesheet/select-width","text":".cmd-sl{\n width:8ch;\n}\n\n.cmd-select-wd{\n min-width:25ch;\n}\n","created":"20190218214027079","modified":"20200324070652887","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/snr/flexbox":{"title":"$:/plugins/kookma/commander/stylesheet/snr/flexbox","text":".cmd-snr-row {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n}\n.cmd-snr-column {\n display: flex;\n flex-direction: column;\n flex-basis: 100%;\n flex: 1\n}\n\n.cmd-snr-double-column {\n display: flex;\n flex-direction: column;\n flex-basis: 100%;\n flex: 2\n}\n\n@media screen and (min-width: 800px) {\n .cmd-snr-column {\n flex: 1\n }\n\n .cmd-snr-double-column {\n flex: 2\n }\n}","created":"20190306203517655","modified":"20200324070652893","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/snr/form":{"title":"$:/plugins/kookma/commander/stylesheet/snr/form","text":".cmd-snr-form{\n width:100%;\n}\n\n.cmd-snr-textbox {\n width:100%;\n box-sizing: border-box;\n max-width:40ch;\n }\n\n.cmd-snr-form select, .cmd-snr-form input{\n margin: 0.2rem;\n}\n.cmd-snr-form legend{\n background: #f5f5f5;\n padding: 3px 6px;\n}\n\n.cmd-snr-form { padding:20px; }\n.cmd-snr-form .item { padding: 2px; margin:2px; }\n.cmd-snr-form .item label { display:inline-block; width:100px; margin-left:5px; }\n.cmd-snr-form .item input { display:inline-block; }\n.cmd-snr-form .item select { display:inline-block; }\n\n/* only for relink checkbox on renaming tiddler */\n.cmd-snr-form .item-relink { padding: 2px; margin:2px; }\n\n ","created":"20190306191714819","modified":"20200324070652907","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/tiddler-list":{"title":"$:/plugins/kookma/commander/stylesheet/tiddler-list","text":".kk-commander-tiddler-list {\n font-size:small; \n\tborder-left:0.5px \n\tdotted grey;\n\tpadding-left:10px;\n\toverflow-y:auto;\n\tmax-width:100%;\n\tmax-height:$(height)$;\n}\n\n.kk-commander-columns1 { display:block; column-count:1; column-gap:1em; }\n.kk-commander-columns2 { display:block; column-count:2; column-gap:1em; }\n.kk-commander-columns3 { display:block; column-count:3; column-gap:1em; }\n.kk-commander-columns4 { display:block; column-count:4; column-gap:1em; }\n.kk-commander-columns5 { display:block; column-count:5; column-gap:1em; }","created":"20200103165931672","modified":"20200324070652922","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/tag/macros/add-remove-replace":{"title":"$:/plugins/kookma/commander/tag/macros/add-remove-replace","created":"20190212063435548","modified":"20200325055328754","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define add-new-tag-bulk(newTag:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__newTag__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"add-new-tag-bulk\">>\n<$list filter=\"[subfilter<searchfilter>!tag<__newTag__>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__newTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"new tag `$newTag$` added\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define remove-old-tag-bulk(oldTag:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore>\n<$list filter=\"[<__oldTag__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"remove-old-tag-bulk\">>\n<$list filter=\"[subfilter<searchfilter>tag<__oldTag__>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<__oldTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"old tag `$oldTag$` removed\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\n\\define replace-tag-bulk(oldTag:\"\", newTag:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore>\n<$list filter=\"[<__oldTag__>!is[blank]]\" variable=null>\n<$list filter=\"[<__newTag__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"replace-tag-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"[<currentTiddler>tag<__oldTag__>]\" variable=ignore\n emptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not tag `$oldTag$`. Operation ignored.//\" tidItem=<<currentTiddler>> /> \"\"\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__newTag__>> />\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<__oldTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"tag `$oldTag$` replaced with `$newTag$`\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/tag/ui":{"title":"$:/plugins/kookma/commander/tag/ui","caption":"Tag","created":"20190212051852003","list-after":"$:/plugins/kookma/commander/title/ui","modified":"20200325055328765","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/TagOps]!has[draft.of]]\" default:\"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags\" \nclass:\"tc-vertical cmd-tab-wd\">>\n\n"},"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags":{"title":"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags","caption":"Add remove tags","created":"20190212063924640","modified":"20200325055328771","tags":"$:/tags/Commander/TagOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">New tag</label><$edit-text\ntiddler=\"$:/temp/commander/tag-add-remove/new\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" new tag\"/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Add new tag\n<$macrocall $name=\"add-new-tag-bulk\" newTag={{$:/temp/commander/tag-add-remove/new}} />\n</$button>\n\n<label class=\"kk-cmd-label\">Old tag</label><$select class=\"cmd-select-wd\" tiddler=\"$:/temp/commander/tag-add-remove/old\" default=\"\" >\n<$list filter=\"[subfilter<searchfilter>!is[missing]tags[]sort[]]-[<workingTag>]\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove old tag\n<$macrocall $name=\"remove-old-tag-bulk\" oldTag={{$:/temp/commander/tag-add-remove/old}} />\n</$button>\n\n"},"$:/plugins/kookma/commander/tag/uicomp/replace-tags":{"title":"$:/plugins/kookma/commander/tag/uicomp/replace-tags","caption":"Replace tags","created":"20190212080523588","list-after":"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags","modified":"20200325055328782","tags":"$:/tags/Commander/TagOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Old tag</label><$select class=\"cmd-select-wd\" tiddler=\"$:/temp/commander/replace-tags/old\" default=\"\">\n<$list filter=\"[subfilter<searchfilter>!is[missing]tags[]sort[]]-[<workingTag>]\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<label class=\"kk-cmd-label\">New tag</label><$edit-text\ntiddler=\"$:/temp/commander/replace-tags/new\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" new tag\"\n/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Replace tag\n<$macrocall $name=\"replace-tag-bulk\" \noldTag={{$:/temp/commander/replace-tags/old}} \nnewTag={{$:/temp/commander/replace-tags/new}} />\n</$button>\n\n"},"$:/plugins/kookma/commander/template/base":{"title":"$:/plugins/kookma/commander/template/base","caption":"base","created":"20190213200622605","modified":"20200324070652960","tags":"$:/tags/Commander/Template","type":"text/vnd.tiddlywiki","text":"This is a simple one!"},"$:/plugins/kookma/commander/template/doc":{"title":"$:/plugins/kookma/commander/template/doc","caption":"documentation","created":"20190213200338381","modified":"20200324070652969","tags":"$:/tags/Commander/Template","type":"text/vnd.tiddlywiki","version":"beta","text":"!! Introduction\n<<<\nshort introduction\n<<<\n\n!! Content and parameters\n<<<\nThe content, attributes and parameters\n\n|!Parameter |!Description |\n|par1 |description |\n|par2 |description |\n<<<\n\n!! Example i\n<<<\nexample here\n<<<\n\n!! Example ii\n<<<\nanother example here\n<<<\n\n!! References\n<<<\n# one\n# Two\n<<<"},"$:/plugins/kookma/commander/template/simple":{"title":"$:/plugins/kookma/commander/template/simple","caption":"simple","created":"20190213200258460","modified":"20200324070652975","tags":"$:/tags/Commander/Template","type":"text/vnd.tiddlywiki","version":"beta","text":"! Heading one\nThis is sunsection i\n\n!! Heading two\nThis is subsection ii.\n\n* one\n* two\n* three\n\n!!! Heading three\nThis is subsction iii\n\n```\nA sample code\n```\n\n!! Sample table\n|Table 1. This is caption|c\n|Heading one|Heading Two|Heading Three|h\n|r1|100|200|\n|r2|02|03|\n|r3|-1|-2|\n"},"$:/plugins/kookma/commander/tiddler/macros/create":{"title":"$:/plugins/kookma/commander/tiddler/macros/create","created":"20190212125920722","modified":"20200325055328790","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-create(msg:\"Tiddler existed, operation ignored\")\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=\"$(newTitle)$\" $value=\"$msg$\" />\n\\end\n\n\\define bulk-tiddler-creator(baseTitle, baseTags, datafieldsTid, numberTiddler:\"1\")\n<$list filter=\"[<__baseTitle__>!is[blank]]\" variable=ignore>\n<<create-log-tiddler \"bulk-tiddler-creator\">>\n<$list filter=\"[range[9]addprefix[00]] [range[10,99]addprefix[0]] [range[100,500]] +[limit<__numberTiddler__>]\" variable=\"L1\">\n<$list filter=\"[<__baseTitle__>addsuffix<L1>]\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\" emptyMessage=<<log-create>> >\n<$action-createtiddler $basetitle=<<newTitle>> tags=<<__baseTags__>> /> \n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<<add-bulk-fields>>\n</$vars>\n<<log-create \"Tiddler created\">>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define oneTid-with-template()\n<$tiddler tiddler=<<newTitle>> >\n <$action-setfield $tiddler=<<myTemplate>> title=<<currentTiddler>> /> \n <$fieldmangler>\n <$list filter=\"[enlist<myTags>]\" variable=newTag>\n <$action-sendmessage $message=\"tm-add-tag\" $param=<<newTag>> />\n </$list><!--next remove extra tag used by template from new created tiddler-->\n <$action-sendmessage $message=\"tm-remove-tag\" $param=\"$:/tags/Commander/Template\" />\n</$fieldmangler>\n</$tiddler>\n\\end\n\n\n\\define bulk-tiddler-with-template-creator(baseTitle, baseTags, datafieldsTid, numberTiddler:\"1\", template:\"\")\n<$list filter=\"[<__baseTitle__>!is[blank]]\" variable=ignore>\n<<create-log-tiddler \"bulk-tiddler-creator with template\">>\n<$vars datafieldsTid=<<__datafieldsTid__>>\n myTags=<<__baseTags__>> \n myTemplate=<<__template__>> >\n<$list filter=\"[range[9]addprefix[00]] [range[10,99]addprefix[0]] [range[100,500]] +[limit<__numberTiddler__>]\" variable=\"L1\">\n<$list filter=\"[<__baseTitle__>addsuffix<L1>]\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>!has[title]]\" variable=\"ignore\" emptyMessage=<<log-create>> >\n <<oneTid-with-template>>\n <<add-bulk-fields>>\n <<log-create \"Tiddler created\">>\n</$list>\n</$list>\n</$list>\n</$vars>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/tiddler/macros/delete":{"title":"$:/plugins/kookma/commander/tiddler/macros/delete","created":"20190215195221625","modified":"20200325055328801","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-delete-selectively(item, msg:\"Tiddler deleted\")\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=<<__item__>> $value=\"$msg$\" />\n\\end\n\n\\define delete-tiddlers-selective-bulk()\n<$list filter=\"[subfilter<searchfilter>limit[1]]\" variable=\"ignore\"><!-- at least searchfilter shall return one tiddler-->\n<<create-log-tiddler \"delete-tiddler-selectively\">>\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"Item\">\n<$action-deletetiddler $tiddler=<<Item>> />\n<$macrocall $name=\"log-delete-selectively\" item=<<Item>> />\n</$list>\n</$list>\n\\end"},"$:/plugins/kookma/commander/tiddler/macros/export":{"title":"$:/plugins/kookma/commander/tiddler/macros/export","created":"20200113101003510","modified":"20200325055328808","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define add-export-tag()\n<$list filter=<<searchfilter>> >\n<$fieldmangler>\n<$list filter=\"[enlist{$(exportTagTid)$}]~[[exported]]\" variable=\"exportTag\" ><!-- add all export tags-->\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<exportTag>> />\n</$list>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<workingTag>> />\n</$fieldmangler>\n</$list>\n\\end\n\n\\define remove-export-tag()\n<$list filter=<<searchfilter>> >\n<$fieldmangler>\n<$list filter=\"[<selectiveOpsTid>get[text]match[yes]]\" variable=ignore>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<workingTag>> />\n</$list>\n<$list filter=\"[enlist{$(exportTagTid)$}]~[[exported]]\" variable=\"exportTag\" ><!-- remove all export tags-->\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<exportTag>> />\n</$list>\n</$fieldmangler>\n</$list>\n\\end\n\n\\define log-export-selectively(msg:\"Tiddler exported\")\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"item\">\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=<<item>> $value=\"$msg$\" />\n</$list>\n\\end\n\n\n\\define commander-exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<<create-log-tiddler \"exportButton: bulk tiddlers exported\">>\n<$macrocall $name=\"log-export-selectively\"/><!--log any tiddler exported-->\n<<add-export-tag>><!-- by Mohammad-->\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n<<remove-export-tag>><!-- by Mohammad-->\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end"},"$:/plugins/kookma/commander/tiddler/ui":{"title":"$:/plugins/kookma/commander/tiddler/ui","caption":"Tiddler","created":"20190212125319261","list-before":"$:/plugins/kookma/commander/title/ui","modified":"20200325055328821","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/TiddlerOps]!has[draft.of]]\"\ndefault:\"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n"},"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers":{"title":"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers","caption":"Create tiddlers","created":"20190213193004029","modified":"20200325055328832","tags":"$:/tags/Commander/TiddlerOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Base title</label>\n<$edit-text \n tiddler=\"$:/temp/commander/tiddler-base-title\" \n tag=\"input\" default=\"\"\n placeholder=\" base title\" \n class=\"cmd-txt-area\"/><br>\n\n<label class=\"kk-cmd-label\">Tags</label>\n<$edit-text \n tiddler=\"$:/temp/commander/tiddler-base-tags\" \n tag=\"input\" default=\"\"\n placeholder=\" tags\" \n class=\"cmd-txt-area\"\n/> \n\n<!-- add interface for adding fields -->\n<$macrocall $name=\"add-more-fields-selective-ui\"\n datafieldsTid=\"$:/temp/commander/tiddler/datafields/createTiddler\"\n stateTiddler=\"$:/state/commander/tiddler-addfields-status\" />\n\n\n<$checkbox \n tiddler=\"$:/state/commander/tiddler-template-status\" \n field=\"text\" \n checked=\"use-template\" unchecked=\"no-template\"\n default=\"no-template\"> \n Use template?\n</$checkbox>\n\n<$reveal type=\"match\" state=\"$:/state/commander/tiddler-template-status\" text=\"use-template\" default=\"no-template\" >\nTemplate\n<$select tiddler=\"$:/temp/commander/template-newtiddler\" \n default=\"$:/plugins/kookma/commander/template/base\">\n<$list filter='[all[shadows+tiddlers]tag[$:/tags/Commander/Template]]'>\n<option value=<<currentTiddler>> >\n<$view field=\"caption\"><$view field=\"title\"/></$view>\n</option>\n</$list>\n</$select>\n<$button class=\"tc-btn-invisible\"> {{$:/core/images/edit-button}}\n <$action-sendmessage $message=\"tm-edit-tiddler\" \n $param={{{ [[$:/temp/commander/template-newtiddler]get[text]]~[[$:/plugins/kookma/commander/template/base]] }}} />\n</$button>\n\n</$reveal>\n\nNumber of tiddlers \n<$select tiddler=\"$:/temp/commander/tiddler-base-number\" default='1'>\n<$list filter='[range[1,19, 1]] [range[20,50, 5]] [range[60,100,10]] [range[200,500,100]]'>\n<option value=<<currentTiddler>>><$view field='title'/></option>\n</$list>\n</$select>\n\n<!-- call macros for create tiddlers -->\n<$reveal type=\"nomatch\" state=\"$:/state/commander/tiddler-template-status\" text=\"use-template\" default=\"no-template\">\n <$button class=\"cmd-btn cmd-btn-wd\"> Create tiddlers\n <$macrocall $name=\"bulk-tiddler-creator\"\n baseTitle={{$:/temp/commander/tiddler-base-title}}\n baseTags={{$:/temp/commander/tiddler-base-tags}}\n datafieldsTid=\"$:/temp/commander/tiddler/datafields/createTiddler\"\n numberTiddler={{$:/temp/commander/tiddler-base-number}} />\n </$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/state/commander/tiddler-template-status\" text=\"use-template\" default=\"no-template\">\n <$button class=\"cmd-btn cmd-btn-wd\"> Create tiddlers\n <$macrocall $name=\"bulk-tiddler-with-template-creator\"\n baseTitle={{$:/temp/commander/tiddler-base-title}}\n baseTags={{$:/temp/commander/tiddler-base-tags}}\n datafieldsTid=\"$:/temp/commander/tiddler/datafields/createTiddler\"\n numberTiddler={{$:/temp/commander/tiddler-base-number}}\n template={{$:/temp/commander/template-newtiddler}}/>\n </$button>\n</$reveal>\n"},"$:/plugins/kookma/commander/tiddler/uicomp/delete-tiddlers":{"title":"$:/plugins/kookma/commander/tiddler/uicomp/delete-tiddlers","caption":"Delete tiddlers","created":"20190301144408502","list-after":"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers","modified":"20200325055328839","tags":"$:/tags/Commander/TiddlerOps","type":"text/vnd.tiddlywiki","text":"<$set name=numTids value={{{[subfilter<searchfilter>!is[missing]count[]] }}}>\n<$reveal type=\"match\" text=\"0\" default=<<numTids>> >\nNo tiddlers is selected for deleteion!\n</$reveal>\n<$reveal type=\"gt\" text=\"0\" default=<<numTids>> >\n\nNumber of tiddlers selected for deletion: <<numTids>><br>\nNote that, the delete operation cannot be undone!!\n<br>\n\n<$macrocall $name=\"compConfirmAction\"\ncountFilter=\"[subfilter<searchfilter>]\"\nactionMacro=\"delete-tiddlers-selective-bulk\"\nstateTiddler=\"$:/state/commander/SelectiveDeleteDropdown\"\n/>\n\n</$reveal>\n</$set>\n\n\n"},"$:/plugins/kookma/commander/tiddler/uicomp/export-tiddlers":{"title":"$:/plugins/kookma/commander/tiddler/uicomp/export-tiddlers","caption":"Export tiddlers","created":"20200112093148417","list-after":"$:/plugins/kookma/commander/tiddler/uicomp/delete-tiddlers","modified":"20200325055328851","tags":"$:/tags/Commander/TiddlerOps","type":"text/vnd.tiddlywiki","text":"\\define export-tiddler-ui(baseFilename)\n<$set name=\"exportList\" filter=<<searchfilter>> ><!-- without this $SetWidget the exportButton does not work -->\n<$vars tv-config-toolbar-text=\"yes\" tv-config-toolbar-class=\"tc-button tt-button\">\n<$macrocall $name=\"commander-exportButton\" exportFilter=<<exportList>> lingoBase=\"$:/language/Buttons/ExportTiddlers/\" baseFilename=\"\"\"$baseFilename$\"\"\"/>\n</$vars>\n</$set>\n\\end\n\n\\define exportFileName-and-Tags-ui() \n<label class=\"kk-cmd-label2\">Export filename</label><$edit-text tiddler=\"$:/temp/commander/exportFilename\" tag=input default=\"tiddlers\" placeholder=\"tiddlers\" class=\"cmd-txt-area\"/>\n<br>\n\n<label class=\"kk-cmd-label2\">Export tags</label><$edit-text tiddler=\"$:/temp/commander/exportTag\" tag=input default=\"exported\" placeholder=\"exported\" class=\"cmd-txt-area\"/><br>\n\\end\n\n<$set name=numTids value={{{[subfilter<searchfilter>!is[missing]count[]] }}}>\n<$reveal type=\"match\" text=\"0\" default=<<numTids>> >\nNo tiddlers is selected for export!\n</$reveal>\n\n<$reveal type=\"gt\" text=\"0\" default=<<numTids>> >\n\nNumber of tiddlers selected for export: <<numTids>><br>\n\n<<exportFileName-and-Tags-ui>>\n<$macrocall $name=\"export-tiddler-ui\" baseFilename={{{[[$:/temp/commander/exportFilename]get[text]]~[[tiddlers]]}}} />\n</$reveal>\n</$set>\n\n"},"$:/plugins/kookma/commander/title/macros/prefix":{"title":"$:/plugins/kookma/commander/title/macros/prefix","created":"20190212122742891","modified":"20200325055328857","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-changePrefix(message, oldTitle, newTitle)\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"$message$. New title [[$newTitle$]]\"\"\" tidItem=<<__oldTitle__>> />\n\\end\n\n\\define addPrefix-to-tiltle-bulk(prefix:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__prefix__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"addPrefix-to-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>addprefix[$prefix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changePrefix message=\"title prefix: `$prefix$` added\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define removePrefix-from-tiltle-bulk(prefix:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__prefix__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"removePrefix-from-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>removeprefix[$prefix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changePrefix message=\"title prefix: `$prefix$` removed\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list> \n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/macros/remove-cahrs-end":{"title":"$:/plugins/kookma/commander/title/macros/remove-cahrs-end","created":"20190218190318901","modified":"20200325055328869","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define suffix-actions2()\n<$list filter=\"[subfilter<searchfilter>]+[prefix<sfx>]\" variable=\"item\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<item>> to=<<sfx>> />\n <$macrocall $name=\"log-add-single-operation\" msg=\"\"\"characters removed from end. New title [[$(sfx)$]]\"\"\" tidItem=<<item>> />\n</$list>\n\\end\n\n\n\\define makelink2() [[$(newTitle)$]]\n\n\\define generate-suffixes2(n:\"0\")\n<$list filter=\"[<__n__>] -0\" variable=null>\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"item\">\n<$list filter=\"\"\"[<item>split[]butlast[$n$]join[]trim[]]\"\"\" variable=\"newTitle\">\n<$text text=<<makelink2>>/>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define remove-chars-from-end-tiltle-bulk(num:\"0\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__num__>] -0\" variable=null>\n<<create-log-tiddler \"remove-chars-from-end-tiltle-bulk\">>\n<$vars n=<<__num__>> >\n<$wikify text=\"\"\"<<generate-suffixes2 n:\"$num$\">>\"\"\" name=\"outputs\">\n <$list filter=\"[subfilter<outputs>]\" variable=\"sfx\">\n<$list filter=\"[subfilter<searchfilter>]+[prefix<sfx>limit[2]count[]regexp[2]]\" emptyMessage=<<suffix-actions2>> variable=\"cnt\">\n</$list>\n</$list>\n</$wikify>\n</$vars>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/macros/remove-cahrs-start":{"title":"$:/plugins/kookma/commander/title/macros/remove-cahrs-start","created":"20190218214608685","modified":"20200325055328877","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define suffix-actions()\n<$list filter=\"[subfilter<searchfilter>]+[suffix<sfx>]\" variable=\"item\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<item>> to=<<sfx>> />\n <$macrocall $name=\"log-add-single-operation\" msg=\"\"\"characters removed from start. New title [[$(sfx)$]]\"\"\" tidItem=<<item>> />\n</$list>\n\\end\n\n\n\\define makelink() [[$(newTitle)$]]\n\n\\define generate-suffixes(n:\"0\")\n<$list filter=\"[<__n__>] -0\" variable=null>\n<$list filter=\"[subfilter<searchfilter>has[title]]\" variable=\"item\">\n<$list filter=\"\"\"[<item>split[]rest[$n$]join[]trim[]]\"\"\" variable=\"newTitle\">\n<$text text=<<makelink>>/>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define remove-chars-from-begining-tiltle-bulk(num:\"0\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__num__>] -0\" variable=null>\n<<create-log-tiddler \"remove-chars-from-begining-tiltle-bulk\">>\n<$vars n=<<__num__>> >\n<$wikify text=\"\"\"<<generate-suffixes n:\"$num$\">>\"\"\" name=\"outputs\">\n <$list filter=\"[subfilter<outputs>]\" variable=\"sfx\">\n <$list filter=\"[subfilter<searchfilter>]+[suffix<sfx>limit[2]count[]regexp[2]]\" \n emptyMessage=<<suffix-actions>> variable=\"cnt\">\n </$list>\n </$list>\n</$wikify>\n</$vars>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/macros/suffix":{"title":"$:/plugins/kookma/commander/title/macros/suffix","created":"20190212143639636","modified":"20200325055328886","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-changeSuffix(message, oldTitle, newTitle)\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"$message$. New title [[$newTitle$]]\"\"\" tidItem=<<__oldTitle__>> />\n\\end\n\n\\define addSuffix-to-tiltle-bulk(suffix:\"\")\n<$list filter=\"[<__suffix__>!is[blank]]\" variable=null>\n<$list filter=\"[subfilter<searchfilter>limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"addSufffix-to-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>addsuffix[$suffix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changeSuffix message=\"title suffix: `$suffix$` added\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define removeSuffix-from-tiltle-bulk(suffix:\"\")\n<$list filter=\"[<__suffix__>!is[blank]]\" variable=null>\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"removeSuffix-from-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>removesuffix[$suffix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changeSuffix message=\"title suffix: `$suffix$` removed\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/ui":{"title":"$:/plugins/kookma/commander/title/ui","caption":"Title","created":"20190212051704536","list-after":"$:/plugins/kookma/commander/tiddler/ui","modified":"20200324070653068","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/TitleOps]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n\n<!-- relink checkbox for renaming title -->\n{{$:/plugins/kookma/commander/config/relink}}"},"$:/plugins/kookma/commander/title/uicomp/add-remove-chars":{"title":"$:/plugins/kookma/commander/title/uicomp/add-remove-chars","caption":"Remove chars","created":"20190217092719245","list-after":"$:/plugins/kookma/commander/title/uicomp/add-remove-suffix","modified":"20200325055328894","tags":"$:/tags/Commander/TitleOps","type":"text/vnd.tiddlywiki","text":"\\define rngcat() [range[0,$(minchars)$]] -0 \n\n<label style=\"width:30ch;\">Number of chars</label>\n<$select tiddler=\"$:/temp/commander/title-remove-chars\" default=\"0\" class=\"cmd-sl\">\n<$list filter=\"[subfilter<searchfilter>length[]minall[]subtract[1]] -Infinity\" variable=\"minchars\">\n<$list filter=<<rngcat>> >\n<option value=<<currentTiddler>>><$view field='title'/></option>\n</$list>\n</$list>\n</$select><br>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> First n characters\n<$macrocall \n $name=\"remove-chars-from-begining-tiltle-bulk\" \n num={{$:/temp/commander/title-remove-chars}} />\n</$button>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Last n characters\n<$macrocall \n $name=\"remove-chars-from-end-tiltle-bulk\" \n num={{$:/temp/commander/title-remove-chars}} />\n</$button>\n\n\n"},"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix":{"title":"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix","caption":"Add remove prefix","created":"20190212141758567","modified":"20200325055328903","tags":"$:/tags/Commander/TitleOps","type":"text/vnd.tiddlywiki","text":"<$edit-text\ntiddler=\"$:/temp/commander/title-prefix\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" prefix\"\n/> <br>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Add prefix\n<$macrocall \n $name=\"addPrefix-to-tiltle-bulk\" \n prefix={{$:/temp/commander/title-prefix}} \n/>\n</$button>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove prefix\n<$macrocall \n $name=\"removePrefix-from-tiltle-bulk\" \n prefix={{$:/temp/commander/title-prefix}} \n/>\n</$button>\n\n"},"$:/plugins/kookma/commander/title/uicomp/add-remove-suffix":{"title":"$:/plugins/kookma/commander/title/uicomp/add-remove-suffix","caption":"Add remove suffix","created":"20190212143434676","list-after":"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix","modified":"20200325055328912","tags":"$:/tags/Commander/TitleOps","type":"text/vnd.tiddlywiki","text":"<$edit-text\ntiddler=\"$:/temp/commander/title-suffix\"\ntag=\"input\" default=\"\"\nclass=\"cmd-txt-area\" placeholder=\" suffix\" /><br>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Add suffix\n<$macrocall \n $name=\"addSuffix-to-tiltle-bulk\" \n suffix={{$:/temp/commander/title-suffix}} />\n</$button>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove suffix\n<$macrocall \n $name=\"removeSuffix-from-tiltle-bulk\" \n suffix={{$:/temp/commander/title-suffix}} \n/>\n</$button>\n\n"},"$:/plugins/kookma/commander/viewtemplate/import":{"title":"$:/plugins/kookma/commander/viewtemplate/import","created":"20210102093753666","modified":"20210102140349092","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[current]match[$:/Import]status[complete]]\" variable=\"null\">\n<$button actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/commander/search-box\" text=\"[[$:/Import]links[]]\"/><$action-navigate $to=\"$:/Commander\"/>\"\"\">\n{{$:/plugins/kookma/commander/images/commander.svg}} Batch edit\n</$button>\n</$list>"},"$:/Commander":{"title":"$:/Commander","created":"20190212051316149","icon":"$:/plugins/kookma/commander/images/file-alt","modified":"20200324074719052","type":"text/vnd.tiddlywiki","text":"\\import [all[shadows+tiddlers]tag[$:/tags/Commander/Macro]]\n{{$:/plugins/kookma/commander/search/ui}}\n<!-- Create the search filter based on searchbox and selective operation (if active) -->\n<$vars searchTerms={{{ [<searchboxTid>get[text]minlength{$:/plugins/kookma/commander/config/minlength}]~[[$:/errorCode:-23500]] }}} pattern=\"^\\[\"><!-- this part checks the combo search and selective ops-->\n<$set name=\"filtertext\" filter=\"[<searchTerms>regexp<pattern>]\" value=\"[subfilter<searchTerms>]\" emptyValue=\"[!is[system]search<searchTerms>]\">\n<$set name=\"searchfilter\" filter=\"[<selectiveOpsTid>get[text]match[yes]]\" \n\tvalue=\"[subfilter<filtertext>!prefix[$:/temp/commander]]+[tag<workingTag>]\" emptyValue=\"[subfilter<filtertext>!prefix[$:/temp/commander]]\" >\n<small style=\"margin-left:17ch;\"><i><$count filter=\"[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]\" /> matches </i></small>\n\n<!-- Display search results and let selective operation -->\n<<commander-slider title:\"$:/plugins/kookma/commander/search/selection\" default:\"open\">>\n\n<!-- Display operation UIs-->\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/Commander]!has[draft.of]]\" default:\"$:/plugins/kookma/commander/tiddler/ui\">>\n\n</$set>\n</$set>\n<$vars>\n\n---\n\n<<commander-slider title:\"$:/plugins/kookma/commander/log/ui\">>\n"},"$:/language/Buttons/Commander/Hint":{"title":"$:/language/Buttons/Commander/Hint","created":"20190725032106026","modified":"20200324080437905","tags":"","type":"text/vnd.tiddlywiki","text":"Tiddler Commander"},"$:/language/Buttons/Commander/Caption":{"title":"$:/language/Buttons/Commander/Caption","created":"20190725032131129","modified":"20200324080437929","tags":"","type":"text/vnd.tiddlywiki","text":"commander"}}}
{
"tiddlers": {
"$:/core/images/format-find": {
"text": "<svg class=\"tc-image-format-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 32 32\">\n <g fill-rule=\"evenodd\">\n<path d=\"M31.007999420166016,27.231000900268555l-7.579999923706055,-6.447000503540039c-0.7840003967285156,-0.7049999237060547,-1.621999740600586,-1.0289993286132812,-2.298999786376953,-0.9979991912841797c1.7889995574951172,-2.0960006713867188,2.8700008392333984,-4.815000534057617,2.8700008392333984,-7.78700065612793c0,-6.626999855041504,-5.3730010986328125,-12,-12,-12s-12,5.373000144958496,-12,12s5.373000144958496,12,12,12c2.9720001220703125,0,5.690999984741211,-1.0809993743896484,7.78700065612793,-2.8699989318847656c-0.031000137329101562,0.6770000457763672,0.292999267578125,1.5149993896484375,0.9979991912841797,2.298999786376953l6.447000503540039,7.579999923706055c1.1040000915527344,1.2259998321533203,2.9069995880126953,1.3299999237060547,4.006999969482422,0.22999954223632812s0.9969997406005859,-2.9029998779296875,-0.22999954223632812,-4.006999969482422ZM12,20c-4.418000221252441,0,-8,-3.582000732421875,-8,-8s3.5819997787475586,-8,8,-8s8,3.5819997787475586,8,8s-3.582000732421875,8,-8,8Z\" transform=\"matrix(0.853933, 0, 0, 0.853933, 2.31054, 1.83293)\"/>\n </g>\n</svg>",
"created": "20160309173315473",
"modified": "20160309175751302",
"tags": "$:/tags/Image",
"title": "$:/core/images/format-find"
},
"$:/core/modules/editor-operations/text/findreplace.js": {
"text": "/*\\\ntitle: $:/core/modules/editor-operations/text/findreplace.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"findreplace\"] = function(event,operation) {\nvar listtext=operation.text;\n//dummy lastfound to allow testing of find and replace\nvar lastfound=0;\nlastfound=this.wiki.getTextReference('$:/sk/lastfound');\n\nvar find = event.paramObject.find;\nvar replace = event.paramObject.replace;\n\nif (find == \"|\") {find = \"\\|\";}\nif (find == \"^t\") {find = String.fromCharCode(9);}\nif (find == \"^f\") {find = String.fromCharCode(10);}\nif (find == \"^r\") {find = String.fromCharCode(13);}\nif (replace == \"|\") {replace = \"\\|\";}\nif (replace == \"^t\") {replace = String.fromCharCode(9);}\nif (replace == \"^f\") {replace = String.fromCharCode(10);}\nif (replace == \"^r\") {replace = String.fromCharCode(13);}\n\nvar str=listtext;\n var lstr = str.length;\n if (lstr<lastfound) {lastfound = 0;\nthis.wiki.setText('$:/sk/lastfound','','',lastfound);\n}\n\nvar n = listtext.indexOf(find,lastfound);\nvar len=find.length;\n\nif (n<0) {\n lastfound=0;\nthis.wiki.setText('$:/sk/lastfound','','',lastfound);\noperation.replacement=str;\n\toperation.cutStart = 0;\n\toperation.cutEnd = str.length;\n}\nelse {\n\n\toperation.replacement=replace;\n\toperation.cutStart = n;\n\toperation.cutEnd = n+len;\n\toperation.newSelStart = n;\n\toperation.newSelEnd = n + operation.replacement.length;\n lastfound=n+len;\nthis.wiki.setText('$:/sk/lastfound','','',lastfound);\n}\n};\n\n})();",
"created": "20160328024527675",
"modified": "20160519120341960",
"module-type": "texteditoroperation",
"tags": "",
"title": "$:/core/modules/editor-operations/text/findreplace.js",
"type": "application/javascript"
},
"$:/core/ui/TextEditorToolbar/find-replace": {
"text": "\\define toolbar-button-find()\n\n<$reveal state=\"\"\"$(config-title)$/popup\"\"\" type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\nFind and replace in the tiddler text \n<table class=noborders>\n<tr><td>Find: </td><td><$edit-text tag=\"input\" tiddler=\"\"\"$:/sk/new-find\"\"\" placeholder=\"find what?\" focus=\"true\"/></td><td><$button style=\"width:150px; text-align: center\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"findreplace\" find={{$:/sk/new-find}} replace={{$:/sk/new-find}}/> Find Now </$button></td></tr>\n<tr><td>Replace: </td><td><$edit-text tag=\"input\" tiddler=\"\"\"$:/sk/new-replace\"\"\" placeholder=\"replace with?\" /></td><td><$button style=\"width:150px; text-align: center\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"findreplace\" find={{$:/sk/new-find}} replace={{$:/sk/new-replace}} />Replace Now</$button></td></tr>\n</table>\n</div>\n</$reveal>\n\\end\n\n<$set name=\"config-title\" value=<<qualify \"$:/state/edit-toolbar/find\">>>\n<<toolbar-button-find>>\n\n</$set>\n",
"caption": "{{$:/language/Buttons/Find/Caption}}",
"condition": "[all[current]!is[image]]",
"created": "20160329122446371",
"creator": "Stephen",
"description": "{{$:/language/Buttons/Find/Hint}}",
"dropdown": "$:/sk/Findandreplacedropdown",
"icon": "$:/core/images/format-find",
"modified": "20160505115125448",
"modifier": "Stephen",
"shortcuts": "((findreplace))",
"tags": "$:/tags/EditorToolbar",
"title": "$:/core/ui/TextEditorToolbar/find-replace"
},
"$:/language/Buttons/Find/Caption": {
"text": "find text",
"created": "20150202180911449",
"creator": "Stephen",
"modified": "20150204201812359",
"modifier": "Stephen",
"tags": "ske",
"title": "$:/language/Buttons/Find/Caption"
},
"$:/language/Buttons/Find/Hint": {
"text": "find and replace text",
"created": "20150130180837082",
"creator": "Stephen",
"modified": "20160310030018832",
"modifier": "Stephen",
"tags": "ske",
"title": "$:/language/Buttons/Find/Hint"
},
"$:/sk/FindandReplace": {
"text": "The last button on the editor toolbar calls up the Find and Replace toolbar. This toolbar contains five items, two labelled input boxes and three icons.\n\nTo use Find and Replace, enter the text you wish to find in the Find box and the text you want to replace it with in the Replace box. \n\n!!The Find Function\n\nThe Find function is case sensitive which means that searching for \"the\" will find \"the\" in \"other\" but not in \"Theater.\" The replacement text is substituted exactly as it is entered in the Replace box. Not attempt is made to match the capitalisation of the replaced text.\n\nClicking on the {{$:/core/images/format-find}} icon begins the search at the cursor location and moves down through the text until it either finds the text or it reaches the end. If it reaches the end without finding the text, the Find box will turn red. If the word occurred before the cursor location, clicking on the icon again will go back to the beginning and find the first occurrence of the word.\n\n!!The Find and Replace Function\nThe idea behind the Find and Replace function is that you will be given the opportunity to decide whether to actually make the change. Accordingly, Find and Replace will highlight the word before making the change.\n\nClicking on the button will replace the highlighted text with the contents of the Replace box and then search for the next occurrence of the word in the Find box. As with the Find function, if there are no additional occurrences of the text, the Find box will turn red. \n\nIf no text is highlighted when the button is clicked, the first occurrence is highlighted.\n\n!!The Replace All Function\n\nThis function has been temporarily disabled.\n\n~~Clicking on the [img height=16 [$:/sk/replaceall.svg]] icon will find all changes all occurrences of the Find text and changes them without review or intervention by the user to the Replace text.\n\nBecause this can have unexpected results, a warning appears the first time you invoke the function requesting your confirmation. After that, the program assumes that you know what you are doing and proceeds without further warning.\n~~",
"caption": "Editor Documentation - Find and Replace",
"created": "20150203200254479",
"creator": "Stephen",
"modified": "20160327125411990",
"modifier": "Stephen",
"tags": "EditorHelp ske",
"title": "$:/sk/FindandReplace"
},
"$:/sk/Findandreplacedropdown": {
"text": "Find and replace in the tiddler text \n<table class=noborders>\n<tr><td>Find: </td><td><$edit-text tag=\"input\" tiddler=\"\"\"$:/sk/new-find\"\"\" placeholder=\"find what?\" focus=\"false\"/></td>\n<td><$button style=\"width:150px; text-align: center\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"findreplace\" find={{$:/sk/new-find}} replace={{$:/sk/new-find}}/> Find Now </$button></td>\n</tr>\n<tr><td>Replace: </td><td><$edit-text tag=\"input\" tiddler=\"\"\"$:/sk/new-replace\"\"\" placeholder=\"replace with?\" /></td><td>\n<$button style=\"width:150px; text-align: center\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"findreplace\" find={{$:/sk/new-find}} replace={{$:/sk/new-replace}} />Replace Once</$button>\n<$button style=\"width:150px; text-align: center\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"replaceall\" find={{$:/sk/new-find}} replace={{$:/sk/new-replace}} />Replace All</$button></td></tr>\n</table>",
"created": "20160327124803204",
"dropdown": "",
"modified": "20160519014533282",
"tags": "",
"title": "$:/sk/Findandreplacedropdown"
},
"$:/sk/new-find": {
"text": ":/sk",
"created": "20160316195130339",
"modified": "20160407020953015",
"title": "$:/sk/new-find"
},
"$:/sk/new-replace": {
"text": "that",
"created": "20160316201425057",
"modified": "20160328025201245",
"title": "$:/sk/new-replace"
},
"$:/sk/lastfound": {
"text": "",
"created": "20160328191828606",
"modified": "20160328192037597",
"title": "$:/sk/lastfound"
},
"$:/config/ShortcutInfo/findreplace": {
"text": "{{$:/language/Buttons/Find/Hint}}",
"created": "20160505023902207",
"creator": "Stephen",
"modified": "20160505023943145",
"modifier": "Stephen",
"tags": "",
"title": "$:/config/ShortcutInfo/findreplace"
},
"$:/config/shortcuts/findreplace": {
"text": "ctrl-alt-F",
"created": "20160505023838550",
"creator": "Stephen",
"modified": "20160505121933034",
"modifier": "Stephen",
"tags": "",
"title": "$:/config/shortcuts/findreplace"
},
"$:/core/modules/editor-operations/text/replaceall.js": {
"text": "/*\\\ntitle: $:/core/modules/editor-operations/text/replaceall.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replaceall the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replaceall\"] = function(event,operation) {\nvar listtext=operation.text;\nvar find = event.paramObject.find;\nvar replace = event.paramObject.replace;\nvar rwarn=false;\nvar r=true;\n\nif (find == \"|\") {find = \"\\|\";}\nif (find == \"^t\") {find = String.fromCharCode(9);}\nif (find == \"^f\") {find = String.fromCharCode(10);}\nif (find == \"^r\") {find = String.fromCharCode(13);}\nif (replace == \"|\") {replace = \"\\|\";}\nif (replace == \"^t\") {replace = String.fromCharCode(9);}\nif (replace == \"^f\") {replace = String.fromCharCode(10);}\nif (replace == \"^r\") {replace = String.fromCharCode(13);}\n\nvar regexfind = new RegExp(find, \"gm\");\nvar res = listtext.replace(regexfind,replace);\n\n if (rwarn == false) {\n r = confirm(\"Replace all can lead to unexpected results.\\n Proceed anyway?\"); \n rwarn = true;\n }\n if (r == true) {\n\n\toperation.replacement=res;\n\toperation.cutStart = 0;\n\toperation.cutEnd = res.length;}\n};\n\n})();\n",
"created": "20160519014619471",
"modified": "20160520171809236",
"module-type": "texteditoroperation",
"tags": "",
"title": "$:/core/modules/editor-operations/text/replaceall.js",
"type": "application/javascript"
}
}
}
{
"tiddlers": {
"$:/sk/WhiteList": {
"text": "LeDoux,McCloud,McDonald,TiddlyWiki,TiddlyWiki5,CamelCase,DuBay,McGraw,McCullough,LeGrange,NaCl,MeOH,EtOH,PiB,TiddlyTools,ResetFind,WikiText,WinBuilder,WinPE,ProgramData,TiddlyFox,GuillermoMartin,AndrewFraser,RochesterMNwalkers,DEdwardsCalgary,WalkaboutMM,HarveyG,McCoy,GeForce,SideBar,AirBnB,PayPal,LeBron,JavaScript,ExpressJet,CutePDF,McClouds,McElroy,McGovern,TableHelper,ShadowTiddler",
"caption": "Words to never consider as CamelCase links",
"created": "20150210172146298",
"creator": "Stephen",
"description": "Words that should never be considered as CamelCase wikiwords. Separate the individual words with commas (,).",
"modified": "20160427151253707",
"modifier": "Stephen",
"tags": "ske",
"title": "$:/sk/WhiteList"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n// If the link is on the whitelist then just output is as plain text\nvar dummy = \"$:/sk/WhiteList\"\nvar whitelist=$tw.wiki.getTiddlerText(dummy).split(\",\");\nvar n=whitelist.indexOf(linkText);\n\nif(n>-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"created": "20150209183326265",
"creator": "Stephen",
"modified": "20150210183324354",
"modifier": "Stephen",
"module-type": "wikirule",
"tags": "ske",
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"type": "application/javascript"
}
}
}
{
"tiddlers": {
"$:/plugins/snowgoon88/edit-comptext/config": {
"title": "$:/plugins/snowgoon88/edit-comptext/config",
"type": "application/json",
"text": "{\n \"configuration\": {\n \"caseSensitive\" : false,\n \"maxMatch\" : 8,\n \"minPatLength\" : 2,\n \"triggerKeyCombination\" : \"^ \"\n },\n \"template\": [{\n \"pattern\": \"[[\",\n \"filter\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n }\n ]\n}\n"
},
"$:/plugins/snowgoon88/edit-comptext/edit-comptext.js": {
"title": "$:/plugins/snowgoon88/edit-comptext/edit-comptext.js",
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/edit-comptext.js\ntype: application/javascript\nmodule-type: widget\n\nTaken from original Edit-text widget\nVersion 5.1.13 of TW5\nAdd link-to-tiddler completion in framed.js and simple.js\n\nTODO : CHECK usefull, and particularly save_changes after every input ??\nTODO : where should popupNode be created in the DOM ?\nTODO : check that options are valid (numeric ?)\nvar isNumeric = function(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedCompEngine = require(\"$:/plugins/snowgoon88/edit-comptext/framed.js\").FramedCompEngine,\n\tSimpleCompEngine = require(\"$:/plugins/snowgoon88/edit-comptext/simple.js\").SimpleCompEngine;\n\nexports[\"edit-comptext\"] = editTextWidgetFactory(FramedCompEngine,SimpleCompEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/snowgoon88/edit-comptext/examples": {
"title": "$:/plugins/snowgoon88/edit-comptext/examples",
"text": "The configuration file [[$:/plugins/snowgoon88/edit-comptext/config]] allow you to use the completion plugin for various usages. Here are some examples...\n\n!! Link Completion\nThe basic and default usage. Completion is triggered by `[[`, the search is among all non-system tiddlers. When selected, the `title` of the tiddler is inserted in the text, surrounded by `[[` and `]]`. This gives the following Completion Template.\n\n\n```\n{\n \"pattern\": \"[[\",\n \"title\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n}\t \n```\n\n\n!! Special macro completion\nI have a 'pnjin' macro that is invoked by `<<pnjin \"TiddlerPNJName\">>` where 'TiddlerPNJName is a tiddler that hold data about a PNJ. I use tiddlywiki to organise my Role Playing Games campaigns. So, I want `<p` to trigger the completion. The search is among all non-system tiddlers tagged `PNJ` and, once selected, the title of the tiddler must be inserted surrouned by `<<pnjin \\\"` and `\\\">>`. So...\n\n```\n{\n\t\"pattern\": \"<p\",\n \t\"title\": \"[tag[PNJ]!is[system]]\",\n \t\"start\": \"<<pnjin \\\"\",\n \t\"end\": \"\\\">>\"\n}\n```\n\n!! Insert some templates or stamp or snippets into text.\nI frequently use some text pattern and I want to insert them easily. So, I could create several tiddlers, tagged '$:stamp' and in their body are the piece of texte I want to insert. The titles of these tiddlers always start with `$:/config/stamp/` (i.e. $:/config/stamp/macro, $:/config/stamp/list1, $:/config/stamp/list2). I want to trigger the completion by using `<<`, then I only want to chose among the last part of the titles of tiddlers tagged `$:stamp` so I use a mask (`$:/config/stamp/`) to only display the last part of the tiddlers title. When selectected, the `body` of the tiddler is inserted, with no surrounding strings. As a results, the Completion Template is (notice the `body` field):\n\n```\n{\n \"pattern\": \"<<\",\n \"body\": \"[tag[$:stamp]]\",\n \"mask\" : \"$:/config/stamp/\",\n \"start\": \"\",\n \"end\": \"\"\n}\n```\n\n!! And you ?\nIf you have funny usages of completion, let me know. If you'd like to do something that is not yet possible, let me know...\n\nmail : snowgoon88(AT)gmail(DOT)com"
},
"$:/plugins/snowgoon88/edit-comptext/framed.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/framed.js\ntype: application/javascript\nmodule-type: library\n\nTaken from $:/core/modules/editor/engines/framed.js\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\n// Configuration tiddler\nvar COMPLETION_OPTIONS = \"$:/plugins/snowgoon88/edit-comptext/config\";\nvar Completion = require(\"$:/plugins/snowgoon88/edit-comptext/completion.js\").Completion;\n\t\nfunction FramedCompEngine(options) {\n //DEBUG console.log( \"==FramedCompEngine::creation\" );\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\n\t// Completion\n\t// Load Completion configuration as JSON\n this._configOptions = $tw.wiki.getTiddlerData( COMPLETION_OPTIONS, {} );\n\t\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create dummy popup for reading its styles\n\t//this._dummyCompletion = new Completion( this.widget, this.dummyTextArea, this._configOptions);\n\t//REMOVEthis._dummyCompletion.setAttribute(\"hidden\",\"true\");\n\t\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n\n\t// add Completion popup\n this._completion = new Completion( this.widget, this.domNode, this._configOptions, this.dummyTextArea, this.iframeNode.offsetTop, this.iframeNode.offsetLeft );\n\t// print iframe offset\n\t//DEBUG console.log( \" __iframe.offsetLeft: \"+this.iframeNode.offsetLeft );\n //DEBUG console.log( \" __iframe.offsetTop: \"+this.iframeNode.offsetTop );\n \n\t// Copy all styles from dummyCompletion\n\t//$tw.utils.copyStyles(this._dummyCompletion._popNode, this._completion._popNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\t//this._completion._popNode.style.display = \"block\";\n\t//this._completion._popNode.style.width = \"100%\";\n\t//this._completion._popNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\t//this._completion._popNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n \n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedCompEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedCompEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedCompEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedCompEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedCompEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedCompEngine.prototype.handleInputEvent = function(event) {\n //DEBUG console.log( \"__framed.js::handleInputEvent\");\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedCompEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedCompEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedCompEngine = FramedCompEngine;\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/framed.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/simple.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/simple.js\ntype: application/javascript\nmodule-type: library\n\nTaken from $:/core/modules/editor/engines/simple.js\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\n// Configuration tiddler\nvar COMPLETION_OPTIONS = \"$:/plugins/snowgoon88/edit-comptext/config\";\nvar Completion = require(\"$:/plugins/snowgoon88/edit-comptext/completion.js\").Completion;\n\nfunction SimpleCompEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\n // Completion\n\t// Load Completion configuration as JSON\n this._configOptions = $tw.wiki.getTiddlerData( COMPLETION_OPTIONS, {} );\n\t\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n\n\t// add Completion popup\n this._completion = new Completion( this.widget, this.domNode, this._configOptions );\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleCompEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleCompEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleCompEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleCompEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleCompEngine.prototype.handleInputEvent = function(event) {\n\tconsole.log( \"__simple.js::handleInputEvent\");\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleCompEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleCompEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleCompEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleCompEngine = SimpleCompEngine;\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/simple.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/cursor-position.js": {
"text": "/*\\\nModule that compute the pixel position of the cursor of a text\nements.\n\nTaken from https://github.com/component/textarea-caret-position\n\n(as https://github.com/kir/js_cursor_position is not updated any more)\n\\*/\n// Fonction anonyme executée immediatement\n( function(){\n \n// The properties that we copy into a mirrored div.\n// Note that some browsers, such as Firefox,\n// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n// so we have to do every single property specifically.\nvar properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n\n];\nvar isFirefox = false;\nif($tw.browser) {\n isFirefox = window.mozInnerScreenX != null;\n}\n\nfunction getCaretCoordinates(element, position, options) {\n\n var debug = options && options.debug || false;\n if (debug) {\n var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if ( el ) { el.parentNode.removeChild(el); }\n }\n\n // mirrored div\n var div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n var style = div.style;\n var computed;\n if($tw.browser) {\n computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n } \n else {\n computed = element.currentStyle;\n }\n \n\n // default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT')\n style.wordWrap = 'break-word'; // only for textarea-s\n\n // position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug)\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n // transfer the element's properties to the div\n properties.forEach(function (prop) {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (element.nodeName === 'INPUT')\n div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n var span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // for inputs, just '.' would be enough, but why bother?\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n var coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth']),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n}\n\n// Exporte as a module of node.js otherwise set as global\nif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n module.exports = getCaretCoordinates;\n} else {\n window.getCaretCoordinates = getCaretCoordinates;\n}\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/cursor-position.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/completion.js": {
"text": "/*\\\ntitle: $:/plugins/snowgoon88/edit-comptext/completion.js\ntype: application/javascript\nmodule-type: library\n\nTry to make self-contained completion module.\n\nTo use this 'module', you need a `widget` with a kind of `editarea` node.\nI do not know the exacte prerequisites of this editarea node for the module to\nwork, but mostly one should be able to attach the following `eventHandler` to\nit:\n - input\n - keydown\n - keypress\n - keyup\nThe `widget` is needed because I use:\n - widget.document\n - widget.wiki.filterTiddlers(...)\n\nFrom the Widget, once you have a proper editarea, you just have to call\n - var completion = new Completion( theWidget, theEditAreaNode, configObject);\nwhere `configObject` is expected to have the following fields. if a field is missing, a default value will be given.\nOne can have many `elements' in the template array.\n\n{\n \"configuration\": {\n \"caseSensitive\" : false,\n \"maxMatch\" : 8,\n \"minPatLength\" : 2,\n \"triggerKeyCombination\" : \"^ \"\n },\n \"template\": [{\n \"pattern\": \"[[\",\n \"filter\": \"[all[tiddlers]!is[system]]\",\n \"start\": \"[[\",\n \"end\": \"]]\"\n }\n ]\n}\n\nTODO : CHECK if needed\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// To compute pixel coordinates of cursor\nvar getCaretCoordinates = require(\"$:/plugins/snowgoon88/edit-comptext/cursor-position.js\");\n\n/** Default Completion Attributes */\nvar DEFATT = { maxMatch: 5, minPatLength: 2, caseSensitive: false, triggerKeyCombination: \"^ \" };\n\n/** \n * Struct for generic Completion Templates.\n * <ul>\n * <li>pat : pattern searched for.</li>\n * <li>filter : filter operation used to find the list of completion options</li>\n * <li>mask: replaced by \"\" when presenting completion options</li>\n * </ul>\n */\nvar Template = function( pat, filter, mask, field, start, end ) {\n this.pat = pat;\n this.filter = filter;\n this.mask = \"^\"+regExpEscape(mask);\n this.field = field;\n this.start = start;\n this.end = end;\n this.pos = 0;\n};\n/**\n * Struct for storing completion options, as we need to memorise \n * the titles of the tiddlers when masked and when body must be displayed.\n */\nvar OptCompletion = function( title, str ) {\n this.title = title;\n this.str = str;\n};\n\nvar keyMatchGenerator = function(combination) {\n\tlet singleMatchGenerator = function(character) {\n\t\tif (character === '^') {\n\t\t\treturn event => event.ctrlKey;\n\t\t}\n\t\telse if (character === '+') {\n\t\t\treturn event => event.shiftKey;\n\t\t}\n\t\telse if (character === '!') {\n\t\t\treturn event => event.altKey;\n\t\t}\n\t\telse {\n\t\t\treturn event => (event.keyCode || event.which) === character.charCodeAt(0);\n\t\t}\n\t};\n\n\tlet matchers = [];\n\tfor (let i = 0; i < combination.length; i++) {\n\t\tmatchers.push(singleMatchGenerator(combination[i]));\n\t}\n\n\treturn event => {\n\t\tfor (let i = 0; i < matchers.length; i++) {\n\t\t\tif (!matchers[i](event)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n};\n\n/**\n * Widget is needed in creating popupNode.\n * - widget.document\n * - widget.wiki.filterTiddlers(...)\n * - sibling : where to create the popup in the DOM.\n */\n\tvar Completion = function( editWidget, areaNode, param, sibling, offTop, offLeft ) {\n\tconsole.log( \"==Completion::creation\" );\n\n // About underlying Widget\n this._widget = editWidget;\n\tthis._areaNode = areaNode;\n\tthis._sibling = (typeof sibling !== 'undefined') ? sibling : this._areaNode;\n\tthis._offTop = (typeof offTop !== 'undefined') ? offTop : 0;\n\tthis._offLeft = (typeof offLeft !== 'undefined') ? offLeft : 0;\t\n\t\t\n // Completions attributes\n /** State */\n this._state = \"VOID\";\n this._template = undefined;\n /** Best matches */\n this._bestMatches = []; // An array of OptCompletion\n this._idxChoice = -1;\n /** Param */\n // maximum nb of match displayed\n this._maxMatch = param.configuration.maxMatch || DEFATT.maxMatch; \n this._minPatLength = param.configuration.minPatLength || DEFATT.minPatLength;\n this._caseSensitive= param.configuration.caseSensitive || DEFATT.caseSensitive;\n this._triggerKeyMatcher = keyMatchGenerator(param.configuration.triggerKeyCombination || DEFATT.triggerKeyCombination);\n /** Input information */\n this._lastChar = \"\";\n this._hasInput = false;\n /** List of Completion Templates */\n this._listTemp = [];\n \n // Read templates from Param\n if( param.template ) {\n \tvar idT;\n \tfor( idT=0; idT<param.template.length; idT++ ) {\n \t var temp = param.template[idT];\n\t // field 'body' ou 'title' (default)\n\t if( temp.body ) {\t\t\n \t\tthis._listTemp.push( \n \t\t new Template( temp.pattern, temp.body,\n\t\t\t\t temp.mask ? temp.mask : \"\",\n\t\t\t\t \"body\",\n \t\t\t\t temp.start, temp.end )\n \t\t);\n\t }\n\t else {\n \t\tthis._listTemp.push( \n \t\t new Template( temp.pattern, \n\t\t\t\t temp.title ? temp.title : temp.filter,\n\t\t\t\t temp.mask ? temp.mask : \"\",\n\t\t\t\t \"title\",\n \t\t\t\t temp.start, temp.end )\n \t\t);\n\t }\n\t //DEBUG temp = this._listTemp[this._listTemp.length-1];\n\t //DEBUG console.log( \"__CONF : \"+temp.pattern+\":\"+temp.filter+\":\"+temp.mask+\":\"+temp.field+\":\"+temp.start+\":\"+temp.end );\n \t}\n }\n // or defaut template\n else {\n \tthis._listTemp = [\n \t new Template( \"[[\", \"[all[tiddlers]!is[system]]\", \n\t\t\t \"\", \"title\",\n\t\t\t \"[[\", \"]]\" )\n \t];\n }\n // Create Popup\n\t//this._popNode = createPopup(this._widget, this._areaNode );\n\tthis._popNode = createPopup(this._widget, this._sibling );\t\n \n // Listen to the Keyboard\n $tw.utils.addEventListeners( this._areaNode,[\n\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInput\"},\n\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydown\"},\n\t{name: \"keypress\", handlerObject: this, handlerMethod: \"handleKeypress\"},\n \t{name: \"keyup\", handlerObject: this, handlerMethod: \"handleKeyup\"}\n ]);\n \n /** \n * Find the bestMatches among listChoice with given pattern\n * @param listChoice : array of String\n * @change : this._bestMatches => array of OptCompletion\n */\n this._findBestMatches = function( listChoice, pattern, nbMax) {\n\t// regexp search pattern, case sensitive\n\tvar flagSearch = this._caseSensitive ? \"\" : \"i\" ;\n\tvar regpat = RegExp( regExpEscape(pattern), flagSearch );\n\tvar regpat_start = RegExp( \"^\"+regExpEscape(pattern), flagSearch );\n\tvar regMask = RegExp( this._template.mask ? this._template.mask : \"\",\"\");\n\tvar nbMatch = 0;\n\t// nbMax set to _maxMatch if no value given\n\tnbMax = nbMax !== undefined ? nbMax : this._maxMatch;\n\n\t//DEBUG console.log( \"__FIND masked=\"+regMask+\" regPat=\"+regpat);\n\n\tthis._bestMatches= [];\n\tvar otherMatches = [];\n\t// We test every possible choice\n\tfor( var i=0; i< listChoice.length; i++ ) {\n\t // apply mask over potential choice\n\t var maskedChoice = listChoice[i].replace( regMask, \"\");\n\t // Test first if pattern is found at START of the maskedChoice\n\t // THEN added to BestMatches\n \t if( regpat_start.test( maskedChoice )) {\n\t\tif (nbMatch >= nbMax) {\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"...\") );\n\t\t return;\n\t\t} else {\n\t\t this._bestMatches.push( new OptCompletion(listChoice[i],maskedChoice) );\n\t\t nbMatch += 1;\n\t\t}\n\t }\n\t // then if pattern is found WITHIN the maskedChoice\n\t // added AFTER the choices that starts with pattern\n\t else if( regpat.test( maskedChoice ) ) {\n\t\tif (nbMatch >= nbMax) {\n\t\t // add all otherMatches to _bestMatches\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"<hr>\") ) ; //separator\n\t\t this._bestMatches = this._bestMatches.concat( otherMatches );\n\t\t this._bestMatches.push( new OptCompletion(\"\",\"...\") );\n\t\t return;\n\t\t} else {\n\t\t otherMatches.push( new OptCompletion(listChoice[i],maskedChoice) );\n\t\t nbMatch += 1;\n\t\t}\n\t }\n\t}\n\t// Here, must add the otherMatches\n\tthis._bestMatches.push( new OptCompletion(\"\",\"<hr>\") ) ; //separator\n\tthis._bestMatches = this._bestMatches.concat( otherMatches );\n };\n /**\n * Change Selected Status of Items\n */\n this._next = function (node) {\n\tvar count = node.children.length;\n\t//DEBUG console.log( \"__NEXT: co=\"+count+\" nbMatch=\"+this._bestMatches.length);\n\tif( this._bestMatches.length > 0 ) \n\t this._goto( node, this._idxChoice < count - 1 ? this._idxChoice + 1 : -1);\n\t//DEBUG this._logStatus( \"NexT\" );\n };\n this._previous = function (node) {\n\tvar count = node.children.length;\n\tvar selected = this._idxChoice > -1;\n\t//DEBUG console.log( \"__PREV: co=\"+count+\" nbMatch=\"+this._bestMatches.length);\n\tif( this._bestMatches.length > 0 ) \n\t this._goto( node, selected ? this._idxChoice - 1 : count - 1);\n\t//DEBUG this._logStatus( \"PreV\" );\n };\n // Should not be used, highlights specific item without any checks!\n this._goto = function (node, idx) {\n\tvar lis = node.children;\n\tvar selected = this._idxChoice > -1;\n\tif (selected) {\n\t lis[this._idxChoice].setAttribute(\"patt-selected\", \"false\");\n\t}\n\n\tthis._idxChoice = idx;\n \n\tif (idx > -1 && lis.length > 0) {\n\t lis[idx].setAttribute(\"patt-selected\", \"true\");\n\t}\n };\n /**\n * Abort pattern and undisplay.\n */\n this._abortPattern = function (displayNode) {\n\tthis._state = \"VOID\";\n\tthis._bestChoices = [];\n\tthis._idxChoice = -1;\n\tthis._undisplay( displayNode );\n\tthis._template = undefined;\n };\n /**\n * Display popupNode at the cursor position in areaNode.\n */\n this._display = function( areaNode, popupNode ) {\n\tif ( popupNode.style.display == 'none' ) {\n\t // Must get coordinate\n\t // Cursor coordinates within area + area coordinates + scroll\n var coord = getCaretCoordinates(areaNode, areaNode.selectionEnd);\n var styleSize = getComputedStyle(areaNode).getPropertyValue('font-size');\n var fontSize = parseFloat(styleSize); \n\t\t\n\t popupNode.style.left = (this._offLeft+areaNode.offsetLeft-areaNode.scrollLeft+coord.left) + 'px';\n\t popupNode.style.top = (this._offTop+areaNode.offsetTop-areaNode.scrollTop+coord.top+fontSize*2) + 'px';\n\t popupNode.style.display = 'block';\n\t}\n };\n /**\n * Undisplay someNode\n */\n this._undisplay = function( displayNode ) {\n\tif ( displayNode.style.display != 'none' ) {\n\t displayNode.style.display = 'none';\n\t}\n };\n\n /**\n * Used for debug\n */\n this._logStatus = function(msg) {\n\tconsole.log( \"__STATUS: \"+this._state+\":-\"+msg+\"- idx=\"+this._idxChoice );\n };\n\n};\n// **************************************************************************\n// ******************************************************************eventCbk\n// **************************************************************************\n/**\n * Disable the *effects* of ENTER / UP / DOWN / ESC when needed.\n * Set _hasInput to false.\n */\nCompletion.prototype.handleKeydown = function(event) {\n // key \n var key = event.keyCode;\n this._hasInput = false;\n \n //DEBUG console.log( \"__KEYDOWN (\"+key+\") hasI=\"+this._hasInput);\n \n // ENTER while selecting\n if( (this._state === \"PATTERN\" || this._state === \"SELECT\") && key === 13 ) {\n \tevent.preventDefault();\n \tevent.stopPropagation();\n }\n // ESC while selecting\n if( (this._state === \"PATTERN\" || this._state === \"SELECT\") && key === 27 ) {\n \tevent.preventDefault();\n \tevent.stopPropagation();\n }\n // UP/DOWN while a pattern is extracted\n if( (key===38 || key===40) && \n\t(this._state === \"PATTERN\" || this._state === \"SELECT\") ) {\n\tevent.preventDefault();\n }\n};\n/**\n * Means that something has been added/deleted => set _hasInput\n */\nCompletion.prototype.handleInput = function(event) {\n this._hasInput = true;\n //DEBUG console.log( \"__INPUT hasI=\"+this._hasInput );\n};\n\t\n/**\n * Set _lastChar, detects CTRL+SPACE.\n */\nCompletion.prototype.handleKeypress = function(event) {\n var curPos = this._areaNode.selectionStart; // cursor position\n var val = this._areaNode.value; // text in the area\n // key \n var key = event.keyCode || event.which;\n\t\n this._lastChar = String.fromCharCode(key);\n //DEBUG console.log( \"__KEYPRESS (\"+key+\") hasI=\"+this._hasInput+\" char=\"+this._lastChar );\n //DEBUG this._logStatus( \"KEYPRESS\" );\n \n // Detect Ctrl+Space\n if( this._triggerKeyMatcher(event) && this._state === \"VOID\" ) {\n\t//Find a proper Template\n\t// first from which we can extract a pattern\n\tif( this._template === undefined ) {\n\t //DEBUG console.log(\"__SPACE : find a Template\" );\n\t var idT, res;\n\t for( idT=0; idT < this._listTemp.length; idT++ ) {\n\t\tres = extractPattern( val, curPos, this._listTemp[idT] );\n\t\t//DEBUG console.log(\" t=\"+this._listTemp[idT].pat+\" res=\"+res);\n\t\t// res is not undefined => good template candidate\n\t\tif( res ) {\n\t\t this._template = this._listTemp[idT];\n\t\t this._state = \"PATTERN\";\n\t\t break;\n\t\t}\n\t }\n\t}\n\telse {\n\t //DEBUG console.log(\"__SPACE : already a template\" );\n\t this._state = \"PATTERN\";\n\t}\n }\n};\n/**\n * ESC -> abort; \n * Detect [ -> VOID switch to _state=PATTERN\n * PATTERN || SELECT : ENTER -> insertText\n * UP/DOWN -> previous/next\n * pattern.length > _minPatternLength -> display \n */\nCompletion.prototype.handleKeyup = function(event) {\n var curPos = this._areaNode.selectionStart; // cursor position\n var val = this._areaNode.value; // text in the area\n // key a\n var key = event.keyCode;\n \n //DEBUG console.log( \"__KEYUP (\"+key+\") hasI=\"+this._hasInput );\n \n // ESC\n if( key === 27 ) {\n\tthis._abortPattern( this._popNode );\n\t//DEBUG this._logStatus( \"\" );\n }\n // Check for every template\n if( this._hasInput && this._state === \"VOID\" ) {\n\t// check every template's pattern\n\tvar idT, template;\n\tfor( idT=0; idT < this._listTemp.length; idT++ ) {\n\t template = this._listTemp[idT];\n\t if( this._lastChar === template.pat[template.pos] ) {\n\t\ttemplate.pos += 1;\n\t\t//DEBUG console.log( \"__CHECK : pat=\"+template.pat+\" pos=\"+template.pos );\n\t\t// Pattern totaly matched ?\n\t\tif( template.pos === template.pat.length ) {\n\t\t //DEBUG console.log( \"__CHECK => found \"+template.pat );\n\t\t this._state = \"PATTERN\";\n\t\t this._template = template;\n\t\t \n\t\t break; // get out of loop\n\t\t}\n\t }\n\t else {\n\t\ttemplate.pos = 0;\n\t\t//DEBUG console.log( \"__CHECK : pat=\"+template.pat+\" pos=\"+template.pos );\n\t }\n\t}\n }\n // a pattern\n else if( this._state === \"PATTERN\" || this._state === \"SELECT\" ) {\n\t// Pattern below cursor : undefined if no pattern\n\tvar pattern = extractPattern( val, curPos, this._template );\n\tif( key === 13 ) { // ENTER\n\t //DEBUG console.log( \"KEY : Enter\" );\n \t // Choice made in the displayNode ?\n \t var selected = this._idxChoice > -1 && this._idxChoice !== this._maxMatch;\n \t //DEBUG console.log( \" > sel=\"+selected+\" len=\"+this._bestChoices.length );\n \t if( selected ) {\n \t\t//DEBUG console.log( \" > selected\" );\n\t\tvar temp = this._bestMatches[this._idxChoice];\n\t\tvar str = temp.str;\n\t\tif( this._template.field === \"body\" ) {\n\t\t str = $tw.wiki.getTiddlerText( temp.title );\n\t\t}\n \t\tinsertInto( this._areaNode,\n\t\t\t str,\n\t\t\t pattern.start, curPos, this._template );\n\t\t// save this new content\n\t\tthis._widget.saveChanges( this._areaNode.value );\n\t }\n\t // otherwise take the first choice (if exists)\n\t else if( this._bestMatches.length > 0 ) {\n \t\t//DEBUG console.log( \" > take first one\" );\n\t\tvar temp = this._bestMatches[0];\n\t\tvar str = temp.str;\n\t\tif( this._template.field === \"body\" ) {\n\t\t str = $tw.wiki.getTiddlerText( temp.title );\n\t\t}\n \t\tinsertInto( this._areaNode,\n\t\t\t str,\n\t\t\t pattern.start, curPos, this._template );\n\t\t// save this new content\n\t\tthis._widget.saveChanges( this._areaNode.value );\n\t }\n\t this._abortPattern( this._popNode );\n\t\t//DEBUG this._logStatus( \"\" );\n \t }\n\t else if( key === 38 && this._hasInput === false) { // up\n\t\tthis._state = \"SELECT\";\n \t\tevent.preventDefault();\n \t\tthis._previous( this._popNode );\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t//event.stopPropagation();\n \t }\n \t else if( key === 40 && this._hasInput === false) { // down\n\t\tthis._state = \"SELECT\";\n \t\tevent.preventDefault();\n \t\tthis._next( this._popNode );\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t//event.stopPropagation();\n \t }\n \t else if( pattern ) { // pattern changed by keypressed\n\t\tthis._idxChoice = -1;\n \t\t// log\n\t\t//DEBUG this._logStatus( pattern.text );\n \t\t// Popup with choices if pattern at least minPatLength letters long\n\t\tif( pattern.text.length > (this._minPatLength-1) ) {\n\t\t // compute listOptions from templateFilter\n\t\t var allOptions;\n\t\t if( this._template )\n\t\t\tallOptions = this._widget.wiki.filterTiddlers( this._template.filter );\n\t\t else\n\t\t\tallOptions = this._widget.wiki.filterTiddlers(\"[all[tiddlers]]\");\n\t\t this._findBestMatches( allOptions, pattern.text );\n \t\t this._popNode.innerHTML = \"\";\n \t\t //console.log( \"BC \"+ this._pattern + \" => \" + choice );\n \t\t if (this._bestMatches.length > 0) {\n\t\t\tfor( var i=0; i<this._bestMatches.length; i++) {\n \t\t\t this._popNode.appendChild( \n\t\t\t\titemHTML(this._bestMatches[i].str,\n\t\t\t\t\t pattern.text));\n \t\t\t}\n\t\t\tthis._display( this._areaNode, this._popNode );\t\t\t\n \t\t }\n\t\t else { // no matches\n\t\t\tthis._state = \"PATTERN\";\n\t\t\tthis._undisplay( this._popNode );\n\t\t }\n\t\t}\n \t }\n\t else { // no pattern detected\n\t\tthis._abortPattern( this._popNode );\n\t }\n\t}\n\t// to ensure that one MUST add an input (through onInput())\n\tthis._hasInput = false;\n};\n// **************************************************************************\n// ******************************************************** private functions\n// **************************************************************************\n/**\n * Create popup element.\n */\nvar createPopup = function( widget, node ) {\n // Insert a special \"div\" element for poping up\n // Its 'display' property in 'style' control its visibility\n var popupNode = widget.document.createElement(\"div\");\n popupNode.setAttribute( \"style\", \"display:none; position: absolute;\");\n popupNode.className = \"tc-block-dropdown ect-block-dropdown\";\n // Insert the element into the DOM\n node.parentNode.insertBefore(popupNode,node.nextSibling);\n //CHECK the domNodes is a attribute of Widget [widget.js]\n //CHECK this.domNodes.push(popupNode);\n \n return popupNode;\n};\n/**\n * Extract Pattern from text at a given position.\n *\n * Between previous template.pat (or '[[') and pos\n * \n * If no pattern -> undefined\n */\nvar extractPattern = function( text, pos, template ) {\n // Detect previous and next ]]=>STOP or [[=>START\n var sPat = template.pat ? template.pat : '[[';\n var pos_prevOpen = text.lastIndexOf( sPat, pos );\n var ePat = template.end ? template.end : ']]';\n var pos_prevClosed = text.lastIndexOf( ePat, pos );\n var pos_nextClosed = text.indexOf( ePat, pos );\n //DEBUG console.log(\"__CALC st=\"+sPat+\" -> en=\"+ePat );\n //DEBUG console.log(\"__CALC po=\"+pos_prevOpen+\" pc=\"+pos_prevClosed+\" nc=\"+pos_nextClosed+\" pos=\"+pos);\n pos_nextClosed = (pos_nextClosed >= 0) ? pos_nextClosed : pos;\n \n if( (pos_prevOpen >= 0) && // must be opened\n\t((pos_prevOpen > pos_prevClosed ) || // not closed yet\n\t (pos_prevClosed === pos))) { // closed at cursor\n\t//DEBUG console.log(\" pat=\"+text.slice( pos_prevOpen+sPat.length, pos) );\n\treturn { text: text.slice( pos_prevOpen+sPat.length, pos ),\n\t\t start: pos_prevOpen,\n\t\t end: pos_nextClosed\n\t };\n }\n};\n/**\n * Controls how list items are generated.\n * Function that takes two parameters :\n * - text : suggestion text\n * - input : the user’s input\n * Returns : list item. \n * Generates list items with the user’s input highlighted via <mark>.\n */\nvar itemHTML = function (text, input ) {\n // text si input === ''\n // otherwise, build RegExp that is global (g) and case insensitive (i)\n // to replace with <mark>$&</mark> where \"$&\" is the matched pattern\n var html = input === '' ? text : text.replace(RegExp(regExpEscape(input.trim()), \"gi\"), \"<mark>$&</mark>\");\n return create(\"li\", {\n\tinnerHTML: html,\n\t\"patt-selected\": \"false\"\n });\n};\n/**\n * Insert text into a textarea node, \n * enclosing in 'template.start..template.end'\n *\n * - posBefore : where the 'template.pat+pattern' starts\n * - posAfter : where the cursor currently is\n */\nvar insertInto = function(node, text, posBefore, posAfter, template ) {\n //DEBUG console.log( \"__INSERT : \"+template.pattern+\":\"+template.filter+\":\"+template.mask+\":\"+template.field+\":\"+template.start+\":\"+template.end );\n var val = node.value;\n var sStart = template.start !== undefined ? template.start : '[[';\n var sEnd = template.end !== undefined ? template.end : ']]';\n var newVal = val.slice(0, posBefore) + sStart + text + sEnd + val.slice(posAfter);\n //console.log(\"__INSERT s=\"+sStart+\" e=\"+sEnd);\n //console.log (\"__INSERT pb=\"+posBefore+\" pa=\"+posAfter+\" txt=\"+text);\n //console.log( \"NEW VAL = \"+newVal );\n // WARN : Directly modifie domNode.value.\n // Not sure it does not short-circuit other update methods of the domNode....\n // i.e. could use widget.updateEditor(newVal) from edit-comptext widget.\n // but how to be sure that cursor is well positionned ?\n node.value = newVal;\n node.setSelectionRange(posBefore+text.length+sStart.length+sEnd.length, posBefore+text.length+sStart.length+sEnd.length );\n};\n/**\n * Add an '\\' in front of -\\^$*+?.()|[]{}\n */\nvar regExpEscape = function (s) {\n return s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n/**\n * Add an element in the DOM.\n */\nvar create = function(tag, o) {\n var element = document.createElement(tag);\n \n for (var i in o) {\n\tvar val = o[i];\n\t\n\tif (i === \"inside\") {\n\t $(val).appendChild(element);\n\t}\n\telse if (i === \"around\") {\n\t var ref = $(val);\n\t ref.parentNode.insertBefore(element, ref);\n\t element.appendChild(ref);\n\t}\n\telse if (i in element) {\n\t element[i] = val;\n\t}\n\telse {\n\t element.setAttribute(i, val);\n\t}\n }\n \n return element;\n};\n\n\nexports.Completion = Completion;\n\n})();\n\n \n",
"type": "application/javascript",
"title": "$:/plugins/snowgoon88/edit-comptext/completion.js",
"module-type": "library"
},
"$:/plugins/snowgoon88/edit-comptext/edit-comptext.css": {
"text": "\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/* The \\rules pragma at the top of the tiddler restricts the WikiText \n * to just allow macros and transclusion. This avoids mistakenly \n * triggering unwanted WikiText processing.\n * \n * MUST not save as text/css for macro to be processed\n*/\n\n.ect-block-dropdown li {\n display: block;\n padding: 4px 14px 4px 14px;\n text-decoration: none;\n color: <<colour tiddler-link-foreground>>; /*#5778d8;*/ \n background: transparent;\n}\n.ect-block-dropdown li[patt-selected=\"true\"] {\n color: <<colour tiddler-link-background>>; /*#ffffff; */\n background-color: <<colour tiddler-link-foreground>>; /*#5778d8; */\n}\n.ect-block-dropdown li[patt-selected=\"true\"] mark {\n background: hsl(86, 100%, 21%);\n color: inherit;\n}\n\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/snowgoon88/edit-comptext/edit-comptext.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/snowgoon88/edit-comptext/readme": {
"title": "$:/plugins/snowgoon88/edit-comptext/readme",
"text": "!! What ?\nThis plugin adds ''completion'' when editing the body of a tiddler.\n\n* Enter completion-mode by typing `[[` or `CTRL+SPACE`\n* A list of tiddlers with a title that matches the pattern between `[[` and cursor appears\n* `UP/DOWN` keys can select a tiddler, `ENTER` to validate\n* If there is only one match, `ENTER` selects it.\n* `NEW` : you can specify you own trigger pattern and the list of possible completions. See [[$:/plugins/snowgoon88/edit-comptext/usage]] for more details.\n\n\n!! To try it or get the latest news\nSee [[http://snowgoon88.github.io/TW5-extendedit]]\n\n!! Install \n\nTo add the plugin to your own TiddlyWiki5, just drag this link to the browser window:\n\n[[$:/plugins/snowgoon88/edit-comptext]]\n\nSometime, a small configuration step is then needed\n\nin `$:/ControlPanel -> Advanced -> Editor Type -> text/vnd.tiddlywiki` you must chose `comptext` instead of `text`.\n\nReload and « voilà »...\n\nThis plugin is quite mature now :o)\n\n!! Old version\n\n* A version compatible with 5.0.8 to 5.1.11 : [[http://snowgoon88.github.io/TW5-extendedit/index_5.1.11.html]]\n\n!! Source code\nOn github [[https://github.com/snowgoon88/TW5-extendedit]]\n\nGet in touch : snowgoon88(AT)gmail(DOT)com\n"
},
"$:/plugins/snowgoon88/edit-comptext/usage": {
"title": "$:/plugins/snowgoon88/edit-comptext/usage",
"text": "''Important'' : be sure that in `$:/ControlPanel -> Advanced -> Editor Type -> text/vnd.tiddlywiki` you have chosen `comptext` instead of `text`.\n\nConfiguration of the edit-comptext plugin can be done through the tiddler [[$:/plugins/snowgoon88/edit-comptext/config]]. Use a JSON tiddler (do not forget to set the type to `application/json`. See some examples at [[$:/plugins/snowgoon88/edit-comptext/examples]]\n\nIn the `configuration` object you can set :\n\n* `caseSensitive`: `true`/`false` (is search case sensitive ?)\n* `maxMatch` : an `integer` (max number of match displayed)\n* `minPatLength` : an `integer` (minimal length of a pattern to trigger completion search)\n* `triggerKeyCombination ` : a `string` representing the key combination that triggers the autocompletion popup. To use modifier keys in your combination, use following conversions : `ctrl` -> `^`, `alt` -> `!`, `shift` -> `+`. Note: ` ` (literally a whitespace) represents the `space` key.\n\nIn the `template` array you can specify the various completion templates that will be used. Every template can have the following members.\n\n* `pattern` : `string` (pattern that triggers a completion, default \"[[\" )\n* `title` or `body`: `string` (the filter operators that gives the list of valid completions, default \"[all[tiddlers]!is[system]]\"). If you specify `body`, then the body of the tiddler will be inserted on selection.\n* `start` : `string` (when completion is chosen, start is put before the completion, default \"[[\")\n* `end` : `string` (when completion is chosen, end is put after the completion, default \"]]\")\n\n!! Current body of Config Tiddler\n\n{{$:/plugins/snowgoon88/edit-comptext/config}}\n\n"
}
}
}
{
"configuration": {
"caseSensitive" : false,
"maxMatch" : 8,
"minPatLength" : 2,
"triggerKeyCombination" : "^ "
},
"template": [{
"pattern": "[[",
"filter": "[all[tiddlers]!is[system]]",
"start": "[[",
"end": "]]"
}
]
}
{
"tiddlers": {
"$:/plugins/sq/editor-autolist/editor-operation-autolist": {
"text": "/*\\\ntitle: $:/plugins/sq/editor-autolist/editor-operation-autolist.js\ntype: application/javascript\nmodule-type: texteditoroperation\nText editor operation to automate syntax for lists\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"autolist\"] = function(event,operation) {\n\t\n\tvar lineStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\tvar lineEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selStart);\n\tvar line = operation.text.substring(lineStart,lineEnd);\t\n\t\n\tvar listPrefixRegex = /^((\\*|#)+).*/;\n\tvar match = line.match(listPrefixRegex);\n\t\n\tvar mode = event.paramObject? event.paramObject.mode : undefined;\n\t\n\t//ensure we only handle lines starting with * or #\n\tif(match != null && match[1]) {\n\t\t// check if we are handling indent level\n\t\tif(mode === \"indent\" || mode === \"unindent\") {\n\t\t\tvar indentRegExp = /^((\\*|#)+)(.*)$/;\n\t\t\tvar indentMatch = line.match(indentRegExp);\n\t\t\tif(indentMatch != null) {\n\t\t\t\t//check if the line has content\n\t\t\t\tvar content = (indentMatch[3].trim().length != 0) ? indentMatch[3].trim() : \"\";\n\t\t\t\toperation.cutStart = lineStart;\n\t\t\t\toperation.cutEnd = lineEnd;\n\t\t\t\tif(mode === \"indent\") {\t\t\t\t\n\t\t\t\t\t//indent a line\n\t\t\t\t\toperation.replacement = indentMatch[1] + indentMatch[2] + \" \" + content;\n\t\t\t\t\toperation.newSelStart = operation.selStart + 1;\n\t\t\t\t\toperation.newSelEnd = operation.selEnd + 1;\n\t\t\t\t} else if(mode === \"unindent\") {\n\t\t\t\t\t//unindent a line\n\t\t\t\t\toperation.replacement = indentMatch[1].substring(0,indentMatch[1].length - 1) + \" \" + content;\n\t\t\t\t\toperation.newSelStart = operation.selStart - 1;\n\t\t\t\t\toperation.newSelEnd = operation.selEnd - 1;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t//handle enter key, meaning new line\n\t\t\tvar trimmed = match[0].replace(/\\s\\s*$/, '');\n\t\t\tvar prefixRegEx = /^((\\*|#)+)$/;\n\t\t\tvar trimmedMatch = trimmed.match(prefixRegEx);\n\t\t\tif(trimmedMatch != null) {\n\t\t\t\t// the line only contains * or # characters and optional whitespace\n\t\t\t\t//terminate the list\n\t\t\t\toperation.replacement = \"\\n\";\n\t\t\t\toperation.cutStart = lineStart;\n\t\t\t\toperation.cutEnd = operation.selStart;\n\t\t\t\toperation.newSelStart = lineStart + 1;\n\t\t\t\toperation.newSelEnd = lineStart + 1;\n\t\t\t} else {\n\t\t\t\t// continue indent level on next line\n\t\t\t\tvar prefix = match[1];\n\t\t\t\toperation.replacement = \"\\n\" + prefix + \" \";\n\t\t\t\toperation.cutStart = operation.selStart;\n\t\t\t\toperation.cutEnd = operation.selStart;\n\t\t\t\t\n\t\t\t\t//check if there is trailing whitespace on the line we are on\n\t\t\t\tvar lineEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selStart);\n\t\t\t\tvar trailingText = operation.text.substring(operation.selStart,lineEnd);\n\t\t\t\tif(trailingText.trim().length == 0) {\n\t\t\t\t\toperation.cutEnd = lineEnd;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\toperation.newSelStart = operation.selStart + prefix.length + 2;\n\t\t\t\toperation.newSelEnd = operation.selEnd + prefix.length + 2;\n\t\t\t}\n\t\t}\n\t} else if(mode != \"indent\" && mode != \"unindent\") {\n\t\t// we need to manually add a linebreak for lines not starting with list markup\n\t\toperation.replacement = \"\\n\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.newSelStart = operation.selStart + 1;\n\t\toperation.newSelEnd = operation.selEnd + 1;\n\t}\n};\n\n})();",
"type": "application/javascript",
"title": "$:/plugins/sq/editor-autolist/editor-operation-autolist",
"tags": "",
"module-type": "texteditoroperation",
"modified": "20200804125155562",
"created": "20200803160356743"
},
"$:/plugins/sq/editor-autolist/EditorToolbar-autolist": {
"created": "20200803165453913",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"autolist\"\n/>\n",
"title": "$:/plugins/sq/editor-autolist/EditorToolbar-autolist",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((autolist-newline))",
"modified": "20200804124434675",
"icon": "$:/core/images/list-bullet",
"description": "",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "",
"button-classes": "sq-text-editor-btn-hidden"
},
"$:/plugins/sq/editor-autolist/styles": {
"text": ".sq-text-editor-btn-hidden {\n\tdisplay: none;\n}",
"title": "$:/plugins/sq/editor-autolist/styles",
"tags": "$:/tags/Stylesheet",
"modified": "20200803172530073",
"created": "20200803171440138"
},
"$:/plugins/sq/editor-autolist/EditorToolbar-autolist-indent": {
"created": "20200803213912954",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"autolist\"\n\tmode=\"indent\"\n/>\n",
"title": "$:/plugins/sq/editor-autolist/EditorToolbar-autolist-indent",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((autolist-indent))",
"modified": "20200804124659294",
"icon": "$:/core/images/list-bullet",
"description": "",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "",
"button-classes": "sq-text-editor-btn-hidden"
},
"$:/plugins/sq/editor-autolist/EditorToolbar-autolist-unindent": {
"created": "20200804122848593",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"autolist\"\n\tmode=\"unindent\"\n/>\n",
"title": "$:/plugins/sq/editor-autolist/EditorToolbar-autolist-unindent",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((autolist-unindent))",
"modified": "20200804124808496",
"icon": "$:/core/images/list-bullet",
"description": "",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "",
"button-classes": "sq-text-editor-btn-hidden"
},
"$:/config/shortcuts/autolist-newline": {
"created": "20200804124551033",
"title": "$:/config/shortcuts/autolist-newline",
"text": "Enter",
"modified": "20200804124551033"
},
"$:/config/shortcuts/autolist-indent": {
"created": "20200804124746636",
"title": "$:/config/shortcuts/autolist-indent",
"text": "Tab",
"modified": "20200804124746636"
},
"$:/config/shortcuts/autolist-unindent": {
"created": "20200804124833452",
"title": "$:/config/shortcuts/autolist-unindent",
"text": "shift-Tab",
"modified": "20200804124833452"
},
"$:/config/ShortcutInfo/autolist-newline": {
"created": "20200804124436341",
"text": "Add a newline and list markup if in a list",
"tags": "",
"title": "$:/config/ShortcutInfo/autolist-newline",
"modified": "20200804124533962"
},
"$:/config/ShortcutInfo/autolist-indent": {
"created": "20200804124703604",
"text": "Indent a line in a list",
"tags": "",
"title": "$:/config/ShortcutInfo/autolist-indent",
"modified": "20200804124720020"
},
"$:/config/ShortcutInfo/autolist-unindent": {
"created": "20200804124811668",
"text": "Unindent a line in a list",
"tags": "",
"title": "$:/config/ShortcutInfo/autolist-unindent",
"modified": "20200804124823040"
}
}
}
{
"tiddlers": {
"$:/_sq/Stories/config/openLinkDivert": {
"text": "bottom",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/openLinkDivert",
"modified": "20200422063802598",
"created": "20170629173808777"
},
"$:/_sq/Stories/config/showRiverDropZones": {
"text": "disable",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/showRiverDropZones",
"modified": "20200523213957947",
"created": "20200417170940547"
},
"$:/_sq/Stories/config/sidebaroverlaybreakpoint": {
"text": "1500px",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/sidebaroverlaybreakpoint",
"modified": "20200416182732404",
"created": "20170616192704225"
},
"$:/_sq/Stories/config/snippets/viewswitcher": {
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/_sq/Stories/config/Story2-storyview\">\n<div class=\"tc-chooser\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/_sq/Stories/config/Story2-storyview}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/snippets/viewswitcher",
"tags": "",
"modified": "20200416183434009",
"created": "20200416183108721"
},
"$:/_sq/Stories/config/Story2-storyview": {
"text": "classic",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/Story2-storyview",
"tags": "",
"modified": "20200417205214764",
"created": "20200415213157946"
},
"$:/_sq/Stories/config/twostorybreakpoint": {
"text": "1100px",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/twostorybreakpoint",
"modified": "20200416182753284",
"created": "20170616192701335"
},
"$:/_sq/Stories/CorePatch/ButtonDispatchMessage": {
"text": "var ButtonWidget = require(\"$:/core/modules/widgets/button.js\").button;\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event, navigateFromNode: this});\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nButtonWidget.prototype.invokeActions = function(triggeringWidget,event) {\nevent.navigateFromNode = this;\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/CorePatch/ButtonDispatchMessage",
"tags": "",
"module-type": "startup",
"modified": "20200430193633599",
"created": "20170616103202530"
},
"$:/_sq/Stories/divertTiddlerEditMacro": {
"text": "\\define divertTiddlerEditButton()\n<$set name=\"original\" value={{!!draft.title}}>\n<$set name=\"otherStoryList\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<$set name=\"otherHistoryList\" filter=\"[enlist{$:/_sq/Stories/HistoriesList!!list}] -[<tv-history-list>]\" select=\"0\">\n\t<$button class=<<tv-config-toolbar-class>> tooltip=\"Divert this tiddler to the other story for viewing\">\n\t\t<$navigator story=<<otherStoryList>> history=<<otherHistoryList>> >\n\t\t\t<$action-navigate $to=<<original>> />\n\t\t</$navigator>\n\t\t<span class=\"sq-button-divert-right sq-button-divert\">{{$:/_sq/Stories/icons/divert-right.svg}}</span><span class=\"sq-button-divert-left sq-button-divert\">{{$:/_sq/Stories/icons/divert-left.svg}}</span>\n\t</$button>\n</$set>\n</$set>\n</$set>\n\\end\n\n<<divertTiddlerEditButton>>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/divertTiddlerEditMacro",
"tags": "$:/tags/EditToolbar",
"modified": "20200523202347182",
"list-before": "$:/core/ui/Buttons/delete",
"description": "divert right/left",
"created": "20170616074148780",
"caption": "{{$:/_sq/Stories/icons/divert-right.svg}}"
},
"$:/_sq/Stories/divertTiddlerMacro": {
"created": "20170609055347900",
"text": "\\define divertTiddlerButton()\n<$set name=\"otherStoryList\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<$set name=\"otherHistoryList\" filter=\"[enlist{$:/_sq/Stories/HistoriesList!!list}] -[<tv-history-list>]\" select=\"0\">\n\t<$button class=<<tv-config-toolbar-class>> tooltip=\"Divert this tiddler to the other story\">\n\t\t<$navigator story=<<tv-story-list>> history=<<tv-history-list>> >\n\t\t\t<$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>> />\n\t\t</$navigator>\n\t\t<$navigator story=<<otherStoryList>> history=<<otherHistoryList>> >\n\t\t\t<$action-navigate $to=<<currentTiddler>> />\n\t\t</$navigator>\t\n\t\t<span class=\"sq-button-divert-right sq-button-divert\">{{$:/_sq/Stories/icons/divert-right.svg}}</span><span class=\"sq-button-divert-left sq-button-divert\">{{$:/_sq/Stories/icons/divert-left.svg}}</span>\n\t</$button>\n</$set>\n</$set>\n\\end\n\n<<divertTiddlerButton>>\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/divertTiddlerMacro",
"tags": "$:/tags/ViewToolbar",
"modified": "20200806034422564",
"list-before": "",
"description": "Divert left/right",
"caption": "{{$:/_sq/Stories/icons/divert-right.svg}} divert left/right"
},
"$:/_sq/Stories/EditTiddlerHook": {
"text": "$tw.hooks.addHook(\"th-editing-tiddler\", function(event) {\n\tvar targetTitle = event.tiddlerTitle;\n\tvar stories = $tw.wiki.getTiddlerList('$:/_sq/Stories/StoriesList');\n\tvar draftTitle = $tw.wiki.findDraft(targetTitle);\n\tvar shiftKey = (event && event.event) ? event.event.shiftKey : null;\n\n\t//if !draftTitle, its not open anywhere\n\t//cant be open without existing, but can exist without being opened\n\n\tif(!draftTitle && !shiftKey) {\n\t\treturn true;\n\t}\n\n\tvar node = event.navigateFromNode;\n\tvar thisStory = node.getVariable(\"tv-story-title\");\n\tvar otherStory = (stories[0] == thisStory)? stories[1] : stories[0];\n\tvar otherStoryList = $tw.wiki.getTiddlerList(otherStory);\n\n\tif(otherStoryList.indexOf(draftTitle) > -1) {\n\t\talert(\"This tiddler is already open for editing in the other story\");\n\t\treturn false;\n\t}\n\n\tvar generateDraftTitle = function(title) {\n\t\tvar c = 0,\n\t\tdraftTitle;\n\t\tdo {\n\t\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\t\tc++;\n\t\t} while($tw.wiki.tiddlerExists(draftTitle));\n\t\treturn draftTitle;\n\t};\n\t\n\tif(shiftKey) {\n //open in other story\n\t\tif(!draftTitle) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(targetTitle);\n\t\t\tdraftTitle = generateDraftTitle(targetTitle);\n\t\t\tvar draftTiddler = new $tw.Tiddler(\n\t\t\t\ttiddler,\n\t\t\t\t{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\t\"draft.of\": targetTitle\n\t\t\t\t},\n\t\t\t\t$tw.wiki.getModificationFields()\n\t\t\t);\n\t\t\t$tw.wiki.addTiddler(draftTiddler);\n\t\t}\n\t\tvar otherStoryTiddler = $tw.wiki.getTiddler(otherStory);\n\t\totherStoryList.splice(0 ,0, draftTitle);\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: otherStory},\n\t\t\totherStoryTiddler,\n\t\t\t{list:otherStoryList}\n\t\t));\n\t\treturn false;\n\t}\n\n\treturn true;\n});\n",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/EditTiddlerHook",
"tags": "",
"module-type": "startup",
"modified": "20200729135111179",
"created": "20170616091547338"
},
"$:/_sq/Stories/HistoriesList": {
"text": "",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/HistoriesList",
"tags": "",
"modified": "20200414145004336",
"list": "$:/_sq/Stories/Story2HistoryList $:/HistoryList",
"created": "20170610091606312"
},
"$:/_sq/Stories/icons/bars-empty.svg": {
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 100 100\" version=\"1.1\" x=\"0px\" y=\"0px\" class=\"tc-image-bars-empty tc-image-button\" width=\"40pt\" height=\"40pt\"><title>Single fold</title><desc>Created with Sketch.</desc><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g stroke=\"#000000\"><rect stroke-width=\"2\" x=\"17\" y=\"17\" width=\"66\" height=\"66\" rx=\"2\"/><path d=\"M50.5,18.5 L50.5,80.789646\" stroke-linecap=\"round\" stroke-dasharray=\"2,3,2,3\"/></g></g></svg>",
"bag": "default",
"revision": "0",
"type": "image/svg+xml",
"title": "$:/_sq/Stories/icons/bars-empty.svg",
"tags": "",
"modified": "20200414145004334",
"created": "20170617203017607"
},
"$:/_sq/Stories/icons/bars.svg": {
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 100 100\" xml:space=\"preserve\" class=\"tc-image-bars tc-image-button\" width=\"20\" height=\"20\" ><path d=\"M41.667,0h-37.5C0,0,0,0,0,4.167v91.667C0,100,0,100,4.167,100h37.5c4.167,0,4.167,0,4.167-4.167V4.167 C45.833,0,45.833,0,41.667,0z M95.833,0h-37.5c-4.167,0-4.167,0-4.167,4.167v91.667c0,4.167,0,4.167,4.167,4.167h37.5 C100,100,100,100,100,95.833V4.167C100,0,100,0,95.833,0z\"/></svg>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/icons/bars.svg",
"modified": "20200414145004333",
"created": "20170608202154511"
},
"$:/_sq/Stories/icons/divert-left.svg": {
"text": "<svg class=\"tc-image-button\" x=\"0px\" y=\"0px\" width=\"30pt\" height=\"30pt\" viewBox=\"0 0 100 125\" ><path d=\"M7.197,44.697l27.5-27.5c2.929-2.929,7.678-2.929,10.607,0c2.929,2.929,2.929,7.678,0,10.607L30.607,42.5H70 h0c5.118,0,10.237,1.953,14.142,5.858c7.81,7.81,7.81,20.474,0,28.284c-2.929,2.929-7.678,2.929-10.607,0 c-2.929-2.929-2.929-7.678,0-10.607c1.953-1.953,1.953-5.118,0-7.071C72.559,57.988,71.28,57.5,70,57.5h0v0H30.607l14.697,14.697 c2.929,2.929,2.929,7.678,0,10.607c-2.929,2.929-7.678,2.929-10.607,0L16.036,64.142l-8.839-8.839 C4.268,52.374,4.268,47.626,7.197,44.697z\"/></svg>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/icons/divert-left.svg",
"modified": "20200414145004330",
"created": "20170609061834078"
},
"$:/_sq/Stories/icons/divert-right.svg": {
"text": "<svg class=\"tc-image-button\" x=\"0px\" y=\"0px\" width=\"30pt\" height=\"30pt\" viewBox=\"0 0 100 125\" ><path d=\"M92.803,44.697l-27.5-27.5c-2.929-2.929-7.678-2.929-10.607,0c-2.929,2.929-2.929,7.678,0,10.607 L69.393,42.5H30h0c-5.118,0-10.237,1.953-14.142,5.858c-7.81,7.81-7.81,20.474,0,28.284c2.929,2.929,7.678,2.929,10.607,0 c2.929-2.929,2.929-7.678,0-10.607c-1.953-1.953-1.953-5.118,0-7.071C27.441,57.988,28.72,57.5,30,57.5h0v0h39.393L54.697,72.197 c-2.929,2.929-2.929,7.678,0,10.607s7.678,2.929,10.607,0l18.661-18.661l8.839-8.839C95.732,52.374,95.732,47.626,92.803,44.697z\"/></svg>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/icons/divert-right.svg",
"modified": "20200414145004328",
"created": "20170609061824401"
},
"$:/_sq/Stories/LinkKeybindings": {
"text": "$tw.hooks.addHook('th-navigating', function(event) {\n\t//override core behaviour when shift key was used\n\tif( ((event.event && event.event.shiftKey) || (event.shiftKey && event)) && event.navigateTo) {\n\t\tvar stories = $tw.wiki.getTiddlerList('$:/_sq/Stories/StoriesList');\n\t\tvar node = event.navigateFromNode;\n\t\tvar thisStory = node.getVariable(\"tv-story-list\");\n\t\tvar otherStory = (stories[0] == thisStory)? stories[1] : stories[0];\t\n\t\tvar storyList = $tw.wiki.getTiddlerList(otherStory);\n\t\tvar slot = storyList.indexOf(event.navigateTo);\n\t\t\n\t\tif(slot < 0){\n\t\t\tif($tw.wiki.getTiddlerText(\"$:/config/Navigation/openLinkFromOutsideRiver\") === \"bottom\") {\n\t\t\t\n\t\t\t\tstoryList.splice(storyList.length, 0, event.navigateTo);\n\t\t\t} else {\n\t\t\t\tstoryList.splice(0, 0, event.navigateTo);\n\t\t\t}\n\t\t\tvar storyTiddler =\t$tw.wiki.getTiddler(otherStory);\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t\t{title: otherStory},\n\t\t\t\tstoryTiddler,\n\t\t\t\t{list:storyList}\n\t\t\t));\n\t\t}\n\t\tvar histories = $tw.wiki.getTiddlerList('$:/_sq/Stories/HistoriesList');\n\t\tvar thisHistory = node.getVariable(\"tv-history-list\");\n\t\tvar otherHistory = (histories[0] == thisHistory) ? histories[1] : histories[0];\t\t\n\t\t$tw.wiki.addToHistory(event.navigateTo,event.navigateFromClientRect, otherHistory); \n\t\tif($tw.wiki.getTiddlerText(\"$:/config/_sq/Stories/story2\") === \"no\") {\n\t\t\t$tw.wiki.setText(\"$:/config/_sq/Stories/story2\",undefined,undefined,\"yes\",undefined);\n\t\t}\n\t\tevent.navigateTo = false;\n\t}\n\treturn event;\n});",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/_sq/Stories/LinkKeybindings",
"tags": "",
"module-type": "startup",
"modified": "20200422065240983",
"created": "20170610071940508"
},
"$:/_sq/Stories/startup-actions": {
"text": "<$action-deletetiddler $tiddler=\"$:/_sq/Stories/Story2HistoryList\"/>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/startup-actions",
"tags": "$:/tags/StartupAction/Browser",
"modified": "20200417172054199",
"created": "20200417171756341"
},
"$:/_sq/Stories/Stories.css": {
"text": "\\define if-fluid-fixed(text,disableText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n</$reveal>\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"nomatch\" text=\"fluid-fixed\">\n$disableText$\n</$reveal>\n\\end\n\n\\define if-two-stories(twoStoryCommon, twoStorySidebar twoStoryNoSidebar, oneStoryText)\n<$reveal default=\"yes\" type=\"match\" text={{{[{$:/_sq/Stories/Story2StoryList!!list}length[]match[0]then[no]] ~[{$:/config/_sq/Stories/story2}]}}}>\n$twoStoryCommon$\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">\n$twoStorySidebar$\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$twoStoryNoSidebar$\n</$reveal>\n</$reveal>\n<$reveal default=\"yes\" type=\"nomatch\" text={{{[{$:/_sq/Stories/Story2StoryList!!list}length[]match[0]then[no]] ~[{$:/config/_sq/Stories/story2}]}}}>\n$oneStoryText$\n</$reveal>\n\\end\n\n\n<pre>\n\n.tc-page-container.tc-page-view-zoomin .tc-storyview-zoomin-tiddler {\n\twidth: 100%;\n\tposition: relative;\n}\n\n.tc-btn-storytwotoggle {\n\tpadding:0px;\n}\n\n.tc-btn-storytwotoggle img {\n\twidth: 30px;\n\theight: 30px;\n}\n\n.tc-sidebar-lists .tc-btn-storytwotoggle-bars {\n\tfont-size: 1.5em;\n}\n\n.tc-sidebar-lists .tc-btn-storytwotoggle-bars svg {\n\tfill: #aaa;\n}\n\n.tc-story-river .sq-button-divert-left{\n\tdisplay: none;\n}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar{width:10px}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar-thumb{background:#a5a5a5;border-radius:10px}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar-thumb:hover{background:#6f6f6f}\n\n.sq-story-rivertwo-scrollable::-webkit-scrollbar-thumb:active{background:#333}\n\n\t.tc-sidebar-tab-open.sq-sidebar-open .tc-btn-invisible.tc-btn-mini {\n\t\tpadding: 0 0.2em;\n\t}\n\n\t.tc-sidebar-tab-open.sq-sidebar-open .tc-sidebar-tab-open-item {\n\t\tpadding: 0.1em;\n\t}\n\t\n\thtml body.tc-body .tc-sidebar-tab-open.sq-sidebar-open a.tc-tiddlylink {\n\t\tfont-weight: 400;\n\t}\n\n.tc-sidebar-tab-open.sq-sidebar-open a.tc-tiddlylink {\n\tcolor:<<color very-muted-foreground>>;\n}\n\n.tc-sidebar-tab-open.sq-sidebar-open a.tc-tiddlylink:hover {\n\tcolor: <<color sidebar-tiddler-link-foreground-hover>>;\n}\n\n<<if-two-stories twoStoryCommon:\"\"\"\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n.sq-story-rivertwo-scrollable {\n\tposition: fixed;\n\ttop: calc(1em + {{$:/themes/tiddlywiki/vanilla/metrics/storytop}});\n\tbottom: 0;\n}\n\n.tc-story-river.sq-story-rivertwo .tc-tiddler-frame {\n\tmargin-right: 1em !important;\n\tmargin-left: 0;\n\tfont-size: {{$:/config/sq/Stories/story2/fontsize-title}}px;\n}\n\n.tc-story-river.sq-story-rivertwo .tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/config/sq/Stories/story2/fontsize-body}}px;\n}\n\n.tc-story-river {\n\tfloat: left;\n\tmargin-right: 0;\n\tpadding-right: 0em;\n\tpadding-top: 0em;\n}\n\nbody .tc-story-river {\n\tpadding: 0 1.5em 1em 0em !important;\n\tmin-height: 500px; /** so story 2 doesnt collapse to left when no tiddler in story 1***/ \n}\n\nbody .tc-story-river.tc-storytwo-river { padding-right:0em !important; }\n\nbody section.story-backdrop p:nth-child(1) {\n\tmargin:0;\n\tpadding:0;\n}\n\n.tc-story-river .sq-button-divert-right{\n\tdisplay:inline-block;\n}\n\n.tc-story-river .sq-button-divert-left{\n\tdisplay: none;\n}\n\n.tc-story-river.sq-story-rivertwo .sq-button-divert-left{\n\tdisplay:inline-block;\n}\n\n.tc-story-river.sq-story-rivertwo .sq-button-divert-right{\n\tdisplay: none;\n}\n\n.sq-storydropzone {\n\tpadding: 0.5em;\n\tborder:1px solid #bbb;\n\tcolor: #ccc;\n\ttext-align: center;\n\tposition: relative;\n\twidth: calc(100% - 45px);\n\t-moz-box-shadow: inset 0 0 10px #ccc;\n\t-webkit-box-shadow: inset 0 0 10px #ccc;\n\tbox-shadow: inset 0 0 10px #ccc;\n\tmargin-bottom: 1em;\n}\n\n.sq-storydropzone-newtiddlerbutton {\n\twidth: 40px;\n\tfloat: right;\n\tpadding: 0.2em 0.5em 0.5em 0.5em;\n\tmargin-top: 0em;\n\tmargin-right: 0.2em;\n}\n\n.tc-tiddler-frame {\n\tpadding-right:28px;\n}\n\n}\n\"\"\" twoStorySidebar:\"\"\"\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n.tc-story-river {\n\twidth: calc((100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}} - {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}} + 14px)*{{$:/config/sq/Stories/storyRiverRatio}}/100);\n}\n\n.sq-storydropzone {\n\tpadding: 0.5em;\n\tborder:1px solid #bbb;\n\tcolor: #ccc;\n\ttext-align: center;\n}\n\n.sq-story-rivertwo-scrollable, .sq-story-rivertwo {\n\twidth: calc((100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}} - {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}} + 14px)*(100 - {{$:/config/sq/Stories/storyRiverRatio}})/100);\n}\n}\n\n.tc-sidebar-scrollable {\n\twidth: calc({{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}} - 14px);\n\tpadding-left: 28px;\n}\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) and (max-width: {{$:/_sq/Stories/config/sidebaroverlaybreakpoint}}) {\n\t\n\t.tc-story-river {\n\t\twidth: calc((100% - 1em)*{{$:/config/sq/Stories/storyRiverRatio}}/100);\n\t}\n\n\t.sq-story-rivertwo {\n\t\twidth: calc((100% - 1em)*(100 - {{$:/config/sq/Stories/storyRiverRatio}})/100);\n\t}\n\t\n\n\t.sq-story-rivertwo-scrollable {\n\t\twidth: calc((100% - 0.5em)*(100 - {{$:/config/sq/Stories/storyRiverRatio}})/100);\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tz-index:999;\n\t\tbackground:#eee;\n\t\tborder-left: 1px solid #ddd;\n\t}\n\n}\n\n\"\"\" twoStoryNoSidebar:\"\"\"\n\n.tc-story-river.sq-story-rivertwo {\n\tpadding-right: 0.5em;\n}\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n.tc-story-river {\n\twidth: calc((100% - 1em)*{{$:/config/sq/Stories/storyRiverRatio}}/100);\n}\n\n.sq-story-rivertwo {\n\twidth: calc((100% - 1em)*(100 - {{$:/config/sq/Stories/storyRiverRatio}})/100);\n}\n}\n\n.sq-story-rivertwo-scrollable {\n\twidth: calc((100% - 0.5em)*(100 - {{$:/config/sq/Stories/storyRiverRatio}})/100);\n}\n\n\n\n\n}\n\n@media (min-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) and (max-width: {{$:/_sq/Stories/config/sidebaroverlaybreakpoint}}) {\n\t.tc-sidebar-scrollable {\n\t\tdisplay:none;\n\t}\n}\n\n\"\"\" oneStoryText: \"\"\"\n.sq-twostoriesonly {\n\tdisplay: none;\n}\n\n.tc-story-river {\n\tpadding-top: 15px;\n}\n\n\"\"\"\n>>\n\n@media (max-width: {{$:/_sq/Stories/config/twostorybreakpoint}}) {\n\t.sq-twostoriesonly {\n\t\tdisplay: none;\n\t}\n\n\t.tc-btn-storytwotoggle {\n\t\tdisplay: none;\n\t}\n\n\t.sq-stories-disabled {\n\t\tdisplay: none;\n\t}\n\n<<if-two-stories twoStoryCommon:\"\"\"\n\n\t.tc-storytwo-river {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\twidth: auto;\n\t\tpadding-top: 15px;\n\t}\n\n\t.tc-story-river .sq-button-divert {\n\t\tdisplay: none;\n\t}\n\n\n\t.sq-story-rivertwo-scrollable {\n\t\tdisplay:none;\n\t}\n\n\n\"\"\" twoStorySidebar:\"\"\"\n\t.tc-story-river {\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tborder-left: 0;\n\t\tz-index: inherit;\n\t\tbackground: transparent;\n\t}\n\"\"\" twoStoryNoSidebar: \"\"\"\n\t.tc-story-river {\n\t\tpadding-right: 2em;\n\t}\n\"\"\"\n\n>>\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-story-river {\nmargin-right: 0;\n}\n}\n\n\n</pre>\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Stories.css",
"tags": "$:/tags/Stylesheet",
"modified": "20200731105030883",
"created": "20170608102837192"
},
"$:/_sq/Stories/StoriesList": {
"text": "",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/StoriesList",
"tags": "",
"modified": "20200414145004320",
"list": "$:/_sq/Stories/Story2StoryList $:/StoryList",
"created": "20170610072420739"
},
"$:/_sq/Stories/Story2StoryList": {
"title": "$:/_sq/Stories/Story2StoryList",
"text": "",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"modified": "20200731105210982",
"list": "$:/plugins/sq/Stories/changelog $:/config/sq/Stories/story2/fontsize-title $:/config/sq/Stories/storyRiverRatio [[Pack stories to plugin]]",
"created": "20170615140314952"
},
"$:/_sq/Stories/Templates/RiverDropZone": {
"text": "\\define drop-actions()\n<$action-listops $tiddler=<<otherStoryList>> $subfilter=\"+[remove<actionTiddler>]\"/> \n<$action-navigate $to=<<actionTiddler>>/>\n\\end\n<$reveal state=\"$:/_sq/Stories/config/showRiverDropZones\" text=\"enable\" type=\"match\" default=\"disable\">\n<div class=\"sq-storydropzone-container sq-twostoriesonly\">\n\t<div class=\"sq-storydropzone-newtiddlerbutton tc-page-controls\">\n\t\t<$transclude tiddler=\"$:/core/ui/Buttons/new-tiddler\"/>\n\t</div>\n\t<div style=\"position: relative; \" class=\"sq-storydropzone sq-twostoriesonly\">\n\t\t<$set name=\"otherStoryList\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n\t\t<$droppable actions=<<drop-actions>>>\n\t\t\t<div class=\"tc-droppable-placeholder\">\n\t\t\t \n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\tDrop link here to open\n\t\t\t</div>\n\t\t</$droppable>\n\t\t</$set>\n\t</div>\n</div>\n</$reveal>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/RiverDropZone",
"tags": "$:/tags/AboveStory",
"modified": "20200523213430940",
"list-before": "$:/core/ui/PageTemplate/story",
"created": "20170609191118712"
},
"$:/_sq/Stories/Templates/Story2Template": {
"text": "\\whitespace trim\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"match\" text=\"yes\" default=\"no\" retain=\"yes\" animate=\"no\" tag=\"section\" class=\"tc-story-river tc-storytwo-river sq-story-rivertwo\">\n\n<$navigator story=\"$:/_sq/Stories/Story2StoryList\" history=\"$:/_sq/Stories/Story2HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n<$scrollable class=\"sq-story-rivertwo-scrollable\" fallthrough=\"no\">\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/_sq/Stories/Story2StoryList]]\" history=\"$:/_sq/Stories/Story2HistoryList\" template={{{[[$:/config/sq/Stories/story2/ViewTemplate]get[text]!is[blank]] ~[[$:/config/ui/ViewTemplate]get[text]]}}} editTemplate={{{[[$:/config/sq/Stories/story2/EditTemplate]get[text]!is[blank]] ~[[$:/config/ui/EditTemplate]get[text]]}}} storyview={{$:/_sq/Stories/config/Story2-storyview}}>\n\n<div>\n<$transclude/>\n</div>\n\n</$list>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</$scrollable>\n</$navigator>\n\n</$reveal>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/Story2Template",
"tags": "$:/tags/PageTemplate",
"modified": "20200730045003939",
"list-after": "$:/core/ui/PageTemplate/story",
"created": "20170608171610013"
},
"$:/_sq/Stories/Templates/StoryToggleMenu": {
"text": "<div class=\"sq-twostoriesonly\">\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"nomatch\" text=\"no\" default=\"no\">\n<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"no\" tooltip=\"Hide right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle\">{{$:/_sq/Stories/icons/bars-empty.svg}} </$button> Hide right column\n</$reveal>\n</div>\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"match\" text=\"no\" default=\"no\">\n<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"yes\" tooltip=\"Show right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle tc-btn-storytwotoggle-bars\">{{$:/_sq/Stories/icons/bars.svg}}</$button> <span class=\"sq-stories-disabled\">Show right column</span>\n</$reveal>\n",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/StoryToggleMenu",
"modified": "20200425133224298",
"created": "20170608172531552"
},
"$:/_sq/Stories/Templates/StoryTogglePageControl": {
"text": "<span class=\"sq-twostoriesonly\">\n\t<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"nomatch\" text=\"no\" default=\"no\">\n\t\t<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"no\" tooltip=\"Hide right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle\">{{$:/_sq/Stories/icons/bars-empty.svg}} </$button>\n\t</$reveal>\n</span>\n<$reveal state=\"$:/config/_sq/Stories/story2\" type=\"match\" text=\"no\" default=\"no\">\n\t<$button set=\"$:/config/_sq/Stories/story2\" setTo=\"yes\" tooltip=\"Show right column\" aria-label=\"\" class=\"tc-btn-invisible tc-btn-storytwotoggle\">{{$:/_sq/Stories/icons/bars.svg}}</$button>\n</$reveal>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/Templates/StoryTogglePageControl",
"tags": "$:/tags/PageControls",
"modified": "20200425133303133",
"description": "Show right column for second story",
"created": "20170617182141154",
"caption": "{{$:/_sq/Stories/icons/bars.svg}} Show right column"
},
"$:/_sq/Stories/Story2HistoryList": {
"created": "20200425131030296",
"text": "[\n {\n \"title\": \"$:/config/Tiddlers/TitleLinks\",\n \"fromPageRect\": {\n \"top\": 249.296875,\n \"left\": 1230,\n \"width\": 183.515625,\n \"right\": 1413.515625,\n \"bottom\": 269.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerMacro\",\n \"fromPageRect\": {\n \"top\": 623.296875,\n \"left\": 1230,\n \"width\": 220.390625,\n \"right\": 1450.390625,\n \"bottom\": 643.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerMacro\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerMacro\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\",\n \"fromPageRect\": {\n \"top\": 319.296875,\n \"left\": 1230,\n \"width\": 245.53125,\n \"right\": 1475.53125,\n \"bottom\": 339.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\",\n \"fromPageRect\": {\n \"top\": 537.296875,\n \"left\": 1230,\n \"width\": 283.546875,\n \"right\": 1513.546875,\n \"bottom\": 557.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\",\n \"fromPageRect\": {\n \"top\": 297.296875,\n \"left\": 1230,\n \"width\": 326.734375,\n \"right\": 1556.734375,\n \"bottom\": 317.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryToggleMenu'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryToggleMenu\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/Templates/StoryTogglePageControl'\"\n },\n {\n \"title\": \"$:/_sq/Stories/Templates/StoryTogglePageControl\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"$:/core/ui/SideBar/Open\",\n \"fromPageRect\": {\n \"top\": 337.296875,\n \"left\": 1230,\n \"width\": 161.8125,\n \"right\": 1391.8125,\n \"bottom\": 357.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/core/ui/SideBar/Open'\"\n },\n {\n \"title\": \"$:/core/ui/SideBar/Open\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/divertTiddlerEditMacro'\"\n },\n {\n \"title\": \"$:/_sq/Stories/divertTiddlerEditMacro\"\n },\n {\n \"title\": \"TiddlyBlink\"\n },\n {\n \"title\": \"Stories-overview\",\n \"fromPageRect\": {\n \"top\": 1035.921875,\n \"left\": 1190,\n \"width\": 101.6875,\n \"right\": 1291.6875,\n \"bottom\": 1054.921875,\n \"height\": 19\n }\n },\n {\n \"title\": \"$:/.giffmex/Customize.TiddlyBlink\",\n \"fromPageRect\": {\n \"top\": 735.625,\n \"left\": 107.5,\n \"width\": 145.171875,\n \"right\": 252.671875,\n \"bottom\": 755.625,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/.giffmex/meta/hack.tiddlyblink\",\n \"fromPageRect\": {\n \"top\": 757.625,\n \"left\": 107.5,\n \"width\": 129.59375,\n \"right\": 237.09375,\n \"bottom\": 777.625,\n \"height\": 20\n }\n },\n {\n \"title\": \"TiddlyBlink\",\n \"fromPageRect\": {\n \"top\": 161.296875,\n \"left\": 221.953125,\n \"width\": 71.859375,\n \"right\": 293.8125,\n \"bottom\": 181.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"TiddlyBlink\",\n \"fromPageRect\": {\n \"top\": 161.296875,\n \"left\": 221.953125,\n \"width\": 71.859375,\n \"right\": 293.8125,\n \"bottom\": 181.296875,\n \"height\": 20\n }\n },\n {\n \"title\": \"Stories-overview\",\n \"fromPageRect\": {}\n },\n {\n \"title\": \"Draft of 'Stories-overview'\"\n },\n {\n \"title\": \"Stories-overview\"\n },\n {\n \"title\": \"Draft of 'Stories-overview'\"\n },\n {\n \"title\": \"Stories-overview\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Plugin maker\",\n \"fromPageRect\": {\n \"top\": 481.34375,\n \"left\": 2259,\n \"width\": 80.890625,\n \"right\": 2339.890625,\n \"bottom\": 500.34375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of 'Plugin maker'\"\n },\n {\n \"title\": \"Plugin maker\"\n },\n {\n \"title\": \"Stories\",\n \"fromPageRect\": {\n \"top\": 296.84375,\n \"left\": 2259,\n \"width\": 41.453125,\n \"right\": 2300.453125,\n \"bottom\": 315.84375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Plugin maker\",\n \"fromPageRect\": {\n \"top\": 501.34375,\n \"left\": 2259,\n \"width\": 80.890625,\n \"right\": 2339.890625,\n \"bottom\": 520.34375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of 'Plugin maker'\"\n },\n {\n \"title\": \"Plugin maker\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Stories\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\",\n \"fromPageRect\": {\n \"top\": 360.171875,\n \"left\": 1245,\n \"width\": 182.21875,\n \"right\": 1427.21875,\n \"bottom\": 379.171875,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/config/Settings'\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\",\n \"fromPageRect\": {\n \"top\": 360.171875,\n \"left\": 1245,\n \"width\": 182.21875,\n \"right\": 1427.21875,\n \"bottom\": 379.171875,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/config/Settings'\"\n },\n {\n \"title\": \"$:/_sq/Stories/config/Settings\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Stories\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"Stories\"\n },\n {\n \"title\": \"Draft of 'Stories'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories\",\n \"fromPageRect\": {\n \"top\": 463.734375,\n \"left\": 2321.1875,\n \"width\": 476.734375,\n \"right\": 2797.921875,\n \"bottom\": 482.734375,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"Stories-overview\"\n },\n {\n \"title\": \"Draft of 'Stories changelog'\"\n },\n {\n \"title\": \"Stories changelog\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories\",\n \"fromPageRect\": {\n \"top\": 573.203125,\n \"left\": 2255.625,\n \"width\": 127.640625,\n \"right\": 2383.265625,\n \"bottom\": 592.203125,\n \"height\": 19\n }\n },\n {\n \"title\": \"$:/_sq/Stories/widgets/action-addtohistory\",\n \"fromPageRect\": {\n \"top\": 1023.453125,\n \"left\": 1194.5,\n \"width\": 263.703125,\n \"right\": 1458.203125,\n \"bottom\": 1042.453125,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"$:/_sq/Stories/widgets/action-addtohistory\",\n \"fromPageRect\": {\n \"top\": 653.453125,\n \"left\": 1194.5,\n \"width\": 263.703125,\n \"right\": 1458.203125,\n \"bottom\": 672.453125,\n \"height\": 19\n }\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories'\"\n },\n {\n \"title\": \"Draft of 'Stories changelog'\"\n },\n {\n \"title\": \"Stories_changelog\"\n },\n {\n \"title\": \"Draft of 'Stories_changelog'\"\n },\n {\n \"title\": \"$:/_sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/_sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"$:/config/_sq/Stories/story2/EditTemplate\",\n \"fromPageRect\": {\n \"top\": 242.78125,\n \"left\": 1226.5,\n \"width\": 273.875,\n \"right\": 1500.375,\n \"bottom\": 262.78125,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"Draft of 'Pack stories to plugin'\"\n },\n {\n \"title\": \"Pack stories to plugin\"\n },\n {\n \"title\": \"$:/config/sq/Stories/story2/EditTemplate\",\n \"fromPageRect\": {\n \"top\": 242.78125,\n \"left\": 1226.5,\n \"width\": 267.65625,\n \"right\": 1494.15625,\n \"bottom\": 262.78125,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"$:/config/sq/Stories/storyRiverRatio\",\n \"fromPageRect\": {\n \"top\": 330.78125,\n \"left\": 1302.75,\n \"width\": 235.375,\n \"right\": 1538.125,\n \"bottom\": 350.78125,\n \"height\": 20\n }\n },\n {\n \"title\": \"$:/config/sq/Stories/story2-fontsize\",\n \"fromPageRect\": {\n \"top\": 220.78125,\n \"left\": 1522.875,\n \"width\": 234.171875,\n \"right\": 1757.046875,\n \"bottom\": 240.78125,\n \"height\": 20\n }\n },\n {\n \"title\": \"Draft of '$:/config/sq/Stories/story2-fontsize'\"\n },\n {\n \"title\": \"$:/config/sq/Stories/story2/fontsize-title\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n },\n {\n \"title\": \"Draft of '$:/plugins/sq/Stories/changelog'\"\n },\n {\n \"title\": \"$:/plugins/sq/Stories/changelog\"\n }\n]",
"type": "application/json",
"current-tiddler": "$:/plugins/sq/Stories/changelog",
"modified": "20200806034532118",
"title": "$:/_sq/Stories/Story2HistoryList",
"revision": "0",
"bag": "default"
},
"$:/core/ui/SideBar/Open": {
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n<$action-listops $tiddler=<<_otherStory>> $subfilter=\"-[<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n\\define open-tiddler-list()\n<div class=\"tc-sidebar-tab-open sq-sidebar-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n\\end\n\n\n''Left Column''\n<$set name=\"_otherStory\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<<open-tiddler-list>>\n</$set>\n<div class=\"sq-twostoriesonly\">\n\n---\n\n''Right Column''\n<$set name=\"_otherStory\" value=<<tv-story-list>> >\n<$set name=\"tv-story-list\" filter=\"[enlist{$:/_sq/Stories/StoriesList!!list}] -[<tv-story-list>]\" select=\"0\">\n<$set name=\"tv-history-list\" filter=\"[enlist{$:/_sq/Stories/HistoriesList!!list}] -[<tv-history-list>]\" select=\"0\">\n<$navigator story=<<tv-story-list>> history=<<tv-history-list>> >\n<<open-tiddler-list>>\n</$navigator>\n</$set>\n</$set>\n</$set>\n\n</div>\n\n---\n\n<$transclude tiddler=\"$:/_sq/Stories/Templates/StoryToggleMenu\"/>",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"modified": "20200425133519499",
"created": "20170609174945253",
"caption": "{{$:/language/SideBar/Open/Caption}}"
},
"$:/config/_sq/Stories/story2": {
"text": "yes",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/config/_sq/Stories/story2",
"modified": "20200731104006221",
"created": "20170615081040584"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"text": "fluid-fixed",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"tags": "tb",
"modified": "20200416185419828",
"created": "20200127172539001"
},
"$:/plugins/sq/Stories/settings": {
"text": "\\define switchStoryView(storyview,default)\n<$select tiddler='$storyview$' default='$default$'>\n<option value=\"zoomin\"><$text text='one tiddler only'/></option>\n<option value=\"classic\"><$text text='multiple tiddlers'/></option>\n</$select>\n\\end\n\n|[[Minimum width to show the second story|$:/_sq/Stories/config/twostorybreakpoint]] |<$edit-text tiddler=\"$:/_sq/Stories/config/twostorybreakpoint\" default=\"\" tag=\"input\"/> |\n|[[Minimum width to show non-overlapping sidebar|$:/_sq/Stories/config/sidebaroverlaybreakpoint]] |<$edit-text tiddler=\"$:/_sq/Stories/config/sidebaroverlaybreakpoint\" default=\"\" tag=\"input\"/> |\n|[[Open tiddlers at top or bottom of story when using divert button|$:/_sq/Stories/config/openLinkDivert]] | <$select tiddler=\"$:/_sq/Stories/config/openLinkDivert\" default=\"top\"><option value=\"top\">top</option><option value=\"bottom\">bottom</option></$select>|\n|<$link to=\"$:/_sq/Stories/config/showRiverDropZones\">Show dropzones above each story</$link>|<$checkbox tiddler=\"$:/_sq/Stories/config/showRiverDropZones\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"disable\"></$checkbox>|\n|[[Story view for second story|$:/_sq/Stories/config/Story2-storyview]]:|{{$:/_sq/Stories/config/snippets/viewswitcher}}|\n\n\n\n''Choose how to view tiddlers in each column''\n\nLeft column: <<switchStoryView $:/view zoomin>>\n\nRight column: <<switchStoryView $:/_sq/Stories/config/Story2-storyview classic>>\n\n''Left column to right column width ratio:''\n\n{{$:/config/sq/Stories/storyRiverRatio}} : <$text text={{{[[100]subtract{$:/config/sq/Stories/storyRiverRatio}]}}}/>\n\n<$range tiddler=\"$:/config/sq/Stories/storyRiverRatio\" min=\"20\" max=\"80\" default=\"50\" increment=\"5\"/> \n<!--\n''Right column font-size''\n\nTiddler: {{$:/config/sq/Stories/story2/fontsize-title}}px\n\n<$range tiddler=\"$:/config/sq/Stories/story2/fontsize-title\" min=\"6\" max=\"40\" default=\"14\" increment=\"1\"/> \n\nBody: {{$:/config/sq/Stories/story2/fontsize-body}}px\n\n<$range tiddler=\"$:/config/sq/Stories/story2/fontsize-body\" min=\"6\" max=\"40\" default=\"15\" increment=\"1\"/> \n\n-->",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/sq/Stories/settings",
"tags": "$:/tags/ControlPanel/Appearance",
"modified": "20200731105236925",
"created": "20170616185336118",
"caption": "Two Story Layout"
},
"$:/plugins/sq/Stories/changelog": {
"created": "20200430210052275",
"text": "Version 1.03\n\n* Fixed bug in view toolbar position caused by extra blank line in $:/_sq/Stories/divertTiddlerMacro\n\nVersion 1.0.2\n\n* Fixed bug where storyRiverRatio was not respected at some resolutions\n\nVersion 1.0.1\n\n* Added support for config tiddlers to customize view and edit templates for second story. These tiddlers override the core config tiddlers if they exist.\n** $:/config/sq/Stories/story2/EditTemplate\n** $:/config/sq/Stories/story2/ViewTemplate\n* Relative width of each story river can now be customized in settings tab for plugin\n** introduced $:/config/sq/Stories/storyRiverRatio and updated Stories.css accordingly\n\nVersion 1.0.0\n\n* 29/07: updated $:/_sq/Stories/EditTiddlerHook to try and fix https://github.com/felixhayashi/TW5-TiddlyMap/issues/357\n* 23/05 : tweaked Stories.css based on personal theme to allow easier adjustment of story width\n* 23/05 : deprecated action-addtohistory widget\n* 23/05 : updated divertTiddlerEditMacro to use navigator widgets\n* 23/05 : updated divertTiddlerMacro to use navigator widgets\n* 30/04 : updated divertTiddlerEditMacro to also update history and avoid issues with zoomin storyview",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/sq/Stories/changelog",
"tags": "",
"modified": "20200806034532118"
},
"$:/_sq/Stories/config/storyRiverRatio": {
"text": "50",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/_sq/Stories/config/storyRiverRatio",
"tags": "",
"modified": "20200730045328744",
"created": "20200730040856198"
},
"$:/config/sq/Stories/story2/fontsize-body": {
"text": "15",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/config/sq/Stories/story2/fontsize-body",
"tags": "",
"modified": "20200731104543869",
"created": "20200731102336058"
},
"$:/config/sq/Stories/story2/fontsize-title": {
"text": "14",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/config/sq/Stories/story2/fontsize-title",
"tags": "",
"modified": "20200731105040270",
"created": "20200730045554550"
},
"$:/config/sq/Stories/storyRiverRatio": {
"text": "50",
"bag": "default",
"revision": "14",
"type": "text/vnd.tiddlywiki",
"title": "$:/config/sq/Stories/storyRiverRatio",
"tags": "",
"modified": "20200802091529278",
"created": "20200730040856198"
}
}
}
{
"tiddlers": {
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$set name=\"tabsState\" filter=\"[<__explicitState__>minlength[1]] ~[<qualifiedState>]\">\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button><span class=\"wltc-link-to-tab\"><$link overrideClass=\"\" to=<<currentTiddler>> >{{$:/core/images/link}}</$link></span></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$set>\n</$set>\n\\end\n"
},
"$:/core/ui/ControlPanel/Settings/link-to-tabs": {
"title": "$:/core/ui/ControlPanel/Settings/link-to-tabs",
"caption": "Link-to-Tabs plugin",
"created": "20190712133607244",
"modified": "20190714104631250",
"tags": "$:/tags/ControlPanel/Settings",
"type": "text/vnd.tiddlywiki",
"text": "<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-all-links\" checked=\"inline-block\" unchecked=\"none\" default=\"none\"> Show internal tab link for ''all tabs''</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-single-link\" checked=\"inline-block\" unchecked=\"none\" default=\"inline-block\"> Show internal tab link for ''selected tabs''</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"initial-opacity\" checked=\"0\" unchecked=\"0.7\" default=\"0.7\"> Tab links are initially hidden and need mouse hover to become visible.</$checkbox> The transition time in seconds is: <$edit-text tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"transition\" default=\"0.3\"/>\n\n<$button message=\"tm-delete-tiddler\" param=\"$:/plugins/wikilabs/link-to-tabs/config\">\nReset to Default!\n</$button>"
},
"$:/plugins/wikilabs/link-to-tabs/config": {
"title": "$:/plugins/wikilabs/link-to-tabs/config",
"created": "20190712133008077",
"initial-opacity": "0.7",
"modified": "20190714104541701",
"show-all-links": "none",
"show-single-link": "inline-block",
"transition": "0.3",
"type": "text/vnd.tiddlywiki",
"text": "This tiddler is used to configure the \"Link-to-tabs\" plugin behaviour. \n\nThere are 4 fields, which are used by [[$:/plugins/wikilabs/link-to-tabs/styles]] enable and disable the internal links. \n\n* show-all-links: {{!!show-all-links}}\n* show-single-link: {{!!show-single-link}}\n* initial-opacity: {{!!initial-opacity}}\n* transition time in seconds: {{!!transition}}\n"
},
"$:/plugins/wikilabs/link-to-tabs/history": {
"title": "$:/plugins/wikilabs/link-to-tabs/history",
"text": "V 2.0.1 - 2020-12-25\n\n* update license\n\nV 2.0.0 - 2020.12.05\n\n* Update $:/core/macros/tabs to V5.1.23\n\nV 1.1.1 - 2020.01.19\n\n* Update license link/text\n\nV 1.1.0 - 2019.07.14\n\n* Add new option: Initially hide link\n** Transition time from hidden to visible is adjustable\n* Added: \"Reset to Default\" button\n\nV 1.0.1 - 2019.02.18\n\n* link-to-tabs works in drop-down elements now.\n\nV 1.0.0 - 2019.02.14\n\n* Use core tabs-macro from TW 5.1.19\n\nV <1.0.0\n\n* Use core tabs-macro from TW 5.1.15\n"
},
"$:/plugins/wikilabs/link-to-tabs/license": {
"title": "$:/plugins/wikilabs/link-to-tabs/license",
"text": "[[Link-to-Tabs-Macro|https://wikilabs.github.io/#link-to-tabs]] (c) Mario Pietsch - 2016-2021\n\nhttps://opensource.org/licenses/BSD-3-Clause\n"
},
"$:/plugins/wikilabs/link-to-tabs/styles": {
"title": "$:/plugins/wikilabs/link-to-tabs/styles",
"created": "20190712133348541",
"modified": "20190714104306483",
"tags": "$:/tags/Stylesheet",
"type": "text/vnd.tiddlywiki",
"text": "<pre>\n\n.wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-all-links}};\n position: relative;\n top: -1em;\n left: -1.3em;\n font-size: 0.7em;\n opacity: {{$:/plugins/wikilabs/link-to-tabs/config!!initial-opacity}};\n margin-right: -1em;\n}\n\n.wltc-link-to-tab svg{\n width: 1.4em;\n height: 1.4em;\n}\n\n.wltc-link-to-tab:hover {\n opacity: 1;\n transition:opacity {{$:/plugins/wikilabs/link-to-tabs/config!!transition}}s;\n transition-timing-function: cubic-bezier(1,-0.06,.39,.89);\n}\n\n.tc-tab-selected + .wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-single-link}};\n}\n\n.tc-vertical > .wltc-link-to-tab {\n top: -1.9em;\n left: 0;\n height: 0;\n float: right;\n}\n\n.tc-search-results .wltc-link-to-tab a {\n display: contents;\n padding: 0;\n}\n\n</pre>"
},
"$:/plugins/wikilabs/link-to-tabs/readme": {
"title": "$:/plugins/wikilabs/link-to-tabs/readme",
"text": "This plugin adds a little link icon to every tab.\n\n''Important:'' This plugin changes the core tabs macro.\n\n! Lint-to-Tabs Settings\n\n{{$:/core/ui/ControlPanel/Settings/link-to-tabs}}"
}
}
}
An Infinitely Proliferating Series of Inclusive Disjunctions, Forming and Reforming Within a Breath
LeDoux,McCloud,McDonald,TiddlyWiki,TiddlyWiki5,CamelCase,DuBay,McGraw,McCullough,LeGrange,NaCl,MeOH,EtOH,PiB,TiddlyTools,ResetFind,WikiText,WinBuilder,WinPE,ProgramData,TiddlyFox,GuillermoMartin,AndrewFraser,RochesterMNwalkers,DEdwardsCalgary,WalkaboutMM,HarveyG,McCoy,GeForce,SideBar,AirBnB,PayPal,LeBron,JavaScript,ExpressJet,CutePDF,McClouds,McElroy,McGovern,TableHelper,ShadowTiddler,WikiWords
$:/core/ui/AdvancedSearch/Standard
$:/plugins/danielo515/ContextPlugin/visualizer
$:/core/ui/DefaultSearchResultList
$:/core/ui/AdvancedSearch/Standard
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/Info
$:/core/ui/ControlPanel/Saving/TiddlySpot
$:/plugins/kookma/commander/snr/ui
$:/core/ui/MoreSideBar/All
$:/plugins/danielo515/ContextPlugin/visualizer
$:/core/ui/DefaultSearchResultList
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define sidebarbreakpoint()\n<$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\define set-type-selector-min-width()\n<$set name=\"typeLength\" value={{{ [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]get[name]length[]maxall[]] }}}>\n\n\t.tc-type-selector-dropdown-wrapper {\n\t\tmin-width: calc(<<typeLength>>ch + 4em);\n\t}\n\n\t.tc-type-selector-dropdown-wrapper input.tc-edit-typeeditor {\n\t\tmin-width: <<typeLength>>ch;\n\t}\n\n</$set>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\ninput[type=\"search\"] {\n outline-offset: initial;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tfill: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml, body {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n\tfont-size: 2em;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n\t-webkit-appearance:none;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n::selection {\n\tbackground-color: Highlight;\n\tcolor: HighlightText;\n\tbackground-color: <<colour selection-background>>;\n\tcolor: <<colour selection-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n.tc-drop-down a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-page-container > .tc-dropzone {\n\tmin-height: 100vh;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\n.tc-sidebar-lists button small {\n\tcolor: <<colour foreground>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-tags-wrapper .tc-tag-list-item {\n\tmargin-right: 7px;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\n.tc-block-tags-dropdown > .tc-btn-invisible:hover {\n\tbackground-color: <<colour primary>>;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n.tc-tag-button-selected,\n.tc-list-item-selected a.tc-tiddlylink, a.tc-list-item-selected {\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour tiddler-background>>;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-topbar-right {\n\t\tright: 10px;\n\t}\n\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-hide-sidebar-btn svg.tc-image-chevron-right {\n\t\ttransform: rotate(-90deg);\n\t}\n\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-sidebar-lists .tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\ttransition: min-height {{$:/config/AnimationDuration}}ms ease-in-out, padding-top {{$:/config/AnimationDuration}}ms ease-in-out, padding-bottom {{$:/config/AnimationDuration}}ms ease-in-out;\n\t}\n\t\n\t<<if-no-sidebar \"\"\"\n\n\t\t.tc-sidebar-header {\n\t\t\tmin-height: 0;\n\t\t\tpadding-top: 0;\n\t\t\tpadding-bottom: 0;\n\t\t}\n\n\t\"\"\">>\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n\t.tc-story-river.tc-static-story-river {\n\t\tmargin-right: 0;\n\t\tpadding-right: 42px;\n\t}\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\toverflow: hidden;\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-tiddler-info {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t\tmargin-bottom: .5em;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.35em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\n}\n\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-background>>;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: auto;\n}\n\n.tc-type-selector-dropdown-wrapper {\n\tdisplay: inline-block;\n}\n\n<<set-type-selector-min-width>>\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n.tc-edit-fields.tc-edit-fields-small {\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n}\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name-wrapper input.tc-edit-texteditor {\n\twidth: auto;\n}\n\n.tc-edit-field-add-name-wrapper {\n\tdisplay: inline-block;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-edit-field-add-value {\n\t\twidth: 35%;\n\t}\n\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n\n/*\n** Centered modals\n*/\n.tc-modal-centered .tc-modal {\n\twidth: auto;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%) !important;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Import table\n*/\n\n.tc-import-table {\n\twidth: 100%;\n}\n\n.tc-import-table svg.tc-image-edit-button {\n\tmax-width: unset;\n}\n\n.tc-import-table th:first-of-type {\n\twidth: 10%;\n}\n\n.tc-import-table th:last-of-type {\n\twidth: 30%;\n}\n\n.tc-import-table .tc-row-disabled {\n\tbackground: <<colour very-muted-foreground>>10;\n\topacity: 0.8;\n}\n\n.tc-import-table .tc-row-warning {\n\tbackground: <<colour diff-delete-background>>50;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\tfill: <<colour background>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n::-webkit-file-upload-button {\n\tcursor:pointer;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}\n\n/*\n** Flexbox utility classes\n*/\n\n.tc-flex {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-flex-column {\n\tflex-direction: column;\n}\n\n.tc-flex-row {\n\tflex-direction: row;\n}\n\n.tc-flex-grow-1 {\n\tflex-grow: 1;\n}\n\n.tc-flex-grow-2 {\n\tflex-grow: 2;\n}\n\n/*\n** Other utility classes\n*/\n\n.tc-small-gap {\n\tmargin-left: .5em;\n\tmargin-right: .5em;\n}\n\n.tc-small-gap-left {\n\tmargin-left: .5em;\n}\n\n.tc-small-gap-right {\n\tmargin-right: .5em;\n}\n\n.tc-big-gap {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-big-gap-left {\n\tmargin-left: 1em;\n}\n\n.tc-big-gap-right {\n\tmargin-right: 1em;\n}\n\n.tc-word-break {\n\tword-break: break-all;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n -moz-tab-size: 4;\n tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n font-family:\n system-ui,\n -apple-system, /* Firefox supports this but not yet `system-ui` */\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Consolas,\n 'Liberation Mono',\n Menlo,\n monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
https://cartographies.tiddlyhost.com
1.2-1
All parts of a [[neuron]] are covered by a [[membrane]] about 8nm thick The membrane is composed of two layers (free to float relative to each other) of [[phospholipid]] [[molecule]]s (containing chains of [[fatty]] [[acid]]s and a [[phosphate]] group). Embedded among the phospholipids are cylindrical protein molecules through which certain chemicals can pass.
When at rest, the membrane maintains an [[electrical gradient]], also known as [[polarization]]-a difference in electrical charge between the inside and outside of the cell. The electrical [[potential]] inside the membrane is slightly negative with respect to the outside, mainly because of negatively charged proteins inside the cell. This difference in voltage is called the [[resting potential]].
[[biopsych textbook]]
The [[resting potential]] prepares the [[neuron]] to respond rapidly... the excitation of the neuron opens [[channel]]s that allow [[sodium]] to enter the cell rapidly. Because the [[membrane]] did its work in advance by maintaining the [[concentration gradient]] for sodium, the cell is prepared to respond vigorously to a [[stimulus]]... The RP remains stable until the neuron is stimulated.
[[1.2 nerve impulse]]
[[hyperpolarization]] is an exaggeration of the usual negative charge within the [[neuron]]. [[depolarization]] is a decrease in the negative charge.
[[stimulation]] beyond the [[threshold]] of [[excitation]] produces a massive depolarization of the [[membrane]]. When the potential reaches the threshold, the membrane opens its [[sodium]] [[channel]]s and lets sodium [[ion]]s flow into the cell. The potential shoots far up beyond the strength that the stimulus provided.
[[1.2-1b]]
The [[all-or-none]] [[law]] is that the [[amplitude]] ([[intensity]]) of an [[action potential]] are independent of the intensity of the stimulus that initiated it, provided that the [[stimulus]] reaches the [[threshold]].... Although amplitude, [[velocity]], and [[shape]] of action potentials are consistent over time for a given [[axon]], they vary from one [[neuron]] to another. Thicker axons convery action potentials at greater velocities. Thicker axons can also convey more APs per second.
To signal the difference between a strong and weak stimulus, all the axon can change is the [[timing]]. A taste axon shows one [[rhythm]] of responses for sweet tastes and a different rhythm for bitter tastes.
[[1.2-2]]
Three principles for the [[action potential]]
At the start, [[sodium]] [[ion]]s are mostly outside the [[neuron]], [[potassium]] ions are mostly inside. When thee [[membrane]] is [[depolarized]], sodium and potassium [[channel]]s in the membrane open. At the peak of the AP, the sodium channels close.
A [[protein]] that allows [[soium]] to cross is called a sodium channel (or [[gate]]) and the onefor potassium is a potassium channel. The [[axon]] chennls regulating sodi and potass are [[voltage-gated channel]]s. Their permeabiltiy depends on the [[voltage]] difference across the [[membrane]]. At the [[resting potential]], sodium channels are fully closed and potass are almost closed, allowing only a little [[flow]]. As the membrane becomes depolarized, both channels begin to open. At first, opening the potassi channels makes little difference, because hte concentration gradient and the electrical gradient are almost in balance anyway. Opening the sodi channels makes a big difference, since conentration and electrical gradient drive sodium ions into the neuron. When depol reaches the [[threshold]] of the membrane, the sodium channels open wide enough for the sodium to flow freely, sodium ions enter the cell uiuntil the electrical potential across the membreane passes beyond zero to reversed polarity (positive polarity).
Sodium ions cross during the peak of the AP, and potassium ions cross later in the opposite direction, returning the membrane to its original polarization. Sodium in, potassium out sodium ions bring in te positive charge, and then the potassium ions take it out. Eventually the nack pump restores balance.
[[1.2-2a]]
Audring an [[action potential]], [[sodium]] [[ion]]s enter a point on the [[axon]]. Temporarily, that spot is positively charged in comparison with neighboring areas along the axon. The positive ions flow within the axon to neighboring regions. The positive charges slightly depolarize the next area of the [[membrane]], causing it to reach its [[threshold]] and open its [[voltage-gated channel]]s (sodium channels). Then the membrane regerates the action potential at that point. In this manner, the action potential travels along the [[axon. Behind each area of sodium entry, potassium ions exit, restoring the resting potential. The term [[propagation]] of the action potentiald escribes the transmission of an AP down an axon. At its start, the AP [[back-propagates]] into the [[cell]] body [[soma]] and [[dendrite]]s. The cell body and dendrites do not conduct an AP in the same way axons do, but they passively register the electrical event that started in the nearby axon. This is important, it allos the dendrite to become more susceptible to to strucutral changes respoonsible for [[learning]]
[[summary]]
When an area of the axon membrane reaches its [[threshol]] of excitation, sodium channels and potassium channels open.
At first, the opening of potassium channels produces little effect
Opening sodium channels lets sodium ions rush into the axon
Positive charge flows down the axon and opens voltage gated sodium channels at the next point
At the peak of the AP sodium gates snap sht. They remain closed for the next millisecond or so, despite the depolarization of th membrane
Because voltage-gated potassium channels remain open, potassium ions flow out of the axon, returning the membrane to its original depolzrization
A few mills later, the voltage dependent potassium channels close.
Everything follows logicall from the facts that voltage-gated sodium and potassium channels open when the membrane is depolzrized and that sodium channels snap shut at the peak of the action potential.
[[1.2-2b Molecular basis of the AP]]
The jumping of [[action potential]]s from node to [[node of Ranvier]] is called [[saltatory conduction]]. provides rapid conduction and saves energy. After an action potential occurs at a node, sodium ions enter the axon and diffuse, pushing a chain of positive charge along the axon to te next node, where they regenerate the action potential at each node.
[[1.2-3 propogation of ap]]
at the [[peak]] of the [[action potential]], the [[sodium]] [[gate]]s snap shut. As a result, the cell, is in a [[refractory period]] during which it resists the production of further AP.s there is the [[absolute]] RP where the [[membrane]] cannot produce another AP, and the [[relative]] RP where a stronger than usual [[stimulus]] is needed to initiate an AP. the RP depends on tow facts: the sodium channels are closed, and potassium is flowing out of the cell at a faster than usual rate.
[[1.2-4]]
[[neuron]]s without an [[axon]] exchange [[information]] with only their closest neighbors. "[[local neuron]]s". they do not follow the [[all-or-none]] law. When a local neuron receives information for other neurons, it has a [[graded potential]], a [[membrane]] potential that varies in [[magnitude]] in proportion to the [[intensity]] of the [[stimulus]]. The change ein membrane potential is conducted to adjacent areas of the cell, in alld irections, gradually decaying as it travels. Those various areas of the cell contact other neurons, which they excite or inhibit.
[[1.2-4a]]
the first pole was – and here I recap very quickly – the [[contour]]-[[face]] or the face that
thinks, the face that reflects. And it seemed to us that this reflecting face, this face that thinks,
could be defined as follows: it [[express]]es a [[quality]], it expresses one or more qualities. To the
point that we could as well call it the qualitative pole of the image.
Second pole, second pole... this was the [[trait]]-face, the traits of [[faciality]], and this time we had
the face that feels. It was no longer a question of contour, because what we had now was the
marking of traits in the facial mass – traits that were variable – and this is equally valid for the
eye, the mouth, a corner of the nose and so on. And this face that feels was defined, or
presented itself, as follows: it passed by way of an intensive series, and by passing by way of
an [[intensive]] [[series]] it no doubt made us pass from one quality to another. For example the
gradation of despair, or the gradation of wrath that will make things pass from one quality to
another, meaning it will make something possible. And this time, this second pole of the face
– the trait-face or face that feels – could as well be defined in virtue of its character, the
intensive-series from which it cannot be separated, as it could according to the notions
“potential” or “intensive”.
So there were two poles of the face: the qualitative pole and the [[potential]], or [[intensive]], pole.
[the face potentializes a space, psat/present/future, [[virtual]] ]
[[9CS6]]
This face that has undone its triple appearance is a face that, in its nudity, or even its
inhumanity, can only be defined thus: it [[express]]es an [[affect]]. It expresses an affect or several
affects. And if it can be distinguished, it's not through a distinction between individuals but
one of a completely different nature, namely the distinction between affects. And if affects
can be distinguished, it is not at all as persons.
And I would even say that an affect is always [[singular]] but never [[individuate]]d. It
is neither general nor individual.
So for the moment, let's add that a face in its nudity or in its inhumanity is the expression of a
pure affect, which is to say – though I haven’t justified anything yet – that it’s the [[expression]]
of a singular essence, a singular [[essence]] having nothing to do with an individual or person.
[[10CS1]]
the [[close-up]] is not a partial object... so
what is it, what is it then? Let's look for a word. It's the [[expression]] of a [[singular]] [[essence]], that
is to say a pure affect. It's the expression of a [[pure]] [[affect]]. But what is that? Let's immediately
say so as not to... it's an entity, an entity. And what is an [[entity]]? I don't know... an entity is
something that, strictly speaking, doesn't exist. Something that doesn't exist... so we go back
to the idea that the face is a void. The face is a void. No, because we can moderate. If it's
something that doesn't exist, how can I talk about something that doesn't exist. I could also
call it a phantom. It's an entity, a [[phantom]]. So here we are... a phantom, an entity.
Something that doesn't exist... Yes, which is to say an entity. An entity is something that
doesn't exist independently of what [[express]]es it. An entity is an [[expressed]] which has no
existence beyond its [[expression]]. And yet it's not the same thing. The expressed is the pure
affect. The expression is the face. The pure affect is an entity that has no existence beyond
what it expresses. The pure affect is an entity and this goes for the expression too, since it has
no existence beyond what expresses it. It's the very set expressed-expression that is an entity,
which is to say a phantom. The close-up presents the face and the pure affect as the two
indissoluble parts of a simple entity – I might even say the two elements of a phantom.
[[10CS16]]
Though the cause of terror is
completely separate from the terrorized [[face]], terror itself is not really distinct from the
terrorized face. And yet there is a distinction. Meaning that terror is the [[expressed]] while the
terrorized face is the [[expression]]. This constitutes a complex, what I called the [[phantom]]. And
the phantom or [[entity]] is now justified, since now I could say that we call phantom or entity all
things or beings – I won't say existences, since this doesn't exist, it has no existence beyond its
expression – I call phantom or entity all things or beings that are abstracted from [[spatio-
temporal]] [[coordinate]]s. That's what a phantom is. That's what a phantom is! And we live in
phantoms.
[[10CS17]]
So what will this point of [[virtual]] [[conjunction]] be? It will be precisely the [[composition]] of [[affect]]s,
such that the kind of conjunction of affects, [[power]]s and [[quality]]s will apply as much as possible
only to itself, and what remains of the [[real]] [[connection]]s will be no more than sketched-out lines that
have to be extended to arrive at the only thing that counts, namely these conjunctions of affects.
Conjunctions of affects that will bring together [[passive]] affect, [[active]] affect and what I would call
the [[witness]] affect – in this case what I call witness affect is the object-affect.
[[11CS9]]
So much so that it is entirely possible that the [[close-up]] [[face]] is
itself without [[individual]]ity even though it [[express]]es [[affect]]s that are in themselves perfectly [[singular]].
Indeed, the [[singularity]] of an affect is not to be confused with the personality of a person, nor with
the individuality of a state of things.
The
individuality of a person, for convenience we could call it... we could call it... we can call it a
[[duration]]. In a way, the close-up face has nothing to do either with the individuality of a state of
things or with the personality of a person.
[[10CS19]]
our [[question]] is: what should we call "the [[singularity]] of [[affect]]s" insofar
as it is completely different from the individuality of a state of things or of a person?
Third point. As we have seen, this affect that the [[close-up]] face [[express]]es does not exist outside of its
[[expression]], it does not exist outside of its expression. In this [[sense]], and here too I would like to
make a distinction – it's important that all these [[distinction]]s work for you, they're not necessarily
very rigorous – I would say in this sense, this time I would like to introduce a difference between
affect and [[impulse]].
[[11CS2]]
so if the [[affect]]s [[express]]ed by the [[face]] – you
see how we're only dealing with their state of [[expression]], for once we know that there will be other
[[level]]s. All that, I would say, has its own [[singularity]]. What we have to try to understand is what this
singularity of affect consists in.
what is the affect as expressed by the face? It is, we
would say, a quality, a [[quality]] or a [[power]], a quality or a power or a "[[potential]]ity". And in what
atmosphere does it occur? Here I would like you almost to abandon the rigor of these notions and
try, as a sort of reverie... we'll see if it works later, we'll see where it takes us... this idea of quality or
power, which means quality in "itself". It's not a question of a qualified object... a qualified object is
when, for example, when I say "Ah yes, this thing, this object is red, this table is white..." but of
white, red, and all sorts of other qualities. Or a power, a power is not at all the same as something
that is [[actualize]]d; a power can act upon something.
[[11CS3]]
But a [[power]] is also a [[potential]]ity that is not yet [[actual]], which as such is not yet actual. So, the face
would be – when I speak of [[affect]] – it would be power-qualities insofar as they are not yet
actualized – since when they come to be [[actualize]]d, for once it will be in states of things or in
individuals or in groups. But before – and in a way I use “before” in a purely logical sense – before
being actualized, they express themselves, power-qualities express themselves and the face is
precisely the expression of one or several of these power-[[quality]]s.
But what does their [[singularity]] consist in? It's not only "red" in general; it's this very red. It's not
only “the terrifying” in general as a power; it's this particular "terrifying". So, shouldn't we be able
to conceive of things like this? In fact, in the way we know them and the way we experience them,
power-qualities are already actualized in states of things and persons. Such and such a person is
terrifying, such and such a state of things is qualified by red. So there is a distribution of qualities
and powers among things and among persons, and it is this that constitutes a here-and-now state of
things.
The relations that exist between objects and persons within a state of things... let's call them real
connections, [[real]] [[connection]]s. They form a world of real relations and connections, relation of a
thing with a person, relation of a person with something else and so on. So you have this whole
world of real connections. And it’s in this world of real connections that power-qualities are
actualized. Okay. This state of things will be called "red", while another state of things will be
called "terrifying". This person will be “terrifying” while that person will be “terrified”. So it's this
whole set that I call the set of real connections. What I mean is that here we have to distinguish
another level, though both levels are completely immanent. It's not a matter of putting one of them
in the sky, the two will penetrate each other completely and it’s here that I discern the world of
[[virtual]] [[conjunction]]s...
So, what I'm trying to say here is that the virtual connections, sorry the real connections, between
things and persons, on the one hand, and the virtual conjunctions between affects on the other, will
occur at exactly the same time; they will go on at the same time, at both levels, the two levels will
continually interfere with one another. It's simply that sometimes the emphasis will be on virtual
conjunction whereas at other times it will be on real connection.
[[11CS6]]
but when you consider it as an [[expressed]] [[affect]], it no longer refers to the other person or the
other object. It refers to another affect, namely, the vampire as affect, that is, this particular source
of terror, the knife as affect, that is, that particular power, the [[power]] of plunging into a body.
But at the same time as you have this [[world]], it is... I
wouldn’t even say doubled, but [[penetrate]]d by another world, the world of [[virtual]] [[conjunction]]s,
namely the virtual conjunctions between pure affects, where there is no longer any real person, nor
real object, but only [[affect]]s that interpenetrate, and it is this interpenetration of affects that will
constitute a [[singular]] [[essence]].
there has to be a sufficient power in the image for the knife to be [49:00] seized
as a power. A power of what? The power to plunge into a body, even before Jack the Ripper has
seized the knife. And depending on the nature of the thing or the nature of the object, you don’t
have the same affects, which is where we see how singular it is.
[[11CS7]]
understand that what I am trying to say in such a confused way, what I call the [[singular]]
[[essence]], the [[entity]], is the combination of [[affect]]s that always vary, and the [[close-up]] [[face]] will, in a
certain way, express another aspect of the same [[entity]], the same singular entity, the same singular
essence.
If I take my three affects, active affect, passive affect, thing-affect, the terrified,
the terrifying and the object-affect, each time the exchanges are numerous since isn’t it true that the
crucifix will signal a reversal in terror?
In the terrified as the purely... in the terrified face as the purely [[expressed]], when terror is purely
expressed and not considered as [[actualize]]d in the state of things, then we have a kind of [[virtual]]
[[conjunction]], that is, a connivance between the terrified and the terrifying, which isn’t at all the same
thing as the [[real]] [[connection]] that takes place in the realm of actualization between the character who
causes fright and the character who is afraid. So, at every moment, it's as if I had simultaneously a
double world, on one hand the real connections of the state of things, on the other the virtual
conjunctions of the affect. And I would say, when you have images where virtual conjunctions of
affect predominate over real connections – and I remind you that the virtual conjunctions of affect
can include the objects themselves, but the objects raised to the state of pure affects – at that
moment you have the close-up face, and at the same time we have the feeling that this exceeds the
close-up face, so how should we proceed?
[[11CS8]]
So Eisenstein says... he makes a violent attack on religion because he says...look, this is the fault of
religion. Mysticism is nothing, because mystics are very precise. They say, there is something
divine, we could call it the presence of a [[power]]-[[quality]]. Well, yes, that's very good, says Eisenstein.
But the operation of the church, in [[Eisenstein]]'s view, is precisely to relate these states of simple
[[affection]] to [[spatio-temporal]] [[coordinate]]s, to a whole mechanism of causes, to various "selves", and
to say that this is the proof of the existence of God and so on. So he says, here we have an operation
that completely disfigures [[pathos]]. You see, there's a big correspondence there, I mean, it's the same
story I'm telling without... it's not that I'm trying to establish an arbitrary connection between texts
but it seems to me quite amazing that there is this correspondence.
[[12CS9]]
[[thirdness]], then, that as far as I know has no equivalent in Maine de Biran... “Thirdness is the [[mode]]
of [[being]] which consists in its [[subject]]’s being such as it is in placing a second and a third in
reciprocal relation”. That is, there is thirdness every time we have mediation, every time there is
[[mediation]], to use another word, each time there is law or possibility of law. Each time there is [[law]]
or possibility of law...
There is indeed a law according to which water boils; this law, you realise, is a mediation. It's a
mediation between water and heat such that the heat must reach 100 degrees for the water to boil.
Here 100 degrees is the legal mediation. I would say, this is the number of thirdness. You have three
terms. A first term, a second term, a mediation that relates one to two. What he says is quite simple
yet it seems to me very... it's... English philosophers always proceed in this manner. They're dealing
with perfectly simple things that they cut up in such a twisted way, in a way that's so bizarre you
have the impression they're speaking to you from another planet, and this is how they build their
concepts. It's very, very odd; only the English know how to pull these stunts... well, that's thirdness.
[[12CS11]]
So when I want to boil water, it's not in the name of the law, it's in the name of what? It's in the
name of a phenomenon of [[secondness]], namely: me, the goal I set for myself, and this is done in a
world of secondness, meaning my [[effor]]t: I have to fill the pot, I have to carry it, I have to put it on
the stove... and, resistance. What is the [[resistance]] to my effort in this case? As [[Bergson]] said on
another occasion, you have to wait for sugar to melt, you have to wait for water to boil. It is the
form of inertia and resistance that opposes my effort. When you want to boil water, you are in the
world of secondness, although the law in the name of which the water boils is part of [[thirdness]]. Do
you understand?
Well, of course actions and reactions respond to laws. Yes, they respond to laws, but not as [[actual]],
not in their realities. They respond to laws in what makes them possible, and what makes them
possible is the phenomena of thirdness. But in themselves what we have is pure... it's pure
secondness... actuality itself is pure secondness.
in certain texts, he will say, well, generally speaking, to
[[firstness]], secondness, and thirdness correspond three types of [[sign]]. And for my part I would say –
and the difference, it seems to me, is very minimal – they correspond to three types of [[image]]. There
are images of firstness, and what shall we call these images of firstness? To keep it simple – I mean,
this isn't the final form of Peirce's thought, though he passes through it – we shall call them [[icon]]s.
They are icons.
And what is an icon, in fact? It is a sign that [[signal]]s according to what it is. Only in terms of what it
is. It is a sign of firstness. It is a sign that signals according to what it is. We call this an icon. Okay.
A sign of secondness... is a sign that signals in function of something else that exists, something else
that is actual. It's an actual sign that signals in function of something else that is actual. There has to
be two. We shall call such a sign an [[index]]. For example: no smoke without fire. Smoke signals in
relation to something else that is actual, even if it's not given... there must be fire, I see smoke,
there's no smoke without fire, well... smoke is the index of a fire. The index will be the sign of
secondness. Action-reaction... I'd say a barometer – actually, come to think of it we could do the
Highway Code like this, we could, you'll see... but let's not complicate things. So, there are signs of
secondness, signs of firstness, and there are signs of thirdness.
A sign of thirdness is what [Peirce] will call a symbol. A [[symbol]] is a sign that unites two things by
means of a [[mediation]]. This is the world of [[signification]] because, according to Peirce, there is no
mediation that unites two things independently of a signification. It's the signification that is the
mediation itself... Well, it doesn't matter for now, all this would be rather complicated...
Now I would say this can help us clarify our terminology a little. I would say that [[affection-image]]s
are icons, that's fine, everything we saw regarding the close-up and so on, and the implication is that
he gives us something much more than words, which will help us progress. And the signs of the
[[action-image]] are [[index]]es. So I say 1, 2. And when I say 1, 2, it will mean that I place an icon here
and an index there, because I remind you that 2 is not only what comes after 1. 2 is in itself and by
itself 2, and if 2 comes after 1, it's because 1 is in itself 1, firstness and 2 is in itself 2, secondness.
So I say... I say 1 and then I say 2, and then if I dare I say 3 but am I mistaken or am I not mistaken
when I say 3. Is there is something in the cinema that would be thirdness?
[[12CS12]]
“Among phanerons there are certain qualities of feeling, such as the color of
magenta, the odor of attar, the sound of a railway whistle, the taste of quinine, the quality of the
emotion upon contemplating a fine mathematical demonstration, the quality of feeling of love,
etc.” He tells us that these are all [[quality]]s, and that qualities equate to [[firstness]]. You see that this
is already something huge. It cannot be [[actual]], since actuality is always the relation between an
[[action]] and a [[reaction]], it's always the [[relation]] between [[force]] and [[resistance]]. So firstness, according to
[[Peirce]], will be pure qualities or pure [[power]]s. He himself employs the word [[potentiality]]. These are
qualities or [[potential]]itys...
But then you might say, in what way is it not actual? What does this mean? Let's go back to the
example of "red". You can perceive red, it's a mode of consciousness, the perception of red. Here it
is actual, we are in [[secondness]]. When you perceive a red object, you are fully in secondness,
perceiving subject-perceived object, action-reaction, effort-resistance, as you prefer, you are in
secondness, you are in relation. [[thirdness]] is [[mediation]], [[secondness]] is [[relation]].
[[12CS13]]
So [[secondness]] is when [[potential]]ity is [[actualize]]d in a [[state]] of [[thing]]s. You can see that we're
beginning to sketch out our [[action-image]]. The [[affection-image]] is the [[power]]-[[quality]] in itself,
[[12CS14]]
But what arises here is the notion of the [[sign]], since there are indeed signs of [[firstness]], signs of
[[secondness]], signs of [[thirdnes]]s. And [[Peirce]] will realize that what we call a sign has three aspects.
Not only are there signs of firstness – which are [[icon]]s – signs of secondness – which are [[index]]es –
and signs of thirdness – which are [[symbol]]s – but any sign whatsoever has itself three aspects.
First aspect, let's say – I'm oversimplifying – but let's say, the sign in itself. The sign in itself. He
calls it by a rather barbaric name: the [[representamen]]. It doesn't matter. It's the sign in itself.
Second aspect: the sign in relation to an object for which it stands. In fact, a sign is something that
stands for something else. "To stand for" is the vague expression we use to describe the way a sign
operates. So, there is the sign in itself, and secondly, there is the sign in relation to the object it
stands for. [[referent]] [[signified]]
Thirdly, there is the sign in relation to what he calls the [[interpretant]]. And this too is a very complex
notion. What is the object? The object is not necessarily a real object. You can have a sign for an
object that does not exist. What's more, you can have a sign designating an object that cannot exist.
So, it's not necessarily the real object. And the interpretant is clearly not the one who interprets the
sign. What Peirce calls the interpretant would be other signs that together with the first sign form a
[[series]], according to which the meaning of the sign will be completed, developed or determined. The
interpreter, I repeat, is a set of signs or a series of signs connected to the first sign in such a way that
they develop, complete or determine its [[signification]], the signification of the first sign.
So I say the word grenade, I say the word grenade... Grenade, well, it's a sign. It's a sign. But what
is it a sign of? First series of interpretants: a city in Spain. I would say: city and Spain are the
interpretants of Granada from that point of view. Right? But if I say: pull out the pin, explode,
boom, then that's another thing, it's another series of interpretants. In this case grenade is no longer
a sign for the Spanish city but a sign for a weapon of war. There would be a third series: [grenad in french means hand grenade, grenada, and pomegranate]
[[12CS15]]
First aspect of the sign: the sign itself. So, in the [[firstness]] column, we will have the [[qualisign]]s, q-u-
a-l-i-s-i-g-n-s. Qualisign... what does this mean? It's a [[quality]] that [[signal]]s. It's a quality that
signals.
Sign of [[secondness]], this is what he calls a [[sinsign]], s-i-n plus [[sign]]. A sinsign. Why does he call it
that? The sinsign is a sign that functions in a state of [[thing]]s, in a [[singular]] state of things. It's the
prefix of singular that he has taken. He says singular whereas I would prefer to say [[individuate]]d
since I used singularity in the case of firstness, but it doesn't matter. That is to say, in this case the
sinsign is indeed a sign, but this time it's an existence that is the sign. It's no longer a quality or
[[potentiality]]; it's an existence that is the sign.
Sign of [[thirdness]], what he calls a [[legisign]]. Legisign. This time, it's a law that is the sign.
In relation to the object: sign of firstness: icon. Indeed, an [[icon]] will be defined as follows: It is a
sign that refers to the object through the qualities that are proper to it as sign. It is a sign that refers
to the object through qualities that are its own. For example: [[resemblance]]. An icon is something that
resembles, and its resemblance is a quality that is proper to it.
Regarding secondness: [[index]], which, to be more precise, [[Peirce]] will define as follows: It is a sign
that refers to the [[object]] insofar as it is [[affect]]ed by that object.
Sign of thirdness: [[symbol]]. This time it is a sign that refers to the object by virtue of a law or habit.
Lastly, in relation to the interpretant: sign of firstness: what he calls the [[rheme]]. R-h-e-m-e. It's a sign
which, he says, is for its [[interpretant]] a sign of possibility, and it's the equivalent in formal logic of
what we call a [[term]].
Sign of secondness: this is what he calls the [[dicisign]]. D-i-c-i-sign. The dicisign that responds to
what in formal logic is called a [[proposition]]. This time, it's a sign that for its interpretant is a sign of
real existence.
Sign of thirdness: what he calls an [[argument]]. Argument. And... and this is... and this time it's a sign
of law, and it corresponds, to what in formal logic we call a reasoning.
Okay. If it amuses you, this is a practical exercise. You see that you can combine these nine types of
signs. You'll have understood everything about Peirce when you no longer have to refer to his own
charts – he made charts all his life, continually reworking them, adding more and more to the point
of becoming completely crazy. But, already with your nine signs, you have permissible
combinations and impermissible combinations.
To give you an example: can I speak of an indexical qualisign? And that opens up a very odd kind
of formal logic, it opens up a formal logic of a very new type that will constitute a whole aspect of
what he refers to as a semiotic. Can we speak of a rhematic symbol? Can you speak of a rhematic
symbol? You sense how, in the combinations, there are incompossibilities, there are
incompatibilities and there are compatibilities. ... Yes?
[img[Screenshot from 2022-08-25 14-43-37.png]]
[[12CS16]]
So you see, the [[perception-image]] was something we covered as best we could, always with the
possibility of adding all kinds of things. It's really like a drawer. We've also covered the [[affection-image]] as far as we were able, and with the affection-image we limited ourselves to drawing out the
notion of [[affect]] – since last time I tried to explain what this equivalence consisted of – or of [[power]]-
[[quality]]. And finally, if I sum up in a few words... our analysis of the affection-image, it amounts to
saying: well, the affection-image is either the power-quality [[expressed]] by a [[face]] or a [[close-up]], or
the power-quality exposed or revealed in an any-[[space]]-whatever. So that it would be like an
outstretched pole, right?
Now, the third type of movement-image, which we're only just making a start with today, though
perhaps we won’t really be able to get started on it – and you'll soon see why – namely the [[action-image]]. For affects, or if you prefer, power-qualities... don't they possess yet another level, don't they
possess a further level than... than either being exposed in any-space-whatever, or being expressed
in a close-up? If they have... They obviously do have, right away one would say they have a third
level. The third level is actually the shortest level, you could even say the most ordinary level. It's
very rare that power-qualities reveal themselves in an any-space-whatever. Just as it's very rare, or
quite rare in any case, that they are expressed in a close-up or in a face. But what is the normal state
of these power-qualities? What is their normal state? They are actualized in a state of things. They
are [[actualize]]d in a [[state]] of [[thing]]s.
[[11CS10]]
this is
where the [[action-image]] begins, that is, when [[power]]-[[quality]]s can be considered as actualized in
such and such a [[determined]] space... in an individual... [[individuate]]d state of [[thing]]s.
the first [[definition]] of the action-image, the one we start
from, is when power-qualities are actualized in an individuated state of things within a given
determined space.
[[12CS2]]
Well, Maine de Biran – and this is why he's famous, and why he was so present in all the
textbooks... He was famous for an apparently very simple operation which consisted in having said
that Descartes' "I think", his cogito, must in fact be understood as an "I want". Ah yes, well, the "I
think" is an "I want".
But what kind of relation does this "I want" imply? The relation of a [[force]] to a [[resistance]]. The
relation of a force to a resistance... In other words, the "I want" is felt in the experience or feeling of
[[effort]]. Effort is the correlation of a force and a resistance.
[[desire]]
[[12CS3]]
Secondness is the category of all [[set]]s, of all beings, of all things, of all phenomena in which two
terms can and must be distinguished, two terms in relation with one another. And [[Peirce]] will say
much later, ah yes, Maine de Biran discovered something very profound, namely that the real, or the
[[experience]] of the [[real]] implied this [[secondness]], that is, this relation between [[force]] and [[resistance]].
[[Miran]] says, before [there is the self], there is sensation or affection... Any affection, any sensation, always has these two aspects, which are more or less in
variable proportions, a passive aspect and a motor aspect.
[light and the eye], smell and the breath, the animal cry and hearing
[[12CS4]]
how can the
primitive fact, the experience of effort, that is, self-consciousness, arise? The primitive fact is
indeed voluntary effort, the "I want" with its two terms, hyperorganic force and organic resistance.
But how will this be able to emerge in the world of nature? Well, it's that the voluntary effort will be
grafted onto a certain kind or number of involuntary movements. It will never merge with them,
however. Why is this? It is because involuntary movements move from the periphery to the center
while the experience of voluntary effort moves from the center to the periphery. Involuntary motor
function moves from [[periphery]] to [[center]], whereas voluntary motor function moves from center to
periphery, according to him. But it is precisely the involuntary movements in affection that will
allow the will to take over: I want to breathe [Deleuze takes a deep breath] ah, yes... And it is on
this point that the graft will occur – you see? – it is on this point that the grafting of the domain of
voluntary effort onto animal life will take place. Clearly, this isn't an easy process, and he himself,
in his writings, says that there lies a mystery. But what allows the passage from one to the other are
these involuntary movements that will be taken up by the will.
But if I take [[affection]] in itself, affection for itself, what is it exactly? It will either be a purely
[[passive]] affection - this smell, this light, what Maine de Biran calls a simple affection – or it will be
a purely involuntary movement within the body, and this is what de Biran will call an [[impersonal]]
affection.
Now the status of these affections is very interesting, these pure affections whether simple or
impersonal, because first of all they have no relation to a [[self]]. They have no relation to a self. The
experience of the self and the arising of the self only occur in the two-term relation with voluntary
effort. So, on their own, the affections have no relation to a self. Then what type are they? Not at all
"I feel". The "I feel" is still in relation to a self. They necessarily belong to a completely different
category. They are of the type: "there is". There is yellow, there is light, there is this or that of a
[[quality]], thus without attributable relations to a self.
the next pages show examples of the 'there is' of pure affection
[[12CS6]]
Listen, these are all adventures.
Yes... [[absolute]] feeling of existence. You see how it's as if he had cut into the [[experience]] – this is
what interests me – it's as if he had cut into the experience and separated out two [[domain]]s...
reproaching others for mixing them up. He separated the domain of simple affections, which he will
define as absolute feelings of existence. No relation to a [[self]] or a personality; no relation to [[space]]
and [[time]]; outside of [[spatio-temporal]] [[coordinate]]s. And on the other hand, we have – what should we
call it? The feeling of relation as it appears in voluntary effort, the relation or correlation of two
terms that do not exist independently of one another, [[force]] and [[resistance]], that is, the category of the
relative to which the self belongs and from which derive: [[space]] and [[time]], the categories of
[[knowledge]], and the [[form]]s of [[perception]].
In other words, if I defined as “[[secondness]]” that sphere of [[relation]] from which derive the [[sense]] of
[[reality]], [[action]], perception, self-consciousness and so on, the first sphere of pure, impersonal
[[affection]] could be called “firstness”. And indeed, [[Peirce]], again taking inspiration from Maine de
Biran and quoting him, gives the name “[[firstness]]” to the realm of simple or pure affections. Good.
the [[affection-image]] is firstness. It's this domain of the “there is”, of the
absolute feeling of existence and so on. So what will the [[action-image]] be? You can guess: the
action-image will be [[secondness]]...
[[12CS7]]
The [[object]] of the [[impulse]] is what psychoanalysis, thanks to Melanie Klein, began to refer to
as "the partial object". Now, the [[partial object]]... what is disappointing about the [[expression]]
partial object is that we have the impression that it is a type of object, but the partial object is
is not at all a type of object. It is an object that has been reduced to this state. Something had
to be torn away from the [[complete]] object. In other words, we have to find another word than
partial object. Since I haven't found one, let's say instead of object, "é-jet" or better "dé-jet" 8 ,
implying the action of tearing away. It must be wrested from the state of things. The impulse
will conquer. In other words, the impulse never has a global object as its object; it must wrest
fragments from the state of things. For the real object of the impulse is the [[fragment]].
And the original world is precisely the world where impulses and object-fragments, the
fragments that will serve as objects for the impulse, confront one another. And what might
these fragments be? As many as there are impulses. And what would the impulses be? As
many as there are fragments. Everything that is in fragments provokes an impulse, even if it is
an artificial one. We are beyond the difference between nature and artifice since, even in the
most [[artificial]] world, there is something original at stake. So that everything that is a fragment
is the object of an impulse, which could be what? Well, [[sex]]ual impulses with fragments of
bodies; impulses of money with those ready-made fragments, coins and banknotes; impulses
of hunger, food impulses – excellent for fragments – and then maybe many others. And so,
you will have the [[originary]] [[world]] – here, the notion of originary world becomes clearer –
when the determined state of things, however historical it may be, however artificial, permits
this one and only story to emerge: the story of impulses and their objects.
So that at this level of the action-image, what will be the type of sign that will respond to an
originary world insofar as it [[develop]]s into an impulse-object? What is the form, the sign of
this secondness? The [[sign]] of this [[secondness]] is what we will have to call the [[symptom]], and
this cinema will be a cinema of symptoms. And after all, the directors who have risen to the
challenge of this cinema will have the right – if they wish – to say as [[Nietzsche]] did: "We the
physicians of civilization"... We physicians of civilization... This phrase that he applied to
philosophers and which a small number of great directors have the right to claim... "We are
physicians of civilization", meaning something very, very precise, namely that in the most
historically [[determined]] [[milieu]]x, we diagnose the "originary world" that this historically
determined milieu, this state of things, contains. For we diagnose the impulses, the objects of
impulse, the nuptials between the impulses and the objects, as they [[unfold]] in this world.
[prior definition of milieu vs the primordial/originary world-the milieu is atop this world?]
[[13CS7]]
an [[originary]] [[world]] is
something you can easily [[extract]] from a [[milieu]]. It traverses several milieux. It is even one of
the differences there is to what we will see later constitutes the milieu. It includes different
milieux, but how is it oriented? It has two [[coordinate]]s. It is oriented... an originary world is
already [[orient]]ed in its [[distribution]] of [[impulse]]s between rich-poor, through the classes that are
a derived notion. But the brutality of rich and poor and of good and evil... rich-poor, good-
evil, is what will [[frame]] the world of impulses and their [[object]]s...
similar to the discussion of [[territory]] as that which bites into milieus and [[territorialize]]s them in the [[refrain]] [[plateau]]
[[13CS10]]
This is the [[sinsign]], which is embodied in a state of [[thing]]s, the red flowers that
upset her. Then there is the [[qualisign]], the color in itself, the color red as it is, which invades
the whole screen and isn't just embodied in the flowers. And then there is the [[mediation]] at the
end of the film, that is, the scene with the mother and the little girl who kills the sailor and
which is the law of the color.
[[12CS17]]
to [[summary]]ze, I would say, well yes, the
[[action-image]] begins, on the one hand, when the [[qualisign]] becomes a [[sinsign]] and, on the other
hand, when the [[icon]] becomes an [[index]]. [[affect-image]]s were qualisigns and icons. The [6]
qualisign was the [[power]]-[[quality]] exposed in an any-space-whatever. The icon was the power-
quality [[expressed]] by a [[face]]
[[13CS4]]
aren't
we in the process of discovering what would be the two poles of the [[action-image]], which we
could roughly call: the [[situation]] or the [[sinsign]] on one hand and the action, the [[duel]] or [[index]],
on the other? And the whole action-image would unfold not in a fixed order, but from one
pole to the other or vice versa.
[[13CS5/6]]
aren't
we in the process of discovering what would be the two poles of the [[action-image]], which we
could roughly call: the [[situation]] or the [[sinsign]] on one hand and the [[action]], the [[duel]] or [[index]],
on the other? And the whole [[action-image]] would [[unfold]] not in a fixed order, but from one
pole to the other or vice versa.
This is what we could call a milieu: a [[milieu]] is made up of [[actualize]]d
[[power]]-[[quality]]s... And this will [[develop]] into [[action]]-[[reaction]]s.
before power-qualities are actualized in milieux, in
determined space-times, they are [[actualize]]d, let's say, in "worlds". In worlds! In worlds... and
what does this mean? As in the birth of a world. For there to be [[actualization]], it is necessary [8] that a [[world]] be born
[[13CS6]]
great [[example]] of the SAS'
[[14CS8]]
So there is, I would say in overly technical terms, the presentation of the [[sinsign]], of
the [[situation]]-[[milieu]] in the first images, after which we move on to the duels. First
duel: Nanook builds his igloo. Here there really is a [[duel]] with this specific milieu and
not with the milieu in general. And then there are the famous sequences that are so
talked about, and rightly so, in the histories of cinema, the duel with the seal in the
ice, the hole in the ice and the seal fishing episode which really is a duel in its purest
form, since we have the [[index]]ical category of [[action]] and [[reaction]], or [[effort]] and
[[resistance]], Nanook who pulls a little, the seal pulling back etc., all of Nanook's
gestures, then the seal's attempts to defend itself and so on, which produce some
sublime [[image]]s. And then you have the great hunt, you have... you have all kinds of
duels that indicate... well, what do they indicate and how? How Nanook's family is
able to survive in this milieu that throws down a superhuman challenge.
[[14CS10/12]]
So anyway, if we were to identify laws, but I mean very general models of this [[large form]] of [[S-A-S]] or [[S-A-S']], I would say that the first great law – though we shouldn't
regard them as fixed laws, should we? – the first great [[potential]]ity, we could call the
law of [[montage]] of [[action]], the law of montage of action. Because, in fact, since the
beginning, we've looked at and considered montage under many different aspects,
and the first times I spoke about montage I said I would only consider montage from
a single [[point of view]]. But now there is a new necessary element to consider and
what is this? The aspect of montage that I want to consider is what I will call [[montage of action]].
And how should we define this montage of action? Well, in the S-A-S formula,
where we move from a [[situation]]-[[milieu]] to the [[duel]]-[[action]] that [[react]]s upon the
situation, it is necessary that, how can I put it, several [[line]]s emanate from the milieu.
It is necessary that a number of [[center]]s are formed in the milieu which will
additionally act upon the character, that is to say, that the character must be subjected
to several simultaneous actions. Why is this? Because there is a fundamental
discrepancy between the character extracted from the milieu and the milieu itself with
all its [[power]]s. There must therefore be a set of convergent actions enacted upon on
the character.
Why? In order to determine the situation, to determine the situation in which the
character is caught up. So, there must be simultaneous [[series]] that will all contribute to
the description of the situation and also to the resolution of the situation by the duel,
by the character's own action, whether or not these lines of action enacted upon on
the character are hostile to that character, or else are favorable to him... no matter
whether they are in any way hostile to him or in any way favorable. In any case, in
our S-A-S image we have the peripheral milieu, the centers [[distribute]]d within this
milieu and a number of lines of force exerted upon the character. In the [[example]] I
took, The Wind, you have one center, the wind in the meadow which acts upon the
poor young woman, and then another center... the harshness of the prairie inhabitants'
way of life which constitutes another center, which is the very center that will
determine her situation.
So here the montage will consist in the respective relation, from the point of view of
the images, between these influences, these simultaneous, edited determinations. It
will be a question of the [[rhythm]] and the [[form]] under which you pass to one or other
determinate series. What effect will two series have upon a character, beginning from
their respective centers as they are distributed in the milieu, and in what form? So, for
instance I go back to the example of The Wind. Here we have some images that show
that the heroine cannot bear the wind. So, the wind constitutes a peripheral center.
[[periphery]] [[center]] [[voluntary]] [[involuntary]] [[Maine de Biran]]
[[14CS13/14]]
This is what we'll call a [[montage of action]]. And what relation will these simultaneous
images have? Will they be [[rhythm]]s of opposition? Opposition is possible; for
example, in Eisensteinian [[montage]], oppositional rhythms are very frequent, but this is
not the only possibility. [[action]]s are often simultaneous and not necessarily in
opposition. So there will be inventions of montage, some very important inventions,
in the form of a montage of action. And if it is true, as histories of cinema say, that it
is Griffith who first gives importance to or who, in a certain way, invents the montage
of action – notably in Birth of a Nation – this doesn't mean that he determines a
definitive form of this montage of action, and every great filmmaker, especially in
this period, in the early period, was able to invent their own forms of montage of
action.
So I will take a very specific case from the forms of montage of action, what is
known as [[parallel montage]]. Whether we are dealing with one [[series]] of [[center]]s or
another, we have to ask ourselves what their relation is. As an example of this law of
the montage of action, I would just like to mention here...
[[example]] follows
[[14CS16]]
second law: [[action-image]] must eventually have both characters of the [[duel]] in the same [[shot]], they cannot be restricted to two separate [[series]] of [[montage]] or shots
[[14CS17]]
the [[condition]] of the [[action-image]], [[actual]] and [[determined]] states of [[thing]]s. But this
deepest level consists in extracting from historical-geographical, here-and-now states
of things, from specific milieux... in extracting from these milieux what would be like
originary worlds where, in order to constitute the action, impulses and objects grapple
with each other.
[[13CS14]]
it is impossible to immediately [[transform]]
the [[situation]] into [[action]]. The great [[gap]] indicates that between the [[situation]] and the
[[response]] – the character's behavior – there will be many [[intermediary]], there will be
many [[mediation]]s, and this is inevitable. We have already seen this with the first [[law]],
since it will take a series of simultaneous influences to constitute within the [[milieu]],
the situation in which the character's struggle takes place. So, the [[large form]] implies
this large gap.
[[14CS19]]
this is the law of the [[gap]] as I would like to propose it –
in the [[S-A-S']] formula, there is necessarily a maximum of difference between the
[[situation]] and the [[duel-action]], and at the same time, this maximum of difference must
be bridged by a maximum of [[mediation]]s. What are these mediations? These
mediations are, first of all, the simultaneous [[action]]s, the simultaneous actions that we
spoke about regarding the first law, and secondly... secondly, it is the relation the
character necessarily has with one or several [[group]]s. These groups that are at the
same time [[component]]s of the situation in which the character finds himself, that are
either allies or enemies of the character, will constitute a very important type of
mediation. Thirdly, the dovetailing of [[duel]]s that will bridge the difference between
the situation and the exemplary duel. In other words, one duel never comes alone;
one duel always hides another in the [[S-A-S]] form.
Hence the fourth and final law that we might call the law of the duel, namely,
whenever a duel is presented in the S-A-S form – and you find these everywhere – in
historical films it's the duels that take place in battle; in film noirs, it's the duels with
or between gangsters. Always, you find these duels, everywhere. In the Western, the
duel is fundamental. Anyway, the law of the duel is literally "one duel always hides
another," and the question we are asked as spectators, even if there is no answer –
though more often than not, there is an answer – is this: in the end what is the real
duel in all of this? This is what fills the gap, or this is one of the ways the large gap
will be filled. "I thought the duel was there but no, it's not there, it's somewhere else."
It's not just the centers, there are not just centers in the milieu, [[peripheral]] [[center]]s from
which the simultaneous actions enacted upon the character spring. It's at the level of
the very duel that engages the character that one duel hides another, and that this will
continually shift, it will shift in such a way as to more and more fill the entire [[frame]]
of the situation, and even of the milieu itself.
[[periphery]]
[[14CS20]]
And the [[power]]-[[quality]]s insofar as they are [[actualize]]d in a state of affairs
constitute what? A [[milieu]]. They constitute a milieu.
Now, nature can constitute this kind of milieu and, as such, have a great power. This
does not prevent the milieu from always being a derived world. It is not an [[originary]]
[[world]]. And the powers that nature can have in this milieu are the derived powers of
nature. If the power-qualities in themselves are what we call, using Peirce's
terminology, [[qualisign]]s, the power-qualities effectuated and actualized in a state of
things constituting a milieu are what we would call, again according to Peirce's
vocabulary, [[synsign]]s... this milieu as a derived world establishes a situation in
relation to a character or set of characters.
In other words, the milieu is a set of ambient circumstances that have a strong
influence on a character in relation to whom they manifest themselves as a situation.
And since we are no longer in the realm of originary worlds, the character is no
longer driven by [[impulse]]s.
This [[behavior]] – why can't we immediately sense what it is? – this behavior is
something you might think I want to refine at all costs. I actually need a technical
name, even if we won't understand the need for this technical name until later. But,
borrowing a Latin term, we can call it [[habitus]]. So, what is habitus exactly? It's
literally where our [[habit]]s derive from. Although habit is just a special case of habitus,
and that's why I need a more barbaric name, more that Latin anyway. So, what is
habitus? It is the way of being as it [[react]]s upon a situation or a milieu. It's behavior.
And we are no longer... here we see clearly that we are no longer in the originary
world of the impulses. It is that the impulse no longer appears as such. It will only
appear under derived [[form]]s. In the same way that the milieu is a derived world, the
impulse will itself manifest itself in the character only under a derived form,
meaning, either under the form of [[emotion]], or under the form of [[motive]] – motive and
[[emotion]] being simply the impulses as they relate to behaviors, impulses insofar as [7]
they are treated as simple [[variable]]s of behavior, as simple variables of habitus.
[[sinsign]]
[[14CS2]]
difference of [[sinsign]] from [[index]]
the formula of the [[action-image]] that could be
symbolized by S-A-S'... [[S-A-S']]: S is the [[situation]]-[[milieu]] – S is the milieu insofar as
it is organized as a situation in relation to a character or set of characters; A is the
behavior or the action or the [[habitus]] – remember it's habitus with an 'h', and that the
action in this case reacts upon the situation and the milieu; S' is the modified
situation. This is the second level of the action-image.
If the action-image, according to the terminology we've borrowed from [[Peirce]], is the
domain of [[secondness]] in the very approximate form: two... in any action, there are
two, we see that this level of the action-image presents two types of secondness. The
first secondness – and this is what will constitute the whole of the action-image – first
secondness is that of the sinsign, or of the milieu itself as a derived [[world]]. In what
way does this constitute secondness? In that the [[power]]-[[quality]]s are [[actualize]]d in a
state of [[thing]]s. There are indeed two terms: the power-qualities and the state of things
that actualizes them. These two terms are nonetheless quite difficult to distinguish, so
I would call this an introductory secondness. [[embryonic]]
Second secondness: the character acts, and by [[act]]ing, by behaving, [[react]]s upon the
situation. Here we have a real secondness. But in what form? Action, modification of
the situation. Or more profoundly, what is this second secondness exactly? It is –
and in fact we have seen it... we have seen it and that's why Peirce's analysis is
useful to us, we have seen this – all [[action]] implies [[reaction]], all effort implies
[[resistance]]. And after all behavior can perhaps only be conceived in what form? In the
form of a duel. And this is the true secondness of the action-image. It will necessarily
be a question of a [[duel]]: a duel with the milieu, or a duel with an [[element]] of the
milieu, or a duel with someone else.
Already, we can be either worried or satisfied, but we have the presentiment that the
form of the duel opens up all kinds of possibilities and that you will find it every time
there is behavior. Every time there is behavior, a duel is inscribed in the behavior. It
is this that will apportion the emotions and motives of the behavior. Now this, always
keeping to Peirce's vocabulary, is the domain not of the sinsign but of the [[index]].
When two elements are in a relation of action and reaction, one is the index of the
other. The resistance is the index of the effort, and the [[effort]] is the index of the
resistance. I would say, therefore, that the two secondnesses of the action-image in
this realist sense are that of the sinsign and that of the index.
[[14CS6]]
If I were to summarize, I would say, first [[secondness]] of the [[action-image]]: the [[milieu]]
throws down a challenge[ [[sinsisgn]] ]. The milieu throws down a [[challenge]] to one or more
characters, and by the same token the milieu, insofar as it throws down a challenge to
one or more characters, constitutes a "[[situation]]", the situation these characters are in.
Second secondness: the character [[react]]s, and this is the [[effort]]-[[resistance]] relation, or if
you prefer, it is the [[index]] or the [[duel]]. It's the index or the duel.
And, it is inevitable, and this is its genius, that the cinema will present us with a
certain number of works in this form of the [[S-A-S]] scheme...from
the situation-milieu to reaction-behavior, that is, we go from the [[sinsign]] to the index.
We go from the milieu to the duel. It will be a cinema of [[behavior]]... that responds to
which formula? Well, as we have just seen, to [[S-A-S']] with all its [[variation]]s. We can
say that there are two extremes, because there will be films corresponding to the
extended formula S-A-S': initial situation / action in the form of a duel / modified
situation.
we can have SAS or SA not always SAS'
So, I was thinking, this
form of action, or of action-image, or if you prefer – since at this level it amounts to
the same thing – cinematographic narrative. What could we call this S-A-S'? [9] [[large form]]
[[14CS7]]
The [[unconscious]] seems to delight far more in [[nonsense]] than in [[sense]], to rejoice in enigmas, rebuses, and [[condense]]ations rather than in comprehensible [[proposition]]s.
Although we must encourage [[analysand]]s to revel in the unconscious-instead of pushing it away and not wanting to pay it any heed-to derive gratification from its playful antics, were we never to go beyond exploration of its mazelike pathways and harebrained lucubrations, we would seem (unlike [[Maimonides]]) to leave analysands in a state of continual perplexity without any guide.
[[Against Understanding v1]]
The goal in psychoanalytic [[work]] from a [[Lacan]]ian perspective is not to cultivate an observing [[ego]] in the [[analysand]]...so that he can self-consciously catch himself in the act of having this [[fantasy]] that has bothered him for dozens of years... The goal is to get at its root by uncovering all the early childhood material holding it in place and everything that has since been [g[raft]]ed onto it-which involves dredging all this [[material]] up and [[bring]]ing it to [[speech]] [fantasy example was of what happened to a guy when he was a kid]
[[1A13]]
Saying all those things is not the same as [[understanding]] them, whether for the [[analysand]] or the [[analyst]]. One has to say them, first and foremost. Understanding them-if it ever comes at all-can wait. Analysis need not provide [[meaning]]: for meaning is something the [[ego]] recrystallizes around, the ego using meaning to construct a [[story]] about who one is and why one does what one does. In a word, meaning serves the purpose of [[rationalization]], which keeps the [[unconscious]] at bay. An emphasis by the analyst on meaning and understanding often leads the analysand to become very adept at finding psychological [[explanation]]s of her [[behavior]] but does little [31] or nothing to foster [[change]] in the analysand, thoroughgoing change such that she is no longer even tempted to feel or [[act]] as she has in the past.
[[1A26]]
[[analysand]]s give us myriad opportunities to pick up on what is being left out of the [[story]]s they are telling us (and perhaps even telling themselves), if we simply lend an ear to them. These opportunities include 1) [[pause]]s indicating there are things going through the analysands minds that they are not saying and that we have to ask about 2) [[speech]] that is broken off or aborted; and 3) unusual or [[polyvalent]] verbal [[image]]s or [[phrase]]s used by native speakers of the language spoken in the analysis.
[[1A29]]
When, on the contrary, the making of a [[connection]] is accompanied by a considerable [[affect]]... I would say that we have hit upon what [[Lacan]] terms the [[Real]]; we have made an impact at the affective, [[libidinal]] [[level]], an impact at the level of the [[satisfaction]]s available to the [[analysand]]-in a word, at the level of the analysand's [[jouissance]]. The most profound effects occur at this level, which involves [[transform]]ing the analysand's [[libidinal economy]], not simply the analysands self-[[understanding]]s.
[[1A43]]
...I would be tempted to say that it is the very existence of the [[unconscious]] that decompletes any [[understanding]] we may have; in other words, the unconscious leads to a fundamental incompleteness theorem in [[psychoanalysis]]...
[[1A56]]
We do not come to [[understand]] the [[analysand]]'s [[jouissance]] thereby, but merely to detect and work with it. Jouissance is, after all, what many analysands complain about at the outset of [[treatment]]: they feel they are not getting enough satisfaction in life or that they find themselves obtaining primarily forms of [[satisfaction]] they find distasteful and painful-in a word, dissatisfying.
...[[Lacan]] proposes that [[interpretation]] be unexpected, jolting and unsettling... "it is designed to make [[wave]]s." Interpretation-as employed in cases of [[neurosis]], not [[psychosis]]-should, in his view, seek to shake up [[meaning]] and [[deconstruct]] the analysands self-understandings.
In our endeavor to avoid imposing our own understandings (that is, [[imaginary]] [[projection]]s) on our analysands, we should strive to refrain from asking leading [[question]]s-that is, from steering analysands to characterize their experiences in ways thy themselves would not have characterized them had we asked more [[open-ended]] [[question]]s. If an analysands says "So I went out with this guy and then we spent the night together," and we want to know what happened during that night spent together, we are likely to receive very different answers if we asked "You had intercourse?" or if we ask something along the [[line]]s of "Spent the night together?" or simply "How do you mean?" In the first case, if intercourse had in fact been on the menu, we might simply be told "yes," even if intercourse was just one small item on the menu and hardly important to the analysands [[mind]]
[[ANT]]
[[1A58]]
By asking [[open-ended]] instead of [[leading]] [[question]]s we are likely to hear far more details, and it is generally the circumstantial and tangential comments people make-both in [[analysis]] and everyday life-that are the most revealing
[[1A61]]
"I think they're called acadas," he replied, and I could have immediately tried to correct him by offering cicadas, but instead I asked him when he had heard them before, which led to a discussion of his childhood in the south.
[[1A62]]
[[cinema]] offers us or pretends to offer us a [[perception]] that the natural conditions of the exercise of perception could not give us, namely, the perception of pure [[movement]], as opposed to the perception of mixtures[.]
There is no [[image]], and then movement. In the artificial conditions that Bergson has well determined, what is presented by cinema is not an image to which movement would be added. It is a movement-image -- with a little hyphen, with a little dash -- it is a movement-image. Of course, this is reproduced movement, that is, reproduced movement, I tried to say what that meant. That means: perception of movement, or synthesis of movement. It’s a synthesis of movement. Only here we are, when I say movement is not added to the image, I mean the synthesis is not an intellectual synthesis. It is an immediate perceptual synthesis, which captures the image as a movement, which captures in one the image and the movement, that is, I perceive a movement-image. To have invented the [[movement-image]] is the act of creating cinema.
Why? We shall see. We have not at all yet said why this implied such artificial conditions, namely it implies this whole system of instantaneous immobile sections, made within movement, and their subsequent projection, in fact, an abstract time. But that does not go beyond artificial conditions. But what is it that these artificial conditions condition? They do not condition an illusion or an artifice. Once again, I cannot conclude from the artificiality of the condition about the artificiality or the illusion of the conditioned.
[[1CS9]]
this would be the first [[problem]] that cinema would really pose for us, namely: what is this [[perception]] of movement that we could ultimately qualify as pure, as opposed to non-pure perception, to mixed [[perception]] of [[movement]] under natural [[condition]]s?
following this he presents two theses of movement, one of a reconstruction based on privileged positions, one on any instant whatsoever... 13 [[matter]] is what moves [[between]] [[form]]s.. p18 has a recap
[[1CS10]]
...duration which is the very continuation from one moment to the next. In other words, what we missed is that the next instant is not the repetition of the previous one. If it is true that the preceding one continues into the next, the next one is not the repetition of the previous one. This phenomenon of continuation which is one with [[duration]] cannot be grasped if we summarize movement within a [[succession]] of cuts.
[[1CS11]]
in the idea of the [[Whole]], he catapults two apparently contradictory ideas at first sight: the idea of a totality and the idea of a fundamental opening. The [[whole]] is the Open, it's a very weird idea. The Whole is duration; the Whole is what acts, it is what occurs; the Whole is what creates, and created it’s the very fact of [[duration]], that is, it’s the very fact of continuing[ 21] from one instant to the next instant, the next instant is not being the replica, the repetition of the previous instant.
[[Whitehead]] on p21 "hoe can something [[new]] be [[produced]]?
[[1CS19]]
It is a question of knowing in what form of thought that [[thought]] occurs in cinema. What is this thought? How does it relate to [[movement]], [[speed]], etc.? Is there a properly cinematographic thought?
[[1CS20]]
Teaser for next session
Listen, to nothing but the sound -- we will stop there today – to nothing but the sound to reflect better: "movement is a section (coupe)" -- he does not say it like that, I’m summarizing -- "movement is an extendable section of time". [Pause] It's odd, fine; it's not that the two contradict each other, I can say both at the same time -- we saw, we settled it, it's over now – “the instant is an immobile section of movement”, very simple. But what can that mean? We have seen, on the other hand, that there is an intimate link between within movement and duration. Well, how does movement express duration? This is our problem at the point we’ve reached: how does movement express duration? Bergson's apparent answer: movement is an extensive section -- he is not going to say “immobile” this time; it is pure movement -- movement is an extensive section of duration. Would the word "section" have two absolutely different meanings? Could I establish as an analogy relation, if you want -- I write, I trace this in the air, you follow me -- I write: immobile section over movement equals movement as a [mobile] section over time. No, you understand, those who are taking notes, you copy like that; you can still watch...
What? [A student asks Deleuze where is “the instant” in this formula or if it disappears] Yes?...
What?... Does it disappear? No, it is in the first part, the instantaneous immobile section; the
immobile section is the instant, instantaneous immobile section over real movement equals real
movement as section over duration.
What is this? It’s very odd. What does that mean? Sense this, wouldn't cinema combine all of these? Aren't they cinema units? He is no longer at all saying to us: "you are wrong" -- there, even, everything changes its tone, all that -- he is no longer saying "you are wrong to make of the instant a section of movement.” He’s going to say, "You’re right if you create some movement in space, some [[extensive]] movement, a section of [[duration]].” What is that, a section of duration? We understand what it is, "a spatial section", a temporal section, right. Well, that’s Bergson’s third thesis on movement, namely no doubt, if I sum it up, no doubt: the instant is a bad section of
movement since it is an immobile section, [Pause] but the movement itself is a good section of
duration because it is a temporal section. [Pause] So at this level, is it not all cinema that would
be recovered, under the idea, movement in extension as section, the extensive movement as
section of a duration? What would that mean in terms of the cinema image?
me:
temporal section vs instant section? extensive section vs ? A section of time that exists in extension-I think this is it.
[[1CS23]]
...so I am therefore starting with a really big point 1, which will keep us busy for some time, namely: Bergson's theses on movement, Bergson's theses on [[movement]], Bergson's theses on movement. This is my big point 1; I’ll let you know when I’m done. And I am saying, imagine a philosopher, it's never that simple, huh, neither as difficult, nor as simple, nor as complicated, nor as simple as they say because a philosophical idea, it seems to me, is always an idea with levels and [[landing]]s. It's like an idea that has its projections. I mean, it has several levels of [[expression]], of manifestation. It has a thickness. A philosophical idea, a philosophical [[concept]], always has a thickness, a volume. You can locate them at a particular [[level]], and then at another level, and at another level, without this causing any contradiction. But these are quite different levels... can always make a simple presentation of the doctrine or the idea, a presentation -- it's a bit like with tomographies -- a presentation in
thickness, at a particular distance, all that...
regarding [[movement]], there are three Bergsons, and that there is one that we all know, even when we have not seen it. There is one who has become so much like Bergson, the standard Bergson, really. And so, I am starting out by assuming there are three of them regarding this problem of movement, three great theses by Bergson, increasingly subtle, but simultaneous, completely simultaneous
The parts of a mixture are no less mixed than the [[mixture]] itself. There is no pure [[element]]. It’s tendencies that are pure. The only thing that can be pure is a [[tendency]] running through the thing. To [[analyze]] the thing is therefore to identify pure tendencies. It’s to identify the pure tendencies between which the thing is divided, to identify the pure tendencies which permeate it, to identify the pure tendencies which invest it. Fine. [Pause] So, this very special analysis that consists in identifying in a mixture the pure tendencies which are supposed to be invested together is what [[Bergson]] will call [[intuition]], discovering the articulations of the thing.
[[1CS3/4]]
creating a good [[analysis]] is to discover a pure [[tendency]] and an impurity which intersect with one another. Fine. This is getting more interesting; it’s in this sense that [[intuition]] is a true analysis, an analysis of [[mixture]]s.
if only in the world of [[perception]], it's always like this, because what is given to us is always mixtures of space and time, and that’s what is catastrophic for [[movement]], for understanding movement... as soon as we embark on such an operation, reconstructing movement according to a traversed space, we no longer understand anything about movement.
[[1CS4]]
The second presentation of this first thesis, of this same thesis, is a bit different. It’s this: we do not reconstruct movement with a [[succession]] of positions in space, or of instants, of moments in [[time]]... two terms, immobile [[section]]s and the succession imposed on them...
[[movement]] always occurs [[between]] two positions
[[1CS5]]
What is Bergson telling us? He tells us: all concrete movements, of course, have their [[articulation]]; each [[movement]] is articulated in one way or [[another.]]...
The encounter, oh yes, anything is possible. In order for the encounter, for Achilles and the turtle to meet, it is necessary that Achilles’s [[duration]] or movement find in his articulations to it, and that the turtle finds in the articulations of its movement to it, something that causes the [[encounter]] to occur within one and the other of both movements.
[[1CS6]]
the second presentation already seems to me much more interesting and intriguing. He distinguishes, he opposes two sets: first set, on the left, immobile sections plus the idea of succession as abstract time, [[immobile section]]s plus the idea of [[succession]] as abstract [[time]], and on the other side, on the right, movement, movement qualified as a particular [[movement]] or another plus concrete [[duration]] which is expressed in this movement.
[[1CS7]]
The means of reproduction are artificial; does that mean, can I conclude from the artificial nature of the means of reproduction in the illusory nature of the reproduced? [no]
[[1CS8]]
And yet this [[society]] is [[irrational]] as a whole. Its productivity is destructive of the free [[develop]]ment of human [[need]]s and faculties, its peace maintained by the constant threat of war, its growth dependent on the repression of real possibilities for pacifying the struggle for existence-individual, national, and international... The capabilities (intellectual and [[material]]) of contemporary society are immeasurably greater than ever before-which means that the scope of society's [[domination]] over the [[individual]] is immeasurably greater than ever before. Our society distinguishes itself by conquering the centrifugal social forces with [[technology]] rather than [[terror]], on the dual basis of an overwhelming efficiency and an increasing [[standard of living]].
Social theory is concerned with the historical alternatives which [[haunt]] the established society as [[subversive]] [[tendency]]s and [[force]]s
[[1D1]]
...here is a new pair: [[visibility]]s, [[statement]]s. What is needed is a comparative analysis of: the [[prison]] as a place of [[crime]]'s visibility; and penal [[law]] as the statement of [[delinquency]]... the general hospital as the visibility of madness; and medical statements as statements of unreason. Each has its [[line]], its own line, independent of the other.
...the prison is an [[evidence]]... evidence is a visibility... each historical [[formation]] has evidences... in the subsequent period, what was an evidence ceases to be one... every historical formation sees all it can see... every historical formation says all it can say.
An historical formation will be defined by its evidences, that is, by its [[regime]]s of [[light]]... its [[discursivity]]s, a statement regime will be called a discursivity by Foucault. Evidence and discursivity.
[[1F6]]
Every [[machine]] makes something be seen, in addition to what it does. The steam engine makes something be seen. [This] is the same as saying: [[architecture]] is a sculpture in [[light]]. Thus, machines make something be seen that could not be seen apart from the machine... [[visibility]] is inseparable from a kind of [[process]]... called a [[machinic]] process. [process vs [[operation]] ] what is a linguistic operation? it is an [[enunciative]] [[regime]]. The process is machinic but the operation is enunciative.... new pair: machinic process/enunciative operation.
[[1F12]]
the [[form]] of [[content]] has nothing to do with the [[signified]], let's assume the [[form]] of [[expression]] has nothing to do with the [[signifier]]... What is the form of expression in a given historical formation? it is the [[regime]] of [[statement]]s. What is the form of content?... the prison is a form of content. The general hospital is a form of content.
The prison-form is a form of content... the form of expression is penal law. Medicine form of expression, general hospital+asylum as form of content. [[visibility]]s are irreducible to a signified, [[statement]]s are irreducible to a signifier.
...[[discursivity]]s nullify themselves by entering into the order of the signifier.... rigorous foundational pair: [[field]] of visibilities/regime of statements.
What is done and undergone in a period presupposes its regime of light... all that is thought in a period... presupposes its statement regime. Statements are not ideas among other idea, nor are they simple communications between ideas. They are the conditions for the [[deploy]]ment of all the [[network]]s of ideas that operate in a period. Visibilities...are [[condition]]s of [[light]] that make possible bringing into light, raising into light, what is done and what is undergone in a period.
Foucault [makes a history of] the conditions proper to each period, which make both [[behavior]]s and [[mindset]]s [[possible]]. He is a [[philosopher]] and not a historian.
[[stratum]] [[strata]]
[[1F13]]
There is a primacy of [[statement]]s [not a reducibility of visible to the sayable, primacy =/= reducible]
There is no conformity between both forms, there is no [[isomorphism]] between the [[strata]] [[stratum]]...
There is a [[disjunction]] between [[seeing]] and [[saying]].
[[1F14]]
Foucault's first thesis: the heterogeneity of the two [[form]]s, difference in nature, what we see is not contained in what we say and vice versa.
second thesis:There is a [[reciprocal presupposition]] here.
Third thesis: The [[statement]] nonetheless has primacy over the [[visible]].
Fourth thesis: There are, in one direction as in the other, mutual [[capture]]s... statements constantly [[grasp]], [[capture]], the [[visible]]. Visibilities constantly grasp, capture statements But how is this [[possible]], since these are two heterogeneous, irreducible forms?
each one sends its arrows into the targets of the other... its a battle... if there are phenomena of capture, this wil lthus not be in the form of an agreement, of a conformity, it will be in the form of a capture, of a violent capture, a battle.... [20] mutual capture, wrestlers holds between visibilities and statements, as in a battle.
[[1F17]]
What is a historical [[formation]]... it is an [[assemblage]] of the [[visible]] and the [[sayable]], its a combination, its a way of combining visiblities and statements... [[dispositif]] appears here
[[savoir]] is always to [[produce]]... to combine the visible and the statable, to produce mutual [[capture]]s of the visible and the statable, and [[knowledge]] [[savoir]]... Everything is knoweldge, there is no prior experience to knowledge... there is not, as Merleau-Ponty said, a 'wild experience,' ... lived experience is already a knowledge.
[[truth]], [[knowledge]], [[operation]], [[process]] on p21
[[1F19]]
A [[regime]] of [[saying]] is the [[condition]] for all the [[idea]]s of a [[period]]. A regime of [[seeing]] is a condition for all that a period does.
[[Foucault Seminar]]
An illustration shows neurons in contact with other neurons by axon to soma connection in which the action potential travels along axon. If several impulses reach from one neuron to another over time, it is temporal summation; if impulses from several neurons reach a single neuron at the same time, it is spatial summation.
[img[temporal and spatial summation.png]]
Spatial [[summation]] is critical to brain functioning. In most cases, sensory input at a single synapse produces only a weak effect. However, if a neuron receives many incoming axons with synchronized input, spatial summation excites the neuron enough to activate it.
[[temporal summation]] and [[spatial summation]] ordinarily occur together. That is, a neuron might receive input from several axons in close succession. Integrating these inputs provides complexity. As Figure 2.5 shows, a series of axons active in one order can have a different result from the same axons in a different order. For example, a neuron in the visual system could respond to light moving in one direction and not another (Branco, Clark, & Häusser, 2010).
[img[summation effects.png]]
[[biopsych textbook]]
Excitatory synapses are in green, and inhibitory synapses in red. In the circuit shown here, excitation reaches the dendrite before inhibition. (Remember, any transmission through a synapse produces a delay.) The result is brief excitation of the dendrite.
[img[possible wiring.png]]
Most neurons have a [[spontaneous firing rate]], a periodic production of action potentials even without synaptic input. In such cases, the [[EPSP]]s increase the frequency of action potentials above the spontaneous rate, whereas [[IPSP]]s decrease it. For example, if the neuron’s spontaneous firing rate is 10 action potentials per second, a stream of EPSPs might increase the rate to 15 or more, whereas a preponderance of IPSPs might decrease it to 5 or fewer.
[[2.1-1c]]
sequnce of six major chemical events at the synapse
The neuron synthesizes chemicals that serve as neurotransmitters. It synthesizes the smaller neurotransmitters in the axon terminals and synthesizes neuropeptides in the cell body.
Action potentials travel down the axon. At the presynaptic terminal, an action potential enables calcium to enter the cell. Calcium releases neurotransmitters from the terminals and into the synaptic cleft, the space between the presynaptic and postsynaptic neurons.
The released molecules diffuse across the narrow cleft, attach to receptors, and alter the activity of the postsynaptic neuron. Mechanisms vary for altering that activity.
The neurotransmitter molecules separate from their receptors.
The neurotransmitter molecules may be taken back into the presynaptic neuron for recycling or they may diffuse away.
Some postsynaptic cells send reverse messages to control the further release of neurotransmitter by presynaptic cells.
The structure shown in green is an astrocyte that shields the synapse from outside chemicals. The astrocyte also exchanges chemicals with the two neurons.
[img[synapse action .png]]
[[2.1-2]]
Most neurotransmitters are synthesized in the presynaptic terminal, near the point of release. The presynaptic terminal stores high concentrations of neurotransmitter molecules in vesicles, tiny nearly spherical packets (see Figure 2.14). (Nitric oxide is an exception to this rule. Neurons release nitric oxide as soon as they form it instead of storing it.) The presynaptic terminal also maintains much neurotransmitter outside the vesicles.
[[2.2-2]]
At the end of an axon, an action potential itself does not release the neurotransmitter. Rather, depolarization opens voltage-dependent calcium gates in the presynaptic terminal. Within 1 or 2 milliseconds (ms) after calcium enters the terminal, it causes exocytosis—bursts of release of neurotransmitter from the presynaptic neuron. An action potential often fails to release any transmitter, and even when it does, the amount varies (Craig & Boudin, 2001).
For many years, investigators believed that each neuron released just one neurotransmitter, but later researchers found that many, perhaps most, neurons release a combination of two or more transmitters at a time. Some neurons release two transmitters at the same time (Tritsch, Ding, & Sabatini, 2012), whereas some release one at first and another one slowly later (Borisovska, Bensen, Chong, & Westbrook, 2013). In some cases a neuron releases different transmitters from different branches of its axon (Nishimaru, Restrepo, Ryge, Yanagawa, & Kiehn, 2005). Sometimes a neuron changes its transmitter, for example releasing one transmitter in summer and a different one in winter (Spitzer, 2015). Presumably, the postsynaptic neuron changes its receptors as well. All these processes make it possible for the nervous system to be amazingly flexible.
[[2.2-2c]]
The effect of a neurotransmitter depends on its receptor on the postsynaptic cell. When the neurotransmitter attaches to its receptor, the receptor may open a channel—exerting an [[ionotropic]] effect—or it may produce a slower but longer effect—a [[metabotropic]] effect.
[[2.2-2d]]
At one type of receptor, neurotransmitters exert ionotropic effects, corresponding to the brief on/off effects that Sherrington and Eccles studied. Imagine a paper bag that is twisted shut at the top. If you untwist it, the opening grows larger so that something can go into or come out of the bag. An [[ionotropic]] [[receptor]] is like that. When the neurotransmitter binds to an ionotropic receptor, it twists the receptor just enough to open its central channel, which has a shape that lets a particular type of ion pass through. In contrast to the sodium and potassium channels along an axon, which are voltage-gated, the channels controlled by a neurotransmitter are transmitter-gated or ligand-gated channels. (A ligand is a chemical that binds to something.) That is, when the neurotransmitter attaches, it opens a channel. Ionotropic effects begin quickly, sometimes within less than a millisecond after the transmitter attaches (Lisman, Raghavachari, & Tsien, 2007). The effects decay with a half-life of about 5 ms.
[[2.2-2e]]
Researchers often refer to the [[neuropeptide]]s as [[neuromodulator]]s, because they have properties that set them apart from other transmitters (Ludwig & Leng, 2006). Whereas the neuron synthesizes most other neurotransmitters in the presynaptic terminal, it synthesizes neuropeptides in the cell body and then slowly transports them to other parts of the cell. Whereas other neurotransmitters are released at the axon terminal, the neuropeptides are released mainly by dendrites, and also by the cell body and by the sides of the axon. A single action potential can release a neurotransmitter, but neuropeptide release requires repeated stimulation. However, after a few dendrites release a neuropeptide, the released chemical primes other nearby dendrites, including those on other cells, to release the same neuropeptide also. Thus, neurons containing neuropeptides do not release them often, but when they do, they release substantial amounts. Furthermore, unlike other transmitters that are released immediately adjacent to their receptors, neuropeptides diffuse widely, slowly affecting many neurons in their region of the brain. In that way they resemble hormones. Because many of them exert their effects by altering gene activity, their effects often last 20 minutes or more. Neuropeptides are important for hunger, thirst, and other long-term changes in behavior and experience. Table 2.2 summarizes differences between neurotransmitters and neuropeptides.
[[2.2-2f]]
There has to be an opening that connects the artificially closed system, that is, the system is only artificially closed. But that it keeps a connection with the [[Open]], sometimes in real time... [[Whole]]
What is the "Whole"? The "Whole" is the Open; it is the relation of the system with the Open. That is, it is real time or duration. [Pause] "Duration" equals "Whole". [[duration]]
[[2CS9]]
Movement is what relates objects in space to duration and what relates duration to objects in space. Movement is what makes objects in space endure despite everything, however closed the artificial system in which I consider them may be.
nothing would work in the system if [[duration]] did not of itself have a strange power to divide and reunite and keep dividing and reuniting. It divides itself into so many sub-durations. It divides itself into as many [[rhythm]]s, sub-durations, as there are objects in space concerned by [[movement]], concerned by a particular movement, and conversely, these objects come together in one and the same duration. Duration never ceases to be... at every moment, the movement of dividing and reuniting.
[[2CS11]]
three [[flow]]s, the waves, the bird, my inner life
Why do you always need three? Well, we always need three because there are always ... two flows being given, we need a third one to embody the possibility of their simultaneity or not, namely, the possibility that they are united in the same third or that they are divide. Possibility of joining or division.
And this possibility of [[join]]ing-[[division]] which belongs to the notion of flows, what does it depends on in the three flows of the flow of my inner life? It is my internal monologue which sometimes brings together the three flows including [the monologue] itself, sometimes dividing the three flows by grasping the other two as external to my inner life, to my duration. It is a kind of cogito of [[duration]] which would no longer be expressed in the form "I think", but "I endure", that, sometimes I bring together and sometimes I separate the flows in the same duration. In other words, it is through the intermediary of my consciousness that I have the [[power]] to grasp the flows, sometimes as one and sometimes as many. Why am I introducing this? Because here, then, we have the complete formula. If my duration is this capacity to divide, to subdivide into flows, or to unite the flows into one, you can indeed see how my consciousness is like the active element that causes the three levels, of what I call provisionally the image, to communicate.
Remember, the three levels of the [[image]] are, again, objects taken in sets, that is, in artificially closed systems; [Pause] the Whole, on the other hand, [is] at the other end, as duration, as change, as perturbation, since the Whole can only be defined as a function of these perturbations. The [[Whole]] is fundamentally a [[passage]]; the Whole is fundamentally a change in [[tension]], and precisely a change in tension cannot be localized. A change in tension, a difference in [[potential]], is not localizable. What is localizable are the two terms between which the [[difference]] is established. But the very difference concerns a Whole. The Whole works through difference. It
works through difference, this, the [[Whole]], that is, the [[Open]], the changing, duration.
[15] Movement, third or rather second in between these, [[movement]] in space, movement of [[translation]], I am saying that movement of translation relates objects to duration and relates duration to objects. When objects are related to duration, it is as if the flows were united in one; when duration, the Whole, are related to objects, it is as if, on the contrary, duration was [[divide]]d into sub-durations, divided into distinct flows, and you have the perpetual movement through which the streams are divided and through which the flows come together. In other words, it is like my consciousness, in the most psychological sense possible, it is my psychological consciousness that guarantees ventilation for the three levels. As a result, I can say now, and it is not by chance, that just as I said the living has an affinity with the Whole, psychic systems, all the more so, have an affinity with the Whole.
As a result, at the very extreme of kind of very bizarre progressive manner, I could compose the living and, all the more so, psychic beings, I could compose them among themselves all the way to reaching a one and same duration which will be the Whole with a capital W. In any case, for the moment, we have just commented on this third thesis from Bergson, namely not only the instant is an [[immobile section]] of [[movement]], but movement is a [[mobile]] section of duration, a thesis which takes up the set since movement is a mobile [[section]] of duration. Yes, because it relates isolated or isolable objects to duration functioning as the Whole and relates duration functioning as the Whole to objects in which duration will be divided into sub-durations.
[[2CS12]]
assume that the cinema [[image]] is the movement-image. What should be called a [[movement-image]]? Is it not this image made up of the three levels that we have just seen, of [[object]]s, [[movement]]s, a [[Whole]] or a [[duration]]? And the movement-image would consist exactly in this: it relates objects, movement relates objects to duration and sub[[divide]]s [[duration]] into as many sub-durations as there are objects, therefore communication between levels.
What is the operation of framing in cinema? I would say, well, it's very simple: to [[frame]] is to constitute an artificially closed system. In other words, framing is [Pause] choosing and determining the objects and beings that will enter the shot -- we do not yet know what a shot is -- the objects that will enter into the [[shot]] are determined by the [[framing]] and henceforth deserve a special name, insofar they already fully belong to the cinema. [[cineme]]
[[2CS14]]
A second thing, a second level: a relative movement is established between these objects... But the determination of the relative movement between objects, what is it? The determination of movement, and what makes me speak of relative movement, but actually there are several movements. So, let's add: the determination of the relative movement made up between these movements, which is established between these [[movement]]s, even if it means justifying it later, I would say, this is what I call a [[shot]]... I thus propose as a definition of the shot: the determination of the relative movement composed between objects, which have been determined by [[framing]].
The shot corresponds -- on an axis, if you like, if I look for a word -- to [[cutting]] (découpage). What is "cutting" in cinema? Well, [[cut]]ting is determining the complex relative movement that will join the framed objects together and will be divided between the framed objects in such a way... I am saying “in such a way”, in such a way that what? Well, you have to choose the complex relative movement that constitutes the shot in such a way that it relates the set of the framed objects to what? To a [[Whole]], that is, to a [[duration]], a Whole, that is, to a duration. [[temporal perspective]]
As a result, ... as a result [Pause] this third level as a cinematographic concept, namely the relation of the shot with a Whole that the movement in the present space in the shot is supposed to express, refers exactly to the concept of [[montage]].
[[2CS15]]
a tripartite distinction operating in the [[image]] ... well, you have to say yes. You have the cut-out objects, cut out by the framing. You have the composed [[movement]], relative to the objects, constitutive of the shot, and the relative movement relates the [[cineme]]s, that is, the objects, to the [[Whole]], which Whole is divided into as many sub-[[duration]]s as there are objects, which objects come together into a one and same [[duration]] which is that of the [[Whole]]. So, your trinity -- [[framing]], [[shot]] or [[cutting]], [[montage]] -- would translate these three aspects of the image.
What should be called the [[movement-image]] would be an image such that movement would express duration therein, that is, a change in the Whole, in other words, where the plane would be a [[mobile section]] of
duration. And being a mobile section of duration, understand well, being a mobile section of
duration, it would relate the objects determined by the frame, they would relate them, these
objects determined by the frame. to the Whole that endures, and it would relate the Whole that
endures in objects. And so that's it, what we could call movement-image...
[[2CS16]]
the shot ceases being a spatial cut in order to become a [[temporal]] process, at that moment, the shot can be defined, including when it is immobile, the shot can be defined by the complex [[movement]], that is, either the movement operated by things and beings and not by the camera, or by the impeded movement which connects beings and [[frame]]d objects between them. As a result, at this precise moment, the [[shot]] designates the operation by which [[movement]] relates objects to a [[Whole]].
[[2CS19]]
"[[movement]] as a [[relation]] between [[part]]s [[express]]es a [[change]] as [[affection]] of the [[Whole]]",
A quality is a perturbation. A [[quality]] is a change of tension, it is a change of energy; a quality is
a vibration or it's millions and trillions of vibrations. A quality may well exist in my
consciousness as a simple sensation, but it exists in matter as a vibration and a way of vibrating.
[[1CS24]]
...the Whole is not [[given,]] nor giveable... The [[Whole]] is the [[Open]].
if the living thing is comparable to the Whole, it is because the Whole, which occurs, that is, it is the Open, and the living thing is naturally open. What is it open to? Well, the characteristic of the living thing is to be open onto the Open. It is open onto the Whole, but the whole itself is the Open. [[life]]
[[2CS7]]
what defines an historical [[period]] isa complex [[field]] of [[visibilty]] [2] and a complex [[regime]] of [[statement]]s... defined by what it [[see]]s and what it [[say]]s. what does [[archeology]] mean?... a discipline that analyzes [[archives]] [which are] the audiovisual [[record]] of an histroical period, the visible and the statable.
what we will call a historical [[formation]] is the intertwining of the two stable [[form]]s of the seen and the said [paraphrased]
the [[prison]] is a new way of seeing crime [3] penal law is the [[formation]] of a new type of [[statement]] whose discursive object, statable object, is delinquency.
[[1F20]]
[[strata]] [[stratum]] are mentioned here and on p5
[[2F2]]
[[threshold]] of politicization, aesthetisization, nature, etc: the [[moment]] when a [[statement]] can be said to be scientific, aestheteic, to have crossed a threshold and have made it into a scientific statement. [paraphrase]... [[visibilities]] too have a threshold.
...the [[archive]] is a [[stratification]], its a [[stratum]] as a historical [[formation]]... it was the first determination of a stratum-it's a combination of the [[visible]] and the [[statble]]. That already makes for a certain [[thick]]ness of the stratum. Now I cann add that the stratum is a stacking of varyingly oriented thresholds. A stacking of thresholds... take into account the word 'stratum' and you see how it enriches the [[notion]] of [[archeology]]... a stacking of varyingly-oriented thersholds acccording to which statements can be deemed "political statements from a particular formation," aesthetic statements," 'scientific statements,' etc.
What does the [[statement]] [r[egime]] comprise? it comprises at least three things. A statement regime comprises the [[determination]] of the stratum on whioch statements are [[produce]]d, that is, the determination of the historical [[formation]], the determination of the family of statements to which the statement belongs, and the determination of the [[threshold]]... statements in the same family can belong to different thresholds, statements of the same threshold can belong to different families... at the threshold of biology you will have evolutionary statements and anti-evolutionary statements that belong to the same formation, that is, to the same regime-and yet they are not in the same family, and nevvertheless they have the same threshold. [family= anti/evo, threshold=biology?]
Thus, the formation, the family, the threshold, etc, are features of the stratum. Let's move on.
[[2F4]]
[[savoir]] is not [[science]], it is science that is a type of [[savoir]]... savoir is fundamentally a [[practice]]... knowledge is composed of practices: of [[visibility]], [[statement]] practices... [[discursive]] practices, [[non-discursive]] practices.
We can use the word [[procedure]] to [[designate]] the relation between the two practices.
[[2F8]]
it is through the opposition of [[movement]]s in space that movement in space will express the [[Idea]].
[14-17] discussion if [[intensity]]
[[3CS4]]
the three levels of the [[image]] of [[movement]] that I tried to identify, again it's not difficult, these are coexisting and communicating movements. Determining the objects that enter the [[shot]], this is called [[framing]]. To determine, second, to determine the shot as the relative movement, one, which brings its objects together, this is called a temporal shot or a [[temporal perspective]]. And finally, to determine their relation of the shot, in brackets “with other shots”, to determine the relation of the shot through other shots with the [[Idea]] or the [[Whole]], this is [[montage]].
[[3CS10]]
cinema image does not operate, despite appearances, with simple spatial perspectives; it gives us [[temporal perspective]]s.
[[2CS22]]
but what is an eye exactly? It's a movement-image. So, if the [[eye]] itself is a [[movement-image]] among others, it's clear that the movement-image doesn't refer to the eye.
[[4CS7]]
For [[Bergson]], its not a conscioussness of something, but consciousness is something, "We place ourselves in the very heart of things." [[4CS13]]
Light is in things. It's things themselves which are of [[light]]. Things are light.
And we are the black screens. That is, darkness is what we bring to the question. And it's only thanks to this darkness of ours that we can say: “ Ah yes... we perceive things”. If we didn't have this black screen, we wouldn't
perceive them at all.
There has never been a negation of the [[subject]] as powerful as Bergson’s, as what we find in Bergson. A world without subject...
[[4CS16]]
But [[imagination]] cannot be defined as a [[faculty]] that [[form]]s [[image]]s, because an image only begins from the moment that it starts to [[deform]].
There is only image if something moves and changes. Here we have a very simple kind of certitude... you will never unseat a little conviction I have that if there is nothing... that moves, that changes, there is no image at all.
The image is something that moves and changes.... But a philosopher as great as Bergson is wouldn't let himself remain stuck. It wouldn't bother him to say: I'm speaking from this point of view... I'm speaking from the PoV of the cinema-image itself.
[[4CS24]]
If it doesn't [[change]], if it doesn't [[move]] [it's]..a [[residue]]
Oh really... image is movement and [[movement]] is [[image]]? And so in what does their identity consist? There is the heart, the heart that each of us has. Oh, [[Bergson]], help us to understand this identity between image and movement!
[[matter]] = [[image]] = [[movement]].
What he wants to say is this: we cannot simply say that an image is merely subjected to the action of other images. Or that it merely reacts to other images. It is, strictly speaking, identical... an image is, strictly speaking, identical to the [[action]]s of other images to which it is subjected and equally it is identical to the [[reaction]]s that other images have to its own operations upon them. In other words, the [[set]] of images and the set of actions and reactions of things upon each other are, strictly speaking, the same thing.
[[4CS25]]
One of the elementary parts of an image is the actions of other images to which it is subjected, and the reactions that other images have to its own [[operation]]s upon them. In other words, an image is a set of [[action]]s and [[reaction]]s.
there is clearly no difference between image and movement. In its most profound sense, that's what the image is: the very thing that is subjected to an action, the very thing that exerts a reaction.
In other words, these images, defined as the set of actions and reactions that constitute the universe, are images in themselves that unceasingly act upon each other and react to each other – and here Bergson adds something very important – on all their sides. On all their sides. Or if you prefer, which amounts to the same thing, in all their elementary parts. A world of images in themselves that unceasingly act and react on all sides and in all their
elementary parts. That's what the [[movement-image]]
You, your personality, is a movement image. What do you have? You are movement-images. Everything is.
an idea that made Bergson laugh: saying that the brain contains images. Just as the idea that
consciousness could contain something would make Sartre laugh. Can you believe that[?]... [the [[brain]] is an image]
[[4CS26]]
What is more, if I push Bergsonism to the limit, to conclude I would say that true perceptions are not something I have. So, who is it that perceives in this sense, to remain at this stage? What perceives are the movement-images themselves. So, what does it mean to perceive? To perceive means one thing only. It means to be subjected to an action. Or even to be subjected to an [[action]] and to have a [[reaction]]. That's what perception is. Things perceive in themselves both themselves and other things. Things are [[perception]]s. Saying that they are [[movement-image]]s amounts to the same thing as saying that they are perceptions.
[[Whitehead]] also said something interesting... He had a term that I find even better than the word perception. He said that things were [[prehension]]s. What does a thing prehend? A thing prehends the set of actions to which it is subjected.
[[4CS27]]
[[summary]] at the start
This second [[question]], I would say, is the [[problem]] of [[thought]] in relation to cinema, whereas the first question was the problem of [[perception]] in relation to cinema.
First aspect: the instantaneous objects presented by the image – what Pier Paolo Pasolini calls
kinemes 3 – through which we defined the cinematic concept of framing.
Second aspect: the relative movement between objects, the relative and complex movement
between these objects by which we defined the shot, the temporal plane.
Third aspect: the Whole, that is to say the Idea to which the movement relates the objects, such
that this movement expresses a change in a Whole. The ideal Whole, to which the relative
movement relates the set of objects. This was what enabled us to define a third great concept of
cinema: montage. How the shot, which is to say the relative movement between the framed
objects, will come to relate these objects to a Whole. And in this sense, we distinguished
between three types of montage: dialectical montage, quantitative montage and intensive
montage, according to the manner by which movement in space was able to express a change in
the Whole.
[[movement-image]]
[[3CS24]]
Let's suppose that [[movement-image]]s are in some way pellicular or skin-like. They're [[surface]]s. Well, they are actually planes, very special [[plane]]s since they are temporal planes. We've already seen this, we can take it for granted, it helps us get our bearings, but that doesn't prevent them from being what are in the end, surfaces.
The other kind of images are [[volume]]-images. What’s interesting isn't so much the word recollection, although we will see how interesting this turns out to be, since it directly connects to the question of Time. Temporal perspectives already connected to the question of Time... [[recollection-image]]s are voluminous, whereas movement-images are superficial. Which is not to judge them harshly, since the superficial can be just as good as the voluminous.
[[4CS4]]
the [[movement-image]] [[divide]]s into three types. And these kinds of movement-images Bergson names as follows: firstly, perception-images, then action-images and, finally, affection-images. So, the movement-image itself consists of three very distinct categories of image. We're talking about the movement-image only. The movement-image consists of three very distinct, very different types of image, even if they are deeply connected: [[perception-image]]s, [[action-image]]s, [[affection-image]]s.
[[4CS6]]
Bergson introduces nothing more than this notion of [[delay]]. What does he mean by delay? It's simple: delay means that at the level of certain [[image]]s the [[action]] to which they are subjected is not immediately prolonged into a performed [[reaction]]. Between the action received and the resulting reaction there is an [[interval]].
[[5CS8]]
We will reserve the word “action” to refer to reactions that, strictly speaking, occur only after this gap. Regarding such images as those that react to the action they undergo, on condition of there being an [[interval]] between the two movements, we can say, strictly speaking, that they act. In other words, there is “[[action]]”, strictly
speaking, when a [[reaction]] doesn't immediately follow the action undergone.
[[5CS12]]
there are special images which are thus endowed with this property of constituting a gap or detour.
a movement-image was one that received actions, was subjected to action in all its parts and on all its sides. In all its parts and its sides. But here, when there is a gap between the received movement and the executed movement, the very condition for such a gap to occur is that the received movement be localized. That the received
excitation be localized.
the special image will be an image that only in certain of its [[part]]s and on certain of its [[side]]s receives the excitation that is exerted upon it and is subjected to the actions it receives.
In other words, the first aspect of the gap, or the special image, will be its capacity to “select”, to select in terms of the excitation received or, if you prefer, to [[eliminate]], to [[subtract]].
[[5CS14]]
These three kinetic terms that allow us to define the special image are:
Firstly: [[subtract]]/[[select]]
Secondly: [[divide]]
Thirdly: [[choose]]
divide excitation a la the inputs go to varied parts of the cortex, then choose an action.
Therefore, I will say that a given image that is capable of selecting something from among the actions to which it has been subjected, of dividing the excitation it receives, and of choosing the action it will carry out on the basis of the received excitation. We could call this a [[subjective]] image. [18] Note that it is entirely part of the realm of movement-images. It is wholly defined in terms of [[movement]]. So why [[subjective-image]]? And what do we mean by subject here?
[[5CS15]]
Here subject is no more than a word that designates the gap between [[excitation]] and [[action]]. And I would say the [[subjective-image]] is... but what does this [[gap]] mean in real terms? The gap simply defines a center that we would have to call a [[center of indetermination]].
[[5CS17]]
What is the [[perception]] of a thing? It is the thing once again minus all that doesn't concern me. It's the thing minus something.
What is needed to be able to [[perceive]]? First of all, I have to cut out the thing around its edges. Indeed, I have to prevent it from communicating with other things in which its [[movement]]s would otherwise dissolve. Or with which its movements would merge.
things are in themselves perceptions. In other words, a thing is a movement-image. It unceasingly receives [[action]]s and performs [[reaction]]s... or has reactions. I can equally well say that all the actions to which it is subjected – it is subjected to actions in all its parts – and all the reactions it performs – it performs reactions in all its parts...
I can equally well say: The set of actions to which it is subjected and reactions it performs are
perceptions.
I would say: the thing is a total perception of all that it is subjected to and all that it performs.
[[5CS18]]
An idea [[Whitehead]] had in the same period, that “things are prehensions”. Things are prehensions. In fact, they prehend – in the sense of taking or seizing – they seize upon... Prehension is at the same time perception and this seizing upon. They seize upon all the actions they receive and all the reactions they perform. But I would say also that they seize upon these in the conditions I have outlined, in all their parts and on all their sides. So, I would say...
each thing is a total [[perception]]. Which is why it is not a simple perception. I would call it a
[[prehension]].
Prehension being like a sort of unconscious perception, a kind of micro-perception and [[apprehension]] being a conscious perception. So I repeat: Things are total perceptions – which is to say prehensions.
things are prehensions or total perceptions, while my perceptions of things are partial perceptions, and this is why they are conscious.
[[5CS19]]
this black screen, what is it? It's the [[center of indetermination]]. it's things which are luminous and we who are obscure.
This is the case with total [[perception-image]]s, they are [[movement-image]]s. As Bergson will say in
another text, “Photography is in things”. Photography is in things, things are total perceptions, or
they are total prehensions. “The [[photograph]], if [[photography]] there be, is already taken, already
developed in the very heart of things and at all the points of space ”.
Except that it is translucent. Why is it translucent? Precisely because these things never cease to
vary, and to pass into one another at the same time as they receive actions and perform reactions.
“Here there is wanting behind the plate the black screen on which the image could be shown”. 8
Isn't the special image, which is to say what each of us bears in the universe of movement-
images, precisely this black screen on which the image could be shown, meaning so that the
selection can be made.
We perceive things where they are. What's more perception is in things. [as they are [[prehension]]s]
[[5CS20]]
Therefore, my perception is clearly the [[perception]] of what is solid. Because the isolated
movement-image, insofar as we retain only the part of its action that concerns us, is precisely
what we would call a solid. Whereas total [[prehension]] – which is at one with the thing – is
necessarily of things that are liquid, or even worse, gaseous. And it's clear that the universe is not
solid, it is liquid and gaseous, profoundly gaseous. Ah, so... why is this of concern to cinema?
This is going to be of very great concern to the nature of the cinematographic image... but this is
something I can't go into yet.
[[5CS21]]
That is, what it will grasp is the virtual image of the thing.
And perception from a distance is precisely this grasping of the thing's virtual image. Which
means that as I have been very selective in the thing's action upon me, I have at least gained the
perception of a virtual action. Which is to say that what I retain of the thing's real action upon
me I perceive from a distance before it occurs.
Therefore, I can already define a perception-image by means of two aspects:
Firstly, I would say that a perception image is an image minus something. It's an image that has
undergone the selection and subtraction process that we've just seen. And this is the first aspect.
It is thus isolated from other images and no longer fuses with them through the reciprocal play of
their actions and reactions.
Second aspect: The [[perception-image]] is an image that presents a thing's [[virtual]] action upon me.
third aspect:...it's an image that also presents my possible
action upon the thing. As [[Bergson]] never repeats saying, [[perception]] is sensory-motor in nature.
So, this is what I was seeking, namely, the three aspects of what we may now call the [[subjective-
image]] or perception-image.
[[5CS22]]
Then there will be a second type of image – and if you have followed me so far, you will have
already understood this, since it was already prefigured and pre-announced by the first type. This
second type of image I would call – in line, I presume, with Bergson's text – no longer the
[[perception-image]] but the [[action-image]]. Because in fact the existence in the universe of
[[movement-image]]s, the existence of [[center of indetermination]], implied not only that there were
[[perception]]s but also that there were, strictly speaking, [[action]]s... since reactions no longer
automatically followed on from the actions undergone, but there was instead a choice, which is
to say the formation of something new that we could call action. So, this was already included in
perception and in fact these action-images were already taking shape in the world of perception
if we can accept the idea that the perception-image is not defined solely in negative terms.
COI=[[subject]]
At every instant all the images vary both
for themselves and in relation to one another.
[[5CS23]]
The last object in this sense is the object which is most in the depths – although depth arises as
relation. The universe of images... images themselves were formerly without depth just as matter
was without virtuality. Depth begins to rise from the moment that the set of images starts to vary
in relation to specialized or privileged images that are defined as centers of indetermination.
At that moment, with regard to this center, a given object-image may be more or less far, one
further away, another nearer... and it is this which will define the order of the objects' virtual
action upon me, but it will also define... what is the closest or the most menacing object or else
that which I can seize hold of, and thus... it will permit me to define the order of my possible
action upon things.
You see that this second aspect – the [[curvature]] that the universe assumes – will form the basis of
what is, strictly speaking, a logic of action. It will provide... or rather it will entirely encroach
upon perception, all of this becomes mixed. Keep in mind the idea that these two types of images
become extremely mixed. Yet I would say that in the world of perception, the curvature of space
introduces us to and induces us to pass from a first type of image, namely the [[perception-image]]
to a second type, namely the [[action-image]]. Action-images that are doubly defined by the virtual
action of things upon me and by my possible action upon things... where, as always, the word
“me” indicates a center of indetermination and nothing more.
[curvature as how the universe exists as the universe, for me]
[[5CS24]]
A minute ago, I said that I perceived things where they are... when the thing reacts on my
body, and becomes confused with a [[part]] of my [[body]] it is upon my body that I perceive what is in
question.
And what is it, this something which is in question? What is this apprehension of real actions that
penetrate my body? You see how it's no longer things that traverse me in total indifference... it's,
as one says, things that affect my body in abolishing all perceptual distance. I no longer perceive,
I feel. I no longer perceive, I feel. And, in the same way that I perceived things in things where
they were, I now perceive that I feel or I feel what I feel where it occurs, namely upon and in my
body. And this is what we call [[affection]].
So, you see... here we have a third type... Indeed, Bergson will underline that there is a
difference – whereas there was no difference in nature between the thing and perception of the
thing... on the contrary there is a difference in nature between the thing and affection, between
perception and affection...
That's a very nice definition of affection: it's the protest, the claim of the organic parts that have
been immobilized. That's what affection is. In other words, it's the effort of the immobilized parts
of my image, meaning of the image that I am, to reclaim movement for themselves. So this could
be an affection of joy or else of sadness – these are different things that we have to distinguish
according to the case. And the splendid definition that Bergson proposes is: What is an affection?
It is a “motor tendency in a sensory nerve”.
It's a motor tendency in a sensory nerve. To the best of my knowledge this is the finest definition
of affection ever expressed in philosophy.
[27]
So, your toothache is a motor tendency in a sensory nerve. A fantastic definition, I would say.
But also... what is falling in love, if not a motor tendency in a sensory nerve?
This definition covers the whole domain of affections. To the extent that we could say, we could
very well say... I'm trying to think how I can expand on this... There is in us a part that isn't
simply a receptive part of our organism, but that perpetually gives shape to the effort of a motor
tendency in a sensory nerve. It's the face. The [[face]]
[[affection-image]]
with respect to these [[center
of indetermination]], [[movement-image]]s will be divided into three types that we can call – Bergson
doesn't use these words as such, but you will find that this is what he means – that we can call:
[[perception-image]], [[action-image]], [[affection-image]]. These three types truly being images different
in kind from one another. To the extent that the [[assemblage]] of movement-images, the material
assemblage of movement-images, the [[machinic assemblage]], the [[universe]]... could in the end be
defined as follows: as the set of movement-images insofar as they necessarily give rise – with
respect to centers of indetermination – to perception-images, action-images and affection-
images.
[[5CS25]]
in the end there is neither [[consciousness]] nor [[thing]]s. So, then what is there? There are only movement-images. It is in itself that [[image]] is [[movement]]. The true unity of [[experience]] is the [[movement-image]], written with a hyphen.
the image is what acts upon other images and reacts to the actions of other images. The image undergoes the [[action]]s of other images and triggers [[reaction]]s in other images.
We call “image” that which appears... And what Bergson tells us is that what appears is in movement.
This means not only that the image acts and reacts – that it acts upon other images and other images upon it – but that it acts and reacts, Bergson says, and here I use his very words since they will come in extremely useful when we encounter them in this chapter: “in all its elementary [[part]]s” – the [[elementary part]]s that are those of the image or of movement, as you prefer. It reacts in all its elementary parts or, as Bergson says, on all its [[side]]s.
[[4CS28]]
Every image acts and reacts in all its parts and on all its sides, which are themselves images. What does this mean? You see what he's trying to tell us, though it's not a simple matter to [[express]] all this, is that we should stop believing that the image is a support of action and reaction, since the image is in itself, in all its parts and on all its sides, action and reaction. Or, if you prefer, [[action]] and [[reaction]] are [[image]]s.
what is image? Image is shock, [[vibration]]. So, it's clear that image is [[movement]]. The expression, which does not actually appear in Bergson's text, but is continually implied by it, the expression [[movement-image]] is enunciated from this point of view, but what is this [[point of view]] exactly. Once again, it is a point of view that turns out to be extremely well founded. What Bergson wants to tell us in this respect is: There are neither things nor consciousness, only movement-images, and this is what the [[universe]] is.
There are only movement-images whose relations to one another are in perpetual [[variation]].
Law is the rapport between an action and a reaction. These laws can be amazingly complex, yet they are nonetheless [[laws]].
[[5CS3]]
By definition, matter is that which does not contain [[virtual]]ity. In [[matter]], [[Bergson]] tells us, there is nothing hidden.
[[5CS4]]
This triple identity of [[image]]-[[movement]]-[[matter]]... it's like, one could say, it's like the [[infinite]] universe of a universal [[variation]]: these [[action]]s and [[reaction]]s in perpetuity. Once more, it's this that I want you to try and understand – it's very simple, it isn't the image that acts upon other images and it isn't the image that reacts to other images... it's the image, in all its [[part]]s and on all its [[side]]s, that is in itself action and reaction, meaning [[vibration]] and [[shock]].
[[5CS5]]
So, there we have three notions that we have to distinguish: artificially closed systems, for which I propose we employ the word set ([[ensemble]]). A set would be an artificially closed system; secondly, the [[Whole]] or each Whole that is fundamentally of the order of [[duration]]; and now we have a third notion that we should take care not to confuse with either the first or the second notion. For this, I wish to employ the word universe. The universe would designate the [[set]] of [[movement-image]]s insofar as they act upon and react to one another.
in the universe of movement-images the only sections are the movements themselves, namely the facets of the image, the sides of the [[image]].
[[5CS6]]
I would say that what we have here is not a mechanistic or a mechanical universe but rather a
machinic universe. It's the machinic universe of movement-images. So, what is the advantage of
using the word “[[machinic]]” here? It's that this word enables us to affirm the triple identity image
= movement = matter.
Therefore, I could define the universe more precisely as the machinic [[arrangement]] or
[[assemblage]] of movement-images. And, once again, here the question I put to one side pursues
me: Isn't cinema precisely this, or a part of cinema? Isn't cinema in terms of a quite general
definition – a very partial one, I'm not saying it's the only definition we could give cinema...
Couldn't we say, yes, it's the [[machinic assemblage]] of [[movement-image]]s?
an [[image]] is at the same [[time]] [[material]] and [[dynamic]]
[[5CS7]]
what is a [[subjective image]]? its the [[image]] of a [[set]] of [[element]]s seen from the [[point of view]] of someone who is themselves [[part]] of that set of elements... this cannot refer to a [[dream]]-image or a [[recollection]]-image
subjective perception w/active factor is mentioned
[[CS612]]
subjective perception w/active factor, then perceptual factor
subjective to objective image switch, the white sheik
the objective image...the [[image]] of a set of [[element]]s seen from a [[point of view]] exterior to the [[set]]
[[6CS13]]
subjective has to be how the character sees it, not just their literal PoV from their eyes. What they see=/=what a camera sees from their spatial position
..you see how I never cease having to move from one pole to the other?... Which boils down to saying that the key image of [[cinema]] from the [[point fo view]] of the [[perception-image]] is what we should call a half... a [[semi]] [[subjective]] [[image]]
The [[Whole]] will normally be given by semi-subjective images... semi subjective implies something of the order of a reciprocal [[becoming]]. The subjective image that becomes objective and that is always suscptible to becoming objective...the objective image that becomes subjective and is always susceptible to becoming objective. Yet at the same time the semi-subjective image must have its own [[consistent]] status.1.. it would constitute a kind of [17] [[being-with]] the character. A being-with of the [[camera]]. this.... would thus define a something like a position of equilibirum of the semi-subjective image and would explain why, in consequnce, the subjective image can always become objective, the objective iamge subjective, and so on.
[[6CS14]]
semi-subjective image assures circulation and transformation of obj img->subj img and vice versa. 'This is the first [[figure]]: the [[camera]] filming behind the character.'
If we start from this idea of two poles, we realize that not only is there a bi-polar [[image]], the semi subjective image, but that this image has its own [[consistency]].
[[6CS16]]
[[free indirect discourse]] [[free indirect subjective image]]
FID consists in a certain contamination or [[contraction]] of two [[discourse]]s: the discourse of the person who speaks and that of someone else who reports what has been said.
...according to [[Pasolini]]'s own definition, which I find completely legitimate, free indirect discourse is not a [[linguistic]] category. It is rather, as linguists themselves would say, a stylistic category.
[[6CS17]]
The [[perception-image]] in [[cinema]]... not exclusively but in a privileged manner, is what we would call a [[free indirect subjective shot]].
[the] second level is that of the [[cinema]] consciousness,,, critical consciousness of the camera... an [[operation]] by which cinema becomes conscious of itself through a subjective image of the character while the character in turn gains self-consciousness or takes a distance from him or herself... through a critical consciousness.
[[6CS18/19]]
our poles are not 'subjective [[perception]]-critical consciousness of cinema. Or better [[point of view]] of the character-critical consciousness of cinema.'
...cinema will attain self-consciousness... just as subjective vision will be raised to a higher level thorugh this cinema
[[6CS20]]
And secondly, the camera-[[consciousness]] in the way it establishes the picture, and the succession of pictures as well as the contamination between the two – meaning between the world as it is seen by the Marquise, who finds herself in a bizarre situation that affects her [[perception]]... and the world as the camera shows it to us. And it’s in this that we have the contamination between the two levels.
This [[free indirect]] [[subjective]] [[image]] would be defined not simply by its oscillation from the objective to the subjective pole and vice versa but by the co-existence of two levels: the subjective perception of a character or, to be more precise, the subjective, [[mobile]] [[perception]] of a character on one hand and the [[fixed]] [[consciousness]] of the [[camera]] on the other.
[[6CS21]]
We've shifted our duality: in place of the duality of the two poles, we now have the duality between a character's
[[mobile]] [[subjective]] [[perception]] and a [[fixed]] [[camera]]-[[consciousness]].
This means that right from the start there must have been something other than the [[movement-image]].
[[6CS24]]
[[fixed]] consciousness [[movement-image]] duality
And so, what is cinema consciousness? It's the work on the frame. Let's suppose – which doesn't
mean excluding other possibilities – that it could be this. It could be this. What is the fixed
consciousness of the camera? It's what we can do with a frame. What I mean by this is that my
two levels give rise to a triple displacement... I pass from the movement-image to what?
First determination. First level: average [[image]]. Second level: still [[frame]].
Second Determination. First level: [[movement]]. Second level: [[interval]] between [[movement]]s. Not
by chance does Vertov lay claim to a theory of intervals.
Third determination. First level: camera. Second level: editing table. The editing table that
permits work on each single frame.
It's no longer a critique of cinema, but a critique conducted by cinema itself.
It is cinema's own task to critique the [[movement-image]]. And so, it's not the critique of the
movement-image that constitutes a critique of [[cinema]].
[[6CS25]]
...a [[film]] is a [[mixture]], within given proportions, of three types of [[image]]. It's a mixture of [[perception-image]]s, [[affection-image]]s, and [[action-image]]s
[[5CS26]]
[[example]]
First kind of image: a cowboy filmed frontally, we see him looking and then we see what he's
looking at. He's looking at the horizon in a western kind of landscape. This, I would say, is a4
perception-image. All this once again presupposes what we saw last time. Clearly, he's looking for something. He's worried. As Bergson would say, he's seeking what concerns him and thus he ignores what is of no concern to him. What is it that concerns him? Are there Red Indians lurking about? So, first type of image. In technical terms I would say - though here I'm probably in danger of making a mistake – but it's just to set out some concepts. So here you might have a series: Shot. Reverse shot. Pan. [[perception-image]].
Following on from this, a second type of image. We're still within the domain of the perception-image. It all has to link up. ''Every [[image]] must be rooted in another''. We're still within the perception-image but it's as though the horizon had begun to curve. We have already seen the importance of... what can we call it... what's the word? You know what I mean. Ah, yes... of this curvature that the world of perception assumes. This is where the perception-image gives rise to the [[action-image]]. Because what happens when the world assumes this [[curvature]]? The things of the world, the things and beings of the world, are organized according to relations of [[distance]] and [[depth]] that at the same time define the [[virtual]] [[action]] of things upon me and my [[possible]] action upon things. It's the birth of action. This universe curves and in fact Indians have now appeared at the top of the hill or mountain. One Indian, two Indians, three Indians... And so here we are, already in the action-image, or apparently in the action-image. The Indians descend from the hill, they regroup, they come galloping down and so the cowboys arrange their wagons. The action-image in this case might be a tracking shot. Fine.
Third kind of image: the cowboy is struck in the eye by an arrow. Close-up of his agonized face. [[affection-image]]. I said before that there were implausible elements in this sequence but what are they? What are they exactly? I say, let's suppose that a film, from the point of view that concerns us, namely that of the [[movement-image]]... let's suppose that the film is composed of... is really constituted by this mixture of the three types of image. As well as of passages from one type of image to another.
You can already see that, practically speaking – and of course the ideal would be that our
concepts respond to practical problems that you might encounter in any film – there is no
predetermined order. In which cases, for example, must the affection-image precede the
perception-image? And contrariwise, in which case does the perception-image come first. We
don't know. We don't know.
Here’s a case where the affection-image precedes the perception-image: you see a horrified face, but you don't know the cause of the horror. First you see the horrified face and only afterwards do you see the horror, you perceive the horror. In other cases, this won't work. In other cases, it's clear that the emotion of the spectator will clearly be much stronger if we see first of all... if we have the perception-image first, because in that case it will have us saying: Oh, no! He's going to be really terrified! In this case, it's the perception-image that comes first. You see that – and what I'm about to say is quite simple – that we are in the process of grasping what for us will be a second meaning, in this progression -- since once again what I'm proposing here is a very gradual research process -- here we can grasp a second sense of the word [[montage]].
[[6CS3]]
I would say that at the point we've now reached, we are beginning to come across a second
definition of montage: in this sense what we could call [[montage]] would be the determination in a given film of the rapport between these three types of image and their relative [[proportion]]s. No longer the rapport of the movement-image with a [[Whole]] of a different order but the rapport of the three types of [[movement-image]] with each other, which is to say the rapport and relative proportion in a film of [[action-image]]s, [[perception-image]]s and [[affect-image]]s.
...[[mixed image]]s...[[image]]s that present us with a [[mixture]] of these types-what we could call [[secondary]] [[composite]] images
[[mixture]]
[[6CS4]]
a [[perception-image]] is first posed "left hanging and thus appeared as an aesthetic effect of cinema' and becomes [[effectuate]]d. It hangs from the cinema, than effectuates itself in a specific character.
The second example that I proposed. An [[action-image]]. This corresponds roughly to the example of the western I gave before but this time, rather than noting the [[mixture]] of [[image]]s I will give you three pure examples. So... a pure example of an action-image. The other time I said -- and perhaps it wasn't by chance -- that Lubitsch was a great artist of perception-images... and perhaps the filmmaker I want to speak about now, Fritz Lang, could be considered one of the greatest artists of the action-image. And I gave you as an example, this time of the action-image, the opening scene of the first Dr. Mabuse film. 6 What do we have here? An action that is spread over a series of images. A first set of images shows an attack on a mail courier on a train – a courier is assaulted on a train and robbed of a document. Second set of images: the stolen document is whisked away in a car, we see a car setting off, so you see we already have a system, a train robbery and then transport by car. Third set of images: a guy from the gang climbs up a telegraph pole – no I mean a telephone pole... I no longer remember which it was... you can correct my imprecision for yourselves... anyway he climbs a pole and makes a call. Fourth image: we see Mabuse waiting for this call.
So here you have [[segment]]s of [[action]]s – that already contain something which much later... which is to say in contemporary times... will be brought to paroxysm by Wim Wenders – segments of actions that carry the fundamental idea which isn't really an idea, it’s not a theory but a real practice of cinema, namely that the [[camera]] assures the conversion, takes upon itself the conversion of heterogeneous movements. It doesn't at all homogenize the movements. Rather, it takes them up and it’s the camera that converts them. In Lang's sequence: train, car, telephone. If you think of some of Wenders' own great sequences with their movements of conversion, of what are literally changes and that also imply intervals... earlier on I mentioned a [[perceptual]] gap: the stump of the one-legged man. Now I'm referring to [[interval]]s between actions, and between segments of action in a [[composite]] action.
I would say that the first images of the first Mabuse give us in an almost [[pure]] [[state]] – though there can never be such a thing as a pure [[image]]... but just as I referred earlier on to an almost pure perception-image, here you have an example of an almost pure action-image.
[[6CS5]]
...the [[affect-image]] finds it privileged place in the close-up. The [[face]]. Exactly in the same way as the [[action-image]] might involve [[track]]ing [[shot]]s, the [[affection-image]] will necessarily imply the use of [[close-up]]s.
[[6CS6]]
[[liquid]] [[perception]] and the total objective system In the end, it is reflections and not solid things that effect the total objective system. As for the land, the earth, this is the place of solids and therefore of the partial and the incomplete, the immobilization produced by a partial and incomplete system, since [[movement]] will now only be seized in terms of a variation of [[image]]s that is no-longer universal – universal in the sense that the images would vary both with respect to each other and in themselves – but where they simply vary in relation to a privileged [[point of view]]. So, okay.
[[7CS8]]
this confrontation and co-[[penetration]]-clearly we're not dealing with a dualism...
[[7CS10]]
We've now made some progress because earlier on, I was still at the level of nominal definition of the two poles of [[perception]]... and it was in terms of the whole of the movement-image that we managed to distinguish two elements or two poles: the [subjective]] and the [[objective]] pole. Now you might tell me that we haven't achieved much more than that... but now we have changed our point of view because we’ve come up with a real definition of the two poles. We identified the two poles as two sorts of image in perpetual relation, in perpetual communication. So where does this lead us? Because in the end we have actually achieved a lot – we have to plan ahead because we're not yet done with this – in the sense that the [[solid]] and [[liquid]] are not merely two perceptual systems. They are two states, two states of [[matter]].
[[7CS12]]
This time it would consist in the search for a definition that was neither nominal nor real. So, what remains? A veritable definition that we could call [[genetic]] – genetic with regard to the [[perception-image]] and to the poles of the perception-image
[[7CS13]]
And is there any better way of defining universal interaction? The connection of one point in the [[universe]] to any other point whatsoever? Time being abolished. So here we have the negation of [[time]], but what time? Isn't it precisely in order to grasp time that there is this [[connection]] of one point in the universe to another? But for the moment let's stick with the idea that a certain kind of time is annulled. So this theme reappears constantly and it's extremely important which is why I insist on stressing it.
I can say that what I call or, rather, what Vertov calls “the real as it is” isn't something that lies behind the images but is in fact the whole set of images as they are grasped in the system of their perpetual interaction. That is, in a system where they each vary in themselves and with respect to the others. And if you tell me that that's not what the real is, I will answer you that if this isn't what the [[real]] is for you, well then you can easily look for another
[[word]]. It's of no importance. In any case, we understand why Vertov uses the expression “the real”. [16] He uses it in opposition to... in opposition to what exactly? To a [[vision]] that we would call [[subjective]]. A vision that we call subjective being precisely a vision where variations occur with respect to a point of view that is predetermined and immobilized. So, what would that be, a predetermined, immobilized [[point of view]]? I said it was. Okay... so, it's the solid, land- or earth-bound vision. But what does that mean? It means it's the human eye. The human [[eye]].
[[7CS14]]
The camera doesn't give us a better eye. Clearly it doesn't improve our [[eye]]. It's another eye.
I called this non-human [[perception]]. Well, right from the beginning this is one aspect of Vertov that I haven't forgotten, the non-human perception or the non-human eye of revolutionary consciousness. That is, that there's a problem I left hanging because it referred to [[image]]s that would no-longer be [[movement-images]] and that we will encounter towards the end of the year or perhaps another year or maybe never, namely: the problem of the [[subject of enunciation]] in cinema. But the [[subject]] of [[enunciation]] has nothing to do with the perceiving subject. Yet we can't forget... we cannot say a single word about Vertov without acknowledging that what characterizes his whole cinema is the idea of a fundamentally revolutionary enunciation to which this new eye would correspond. An eye that is not at all an improved human eye but one of a completely different nature.
And you will see why this eye is of a completely different nature, because it is the eye of total perception. The eye of total perception, which is to say the eye of the perception of universal variation, where things themselves – meaning the images that vary both in themselves and with respect to each other – are the real perceptions. Instead of me seizing an image, it is the images in their interaction that seize all the actions they receive and all the reactions they provoke. For once, it is the system we have looked at: the total system of interaction, of universal L.
[[7CS15]]
Montage tends to deal with each single image and not simply with the rapport between images. But I think this will only become clear little by little as we go on. In any case there is no contradiction between these two themes: the real in itself... or even the three following themes: The [[real]] in itself. The discovered construction of a non-human [[eye]]. Universal [[montage]]. Because these are the three aspects of universal [[interaction]].
[[7CS16]]
Because you understand, an object that has a use, to go back to what I said before, is the solid object, the [[solid]] object of the earth. And in fact, the object as a whole has no use. Here too, Bergson taught us this in such a profound and precise manner. What is perception when it makes use of an object? It's the object itself minus all that doesn't concern us. Utility or usefulness is the thing. It is wholly the thing but minus what is of no concern to the action, what is of no concern to our [[action]]. A total or whole [[image]] is by definition something that we have no use for.
As Balazs will say with the same tone of regret – though he should really have been happy – in Ruttmann's Berlin, we cannot recognize the place. It doesn't resemble a [[shot]] of a city. Here the bridge is of no use to us. Indeed, if the bridge is integrated into the system of the total image universal interaction, we can no longer make use of it. We can only make use of things whose projected profile refers to a privileged [[center]]. This is the definition of the [[tool]], just as it is the definition of use. So, we won't make use of it. But does this mean that it is now a matter of [[contemplation]]? Not at all. It's universal [[action]]. It's the [[universe]].
Very well. So all this comes back to saying: we understand why this is not an improvement or enhancement of the human [[eye]]. It's literally a question of constructing another [[perception]]. And whether we're speaking of Ivens, Ruttman or Vertov – each with their particular means – what we have is the construction of the other perception, which is this [[total]] [[perception]]. This perception of universal [[interaction]].
[[7CS17]]
[[color-image]] cant be reduced to [[perception-image]] or even the [[movement-image]].
[[7CS18]]
What is the rapport between the movement-image as an average image - a certain number of frames per second - and the individual frame? To put it differently, is it just a metaphor or is it something more than a metaphor? In other words, the frame is the molecular image. It's the molecular image of cinema, the [[molecular]] cinematographic image, whereas the average image is an image we would call [[molar]], it's an average. So [23] The other perception I'm now seeking, this other perception, couldn't we say this other perception is molecular [[perception]] and that it is the camera finally that gives us this molecular perception. So, what is a molecular perception? What would it be? Well, is it actually perception? No. No longer. Average [[movement-image]]... but of what? Interval-frame. It's all very abstract, we have difficulty grasping the sense of the word “[[interval]]” so let's look for a more dynamic term that will... that means the same thing as interval. So, we could speak of a “flickering-frame” (photogramme-clignotement), flickering-frame. What strange species of cinema would that produce? It's well-known. What would the flickering frame be with respect to
the average-movement-image? It's what defines a whole area of so-called experimental cinema
[[7CS19]]
The [[solid]] state? What is it? This will let you understand everything about [[image]]s. What is a solid state? It's simple. We have a solid state when molecules are not free to move around. Are you with me? So, let's suppose these molecules are not free to move around? Why is this? It's because of the action of other molecules. In other words, they are kept in a small [[field]]. They are confined in a small field by the action of other molecules. Here I'm really doing physics 101. And in this state what animates them are rapid [[vibration]]s around an average position from which they deviate little. So, this is the formula of the solid state. You see how the molecules of this table aren't free to move around. They are all kept in their little field. Each molecule is kept in its field by the pressure of other molecules. They are all confined in this little field and animated by vibrations since they are part of the universe; they form part of the [[machinic]] [[universe]], animated by tiny vibrations around an average position from which they deviate little.
And in the [[liquid]] state what happens?.. The solid is an average object, it's an average, exactly like the [[movement-image]]. Whereas in the liquid state the molecules enjoy an additional degree of freedom; they can move around. The molecules move around but as they do so they stay in contact - which is not at all what happens in a solid object – the stay in contact as they move around and slip into each other. This is the – again popular – definition of the liquid
state.
Third phase: the [[gas]]eous state. A third degree of freedom for molecules. So, what does this consist in? Each molecule acquires or attains a gaseous state. It acquires or attains what we could call, or what physicists call a “mean free path”, which varies according to the particular gas but also according to pressure, and many other factors besides. Remember what you learned in physics? And what do we call the mean free path of a molecule? It 's the average distance covered by a [[molecule]] between two successive [[shock]]s, the most famous example being [[Brown]]ian motion.
[[7CS22/23]]
in the first case all [[image]]s [[vary]] both for themselves and with repsect to on another, whereas in the second all images vary with respect to a supposedly privileged image... [[total]] [[objective]] system and the... [[partial]] [[subjective]] system... Ascoexisting [[element]]s, I now have a total system of universal [[interaction]] and a partial system of supposedly privileged perception... [[perception]] from a privileged [[point of view]].
suppose we call the total objective system of interaction documentary. Because, after all, this is a term that has had considerable importance in cinema. And no doubt we forget, or don't even think, of the countless jokes that have been made regarding a certain kind of documentary – namely, those eternal fishing-boat sagas that in the inter-war period were normally projected before the main feature. But when the great filmmakers, in all their differences, proposed the idea that there could be no cinema without documentary, they obviously meant something else. And what did they mean? What was this documentary aspect of the cinema-image? Wasn't it – and we will shortly be able to verify this – wasn't it something like the system of universal interaction of images both in themselves and with each other? Wasn't it the total objective system?
And what about fiction or drama, as opposed to documentary? What would that consist of? Wouldn't it be the other system? Which is to say the one of images which began to vary, but this time no longer with respect to each other, by which means they would have reached the supreme stage of objectivity that is universal interaction, or the material universe of movement-images – which is what documentary is, it's the material universe of movement-images or at least a summary or a particular take on universal interaction. So contrariwise, what would the fictional or dramatic process consist of? It would be when a new organization of images grafted itself onto the world of universal interaction, a new organization of images where movement-images begin to vary according to a privileged image, that of the hero or a character of whom I may say: that's the film's main character, or one of the film's main characters. The [[perception-image]] in [[cinema]]... not exclusively but ina privileged manner, is what we would call a [[free indirect subjective shot]].
[the] second level is that of the [[cinema]] consciousness,,, critical consciousness of the camera... an [[operation]] by which cinema becomes conscious of itself through a subjective image of the character while the character in turn gains self-consciousness or takes a distance from him or herself... through a critical consciousness.
[[6CS27]]
[[graft]]ed onto the images of universal interaction that constituted documentary cinema were certain processes – and I hope this now becomes clear – related to what I would call [[subjectivation]]. Through a privileged image, that of the hero, we passed from the documentary world of universal interaction to a dramatic process constituted by a particular story.
And here I insist on these two aspects: the documentary aspect and the dramatic aspect and the grafting of this dramatic aspect onto the documentary aspect.
[[7CS4]]
So, in Stormy Waters we have a captain, a tugboat captain who goes out to sea and who lives for this and for his crew and so on. It starts on land with a party, filmed in Grémillon's usual wonderful style, a little wedding party in which everything is in movement, but then the party is interrupted because he has to go and salvage a ship and so now, we have images of his job, in this case a maritime job – I use the word “maritime” lightly for the moment, but maybe it'll turn out to be important, however that's how it's introduced... It's a maritime job since he's the captain of a ship, and why is that? –I might ask. It might have been shot with actors and so on... so why is it necessarily like this? It's what we could call the film's documentary aspect. It's a documentary aspect because what we have here is a very specific regime of cinema-images. Clearly what we have... is a ship salvaging another ship in the middle of a storm, in the storm you will no doubt recognize the regime of universal interaction where each image varies both for itself and with respect to the others. It's clear.
So. And in fact when we watch Grémillon's Stormy Waters we learn all kinds of things. After coming out of the film we're very informed, well documented. You see how we’ve at least established an idea related to documentary, that of documentation, which is very specific. It doesn't just consist in telling you about or even filming a job. Or, if it's about filming a job, only a part of the job and what relates to it is filmed. So why would it be documentary? It's not documentary for any old reason. Documentary, once again, is that action of the camera that attains a universal variation of images and a universal interaction of images. And it's for this that I wish to reserve the term documentary in its strictest sense. So, this is what he does, this is what the captain does. We are fully immersed in images that I could call “objective images”. Documentary images, objective images... Because, once again, I attribute no meaning to the objective system other than universal interaction and universal variation. And then, obviously, on the boat he's trying salvage there is a woman, a woman who shouldn't be there, since she belongs to the land, to the earth. There' s this woman... So, he decides to take her
back to shore, but he's not at all happy. He thinks she shouldn't be there. Oh yes. As though she were troubling the documentary images, as though she disturbed the system of universal
interaction. You see how revolting that is - universal interaction is a man's world! So, he goes back to shore and obviously he falls in love. He falls in love. What does that mean?
This concerns us greatly, the conflict between work and romantic passion. He falls in love, which is to say that this Captain who was an image seized amid the universal interaction of images – his boat, the other boat, his fellow sailors, the storm, the waves etc – finds himself entangled in a process... a process of dramatization that will cast him out of the objective regime, the documentary regime, the regime of universal interaction. It will not only cast him out; it will immobilize him. To love is to be immobilized, my god! Yes, to be immobilized. But
immobilized in what sense? In the sense that now all the images will vary with respect to a privileged image – which is either that of the beloved of the lover as he wonders what will
become of her. And all the images begin to turn around and vary exclusively with respect to this centre, this privileged centre, which is either the immobilized character or the object of his [[passion]].
And we no longer have the same [[perception]] of the sea. Oh no, it's no longer the same perception of the sea. To the point that in Stormy Waters there’s a splendid scene – because I think it's a very good film though there are no doubt many others just as good – we have this moment where he goes to visit... because the situation is hopeless, not only does the woman he loves want to immobilize him and tear him away from the documentary regime, the regime of universal interaction, but his own wife too, his own legitimate spouse, is already nagging at him to quit his job. So, we already have a conflict and so on. She wants him to buy a small beachside house, and there are some lovely images where we see him visiting the house his wife wants him to buy with the woman he loves. So, the intrigue becomes more complicated. We now have an interplay of several privileged [[center]]s which have in common the desire to immobilize him, to make him pass over to the other system of perception where the whole set of elements varies according to a fixed centre. And where all the images vary according to a fixed centre. And he looks out to sea from the little house and says, Oh my god! As though he actually felt pain on account of this graft that tears him from the world of universal interaction to make him pass over to the world of subjective perception, where he can only view the sea as something grotesque that swirls around him, the fixed point whose only consolation is to gaze at the face of his beloved that, on a good day at least, reflects the sea.
[[7CS5]]
It's obvious. We can quit joking around about conflicts between work and romantic [[passion]]. That’s not what it is. If we go back to our only solid ground, it's actually the confrontation between two systems of [[perception]]. So this is where we have to dig: on one hand, the type of perception I call [[objective]] and [[total]], since this is the perception of universal [[variation]] and universal interaction; and on the other the type of perception I call [[subjective]], the subjective system which consists in the [[variation]] of [[image]]s according to a privileged fixed [[center]] – one that is supposedly fixed or else in the process of being immobilized.
[[7CS6/7]]
The [[affection-image]] is the close-up and the [[close-up]] is the [[face]].
[[8CS8/10]]
And he says that with the long shot, there is a way in which, whatever the film you are
viewing, Eisenstein proposes, as a way of seeing the film, it is necessary that you see it as if it
had been made uniquely on the plane of the long shot; and then at the same time it is
necessary that you see it as if it has been made uniquely on the plane of the medium shot; and then it is necessary that you see it as if it has been made uniquely of close-ups. And he said it is necessary because, the long shot is what refers back to the whole of the film, and when you see a film you become sensible to the Whole. And then the medium shot is what refers to something as the [[action]] or intrigue [70:00] or story, and when you see a film, it is necessary that you are sensible to the action. And the close-up is the detail, and when you see a film, it is necessary that you are sensible to the detail.
[[8CS11]]
I just note that this [[molecular]] [[movement]] or this [[virtual]] movement would be nothing in the
close-up if it did not enter into an [[intensive]] [[series]] which is at least possible, even if it is not
shown to us, a series in which [[intensity]] increases. I would say therefore that they are micro-
movements in so far as they enter into a virtual intensive series, one which is at least virtual.
That is the first aspect of the close-up of the clock.
[14]Second aspect of the close-up of the clock, co-existing with the first. [84:00] This is an
immobile receptive surface, it is a receptive plate [plaque]. Immobile receptive [[surface]],
receptive plate, or if you prefer, it is a reflecting and reflected unity. Reflecting and reflected
unity represented by the dial and the glass. And how are they complementary? Well,
obviously it is the unity of the micro-movements. In other words, it is the qualitative unity of
the intensive series, represented from the other side. There you have it. [85:00] Fantastic,
that’s it – I mean, we’ve got our poles. And what reassures me is that we have not at all just
modeled them on the two poles of the perception-image. Here we have newly found two
poles of the close-up, which are not at all modeled on the two preceding poles of the
perception-image, and which hold for themselves. The two poles of the close-up are: micro-
movements taken in an intensive series on the one hand; on the other hand: reflecting and
reflected qualitative [[unity]].
[[8CS12]]
What makes something a [[face]] is two things, but it can only be that way: [1] a face feels,
[89:00] and [2] a face ‘thinks of’ [pense à]. A face feels, that means what? It means: it
desires, or – which comes to the same thing – it loves and hates. It loves or it hates or indeed
both at the same time, as we often say. That is to say: it passes through an [[intensive]] [[series]]
which decreases and increases.
There
is a first that one will call: trait of [[faciality]]. [[trait]]s of faciality are the [[movement]]s on the spot,
virtual movements which traverse a face in constituting an intensive series. On the other15
hand, it has a contour. [92:00] This is a true pendule 21 in both senses. There is a [[contour]]
under which it is the reflecting and reflected unity. I come back home in the evening
exhausted, or indeed a woman comes home ... No, the husband comes back in the evening
exhausted after a long day’s work. Then, his wife says to him ... No, no ... He looks at his
wife, he opens the door ... no, let’s try to be cinematic – he wipes his feet, he opens the door,
his wife looks at him, and he says to her moodily: [93:00] “What are you thinking?”, to
which she responds: “What’s up with you?” – you see, it is from one pole to the other. What
are you thinking? This is the communicating and reflecting face, that is, it is the quality he
has on the face. What quality emanates from your face? And the other answers: What’s up
with you? What’s the matter with you? What is this strange intensive series that you traverse
in rising and descending? From such small beginnings, the domestic scene [94:00] is engaged
with close-ups, it’s all done in [[close-up]].
[[8CS13]]
You have [[close-up]]s that are mainly: the [[face]] is traversing an [[intensive]] [[series]].
[[8CS14]]
we have only one thing in common, that the face is a horror, yes, it is horror, it is terror. The face is terror as much on the side of [[thought]] as on the side of [[intensity]].
[[8CS18]]
[[summary]]
First remark: what has allowed us to organize an analysis – it was not
necessary, but we found it to be so – of the [[perception-image]] is the distinction between two
poles of [[perception]]. The one we called, by convention, objective, but we had reasons for
calling it ‘objective’: this was the regime of universal variation, the universal interaction of
images, that is to say: all images vary at the same time for themselves and in relation to each
other. From that moment, for me at least, one has suppressed the ridiculous false problem of
‘an objective perception should be without [[montage]]’! Not at all, not at all, if one understands
what objective means, that is to say: the place of universal variation, universal interaction;
then it is obvious. [41:00] On the other hand, we called the subjective pole the variation of all
the images in relation to a privileged image, whether that of my body, or that of the body of a
character. This was our point of departure, and this is our first remark.
Second remark: these two poles being thus defined, the [[objective]] and the [[subjective]], one does
not cease passing back and forth between one pole and the other. We have seen that in a
sense we intersect here – and I’m really just summarizing what we have acquired – in a sense
at this level, the perpetual passage from one pole to another, we intersect with the problem:
shots, reverse-shots.
Third remark: one could posit the following principle: that the more the subjective center of
reference [42:00] – since the subjective image is the image related to a center of reference, it
is the images that vary in relation to a center – is itself mobile, the more one will pass from
the subjective pole to the objective pole. Example: the marvellous images of Dupont’s
Variety 15 [1925], in which the subjective center of reference is an acrobat in movement, and
in which the vision of the whole of the circus, from the point of view of such a dynamic
center of reference of movement, already passes from a regime of universal variation, that is
to say an objective pole.
Fourth remark: in these perpetual passages from objective to subjective and from subjective
to [43:00] objective, it is as if a specific form of the perception-image is born in cinema. This
specific form of the image in cinema is the ‘semi-subjective’ [‘mi-subjective’], as Jean Mitry
baptised it; the half-, the semi-subjective, the semi-subjective image, as named by Mitry. And
in fact, the status of the semi-subjective invites us to isolate a kind of ‘nature of the camera’,
defined as ‘being-with’. The ‘being-with’ of the camera, this being-with, consists in what?
What is effectuated, for example, in the travelling 16 of a closed circuit when the camera no
longer contents itself with being-with, with following a character, but displaces itself among
[44:00] the characters.
Fifth remark: if one tries to give a true status, a conceptual status, to this semi-subjective, one
must seize the opportunity provided by what is simultaneously, it seems to me, one of the
exceptional theoretical attempts in the effort to think cinema, namely Pasolini’s venture. An
exceptional theoretical venture, to the extent that it culminates with a concept that I attempted
to analyze as closely as I could this time, ‘the free indirect subjective’. The free indirect
subjective image: which refers to precise technical processes, which are no longer simply
[45:00] the camera displacing itself among the characters, but the technical procedures
Pasolini defined like the zoom (we have not yet spoken about that, because I want to keep it
for later, but it doesn’t matter), the doubling of perception and the immobile shot or obsessive
framing. And which, according to Pasolini, indeed defines one direction in cinema, for
example in Italian cinema, not only, but Italian cinema after neorealism and which would
have its privileged examples in Antonioni, Bertolucci and Pasolini himself.
Sixth remark: at the stage of analysis to which Pasolini has carried us, if you like, with this
new notion, something decisive [46:00] already emerges, namely, that the mediate
movement-image, in which we have been installed since the beginning, tends to differentiate
itself along two directions: first direction: subjective perception to characters in movement,
subjective perception of characters in movement who leave and enter the immobile frame.
Second direction: objective self-consciousness of cinema through itself. In the form of the
obsessive frame. The danger, if there is a theoretical danger, is that [47:00] this ‘self-
consciousness’ of cinema presents itself once more, if you like – from a theoretical point of
view, I am not talking of a practical progression – as an idealistic consciousness, or as a pure
aesthetic consciousness.
Seventh remark: the fixed consciousness of cinema by itself must be that of the objective
pole, that is to say, that of universal variation, or of universal interaction. That is to say, if
you like, it is quite simple in relation to the preceding remark, it should not itself be simply a
component of the perception – it must be itself an object of perception. [48:00] It is in this
sense that we have found, in a certain direction of cinema, the coexistence of two objects of
perception, if one can say that: the liquid object as simultaneously objective and veridical, the
solid object as subjective and partial. And in this coexistence of two regimes of perception,
liquid perception and solid perception, there already began to be born what preoccupied us,
what began to preoccupy us, that is to say, the possibility of a molecular perception: at that
moment, [49:00] the cinema consciousness, in a strictly ideal sense, was flowing water; and it
seemed to us that that defined a whole French school between the two wars, at which
historical point we pause.
Eighth point to note: one more step. It was necessary that the two poles from which we
started no longer be simply two polar objects of perception like the [[liquid]] object and the [[solid]]
object; it was necessary that there should be two forms of perception, and what is more, two
forms of which the one would play the role of genetic element in relation to the other, [50:00]
that is to say, that the one truly plays the role of a ‘micro-perception’, of a molecular
perception; and this, it seemed to us, was the direction that was sketched out by Vertov,
which was taken up again by structural cinema, and where the movement-image is now found
to be transcended towards the photogramme/interval couple.
Ninth and final remark: here, once again when we summarize our acquisitions, we cannot
prevent ourselves from acting as if there were a kind of progression here. It goes without
saying that here there is still no progression, and that the great creative arts make advances as
needed, if you take my eight levels, when a more developed level [51:00] is reinjected into
the preceding level. So that what counts is the whole of the schema, without one direction
being worth more than the other, and so that the whole of the schema consists in saying what
to us? That the perception-image is run through by a kind of history – not by History [as
such] – by a kind of history which pushes it to put in question the notion of the movement-
image.
The perception-image starts by being a type, from the point of view of our analysis, of
movement-image. But it only develops itself and only develops its poles, in tending to
transcend [52:00] the movement-[[image]] towards something else, towards another type of
image, and that in two ways. This is our last remark: First way: it is no longer the movement
which is an [[interval]] between positions in space, it is now, on the contrary, the interval
between movements that will raise us to a reality. Second acquisition: it is no longer the10
cinematographic movement which is more or less illusory in relation to the real movement,
[53:00] but it is the real movement and its cinematographic transcription which are illusory in
relation to a real cinema. What an acquisition! What gains!
[[7CS23/24]]
These two poles were [[material]] [[trait]]s on the one hand, which we called — for the sake of
convenience, looking for a way to group these phenomena together — material traits of [[faciality]] [traits matériels de visagéité], capable of forming [[intensive]] [[series]]: various levels of horror, for
example, different levels of horror. These traits of [[faciality]] capable of forming intensive series
can be associated with different [[organ]]s. For example, an eye trait, a nose trait, a mouth trait can
constitute an intensive series or gradient, an intensive series tending towards both growth and
decline.
But if that’s one side of the face, the face’s other pole was the qualitative unity of a reflective
[[surface]]. The qualitative [[unity]] of—so, an intensive series of traits of faciality and the qualitative
unity of a reflective surface; and, since both are perfectly complementary, these poles are living
dimensions of the [[face]], “living” implying a polar tension, a dynamic whereby traits of faciality
always threaten to get away, run off, escape the face’s qualitative organization. It’s what’s
known as a tic. A tic, a [[facial]] tic, is precisely the movement whereby a trait of faciality escapes
the reflective and radiating organization of the face; all of a sudden something slips, the mouth
goes off, an eye darts away, swivels, trying to escape its qualitative organization. And at the
other pole of this tension, [there is] the face’s constant effort, as a reflective surface, to retrieve
the traits of faciality that, like birds, are always trying to get away, to flee. In other words, the
face is in and of itself an animal. So, those were our two poles. I said the first thing we had to do
in our analysis was try to establish the identity between the face and [[affection]], since we
perpetually cycle through three terms that will go around, sort of forming a moving circle: face, [[affect]], [[close-up]].
[[8CS21]]
Feeling
means moving along the [[gradient]] of an [[intensive]] [[series]] that mobilizes [[trait]]s of [[faciality]], and the other pole of the [[face]] [is] no longer that of the feeling face but rather the face that’s
thinking “about” something. Last time I pointed out the ambiguity surrounding the English word,
“wonder.” It was the same in French in the 17 th century with the word, “admiration.” In
Descartes’s case, it doesn’t only refer to admiration in the strict sense; it also means the act of
thinking about something—the face thinking about something.
What is self-explanatory about the face? It’s that the face is full to the brim with
functions that we attribute to it. We give it two main functions: individuation and socialization,
[Pause] individual characteristics and social roles. Supposedly, that covers it.
What is self-explanatory about the face? It’s that the face is full to the brim with
functions that we attribute to it. We give it two main functions: [[individuation]] and [[socialization]],
[Pause] individual characteristics and social roles. Supposedly, that covers it.
When the face loses its function of individuation and gives up its social role, that’s when the face kicks off—then the face starts to [[develop]]
[[9CS1]]
the [[face]] needs to give up its individualizing appearance and its social
appearance in order to bring out what it is—in order to bring out the [union between] face/[[affect]].
The face has two poles; you can describe them in different ways, but now we
know that they all amount to the same. I can say that the face is, on the one hand, a teeming
swarm of micro-[[movement]]s and, on the other hand, a reflective [[surface]] of [[inscription]], a surface
for the inscription of said micro-movements. The second way of putting it—and I think our
discussion last time adequately established why these were equivalent—the second is to say that
the face is a disorderly set of [[trait]]s of [[faciality]] [visagéité], [[material]] traits of faciality, while at th
same time being a formal, [[faceifying]] [visagéifiant] contour. 3
Third, I could say that the face is [on the one hand] [[intensity]], or an [[intensive]] [[series]] to which
other traits of faciality can always be added [Pause] and, on the other hand, that it’s a qualitative
unity, a pure quality. I’m getting ahead of myself again, but we’ll see if any of that bears out.
The fourth way of putting it would be: on the one hand, the face is [[desire]], i.e., [[passion]]al [[affect]]
and, on the other hand, the face is admiration [Pause] [i.e.] intellectual affect.
[Pause] Fifth, I could say that from one angle, the face is a [[feeling]] face, while from another
angle, the face is a face that’s [[thinking]] about... dot dot dot.
[[9CS5]]
[[skeleton key]]
[[king Animal]]
[[Transitional States and Digital Adaptation]]
[[Bodies]]
[[Occluded centers and semiosis]]
[[Mind]]
[[SIGIL]]
-----------------------------------------------------------------------------------------------------------------
term ideas
[[mind]]
Willis F. [[Overton]]
...mental processes extend out into the world [distributed cognition]
[[Dev Systems]]
[[a posteriori]] meaning that which is given in [[experience]].
[[L85-4]]
that which is [[given]] 'independently of [[experience]]'
Welcome to ''Stroll'', a notetaking tool built with the ~TiddlyWiki platform, imitating a number of features of Roam:
*bi-directional links,
*autocomplete suggestions for linking,
*renaming of links upon changing tiddler titles,
*and side-by-side editing of multiple notes.
Stroll is a new souped up replacement for our previous project, [[TiddlyBlink|https://giffmex.org/gifts/tiddlyblink.html]]. It is designed for use with a wide screen - probably not ideal for use on a phone or small tablet.
The best way to see what Stroll can do is play with it. This interactive tutorial will give you a hands-on overview.
Use the tabs to the left to take a tour of its features. You can download an empty version of Stroll [ext[here|https://giffmex.org/stroll/empty.html]].
Tie [[GS30]] to GoM part about biological forms
The most important [[problem]] of all: given a certain [[machinic assemblage]] what is its relation of [[effectuation]] with the [[abstract machine]]? How does it [[effectuate]] it, with what adequation? Classify [[assemblage]]s. What we call the [[mechanosphere]] is the set of all abstract machines and [[machinic assemblage]]s outside the [[strata]], on the strata, [[between]] strata. [[ATP p71/72-1]]
[[ATP p400-1]] tie this to the [[passion]]al [[regime of signs]]
the [[question]] of "How do content and expression interact if they are not reflective?"
[[ATP p89/90-1]]
[[reread]] 136 to the end of the plateau offers an excellent [[summary]] of the book up to that [[point]]. p 160-end of plateau, especially 163 re [[cancerous tissue]] ATP p182/184-1 two types of faces 188-191 good summary of questions to ask and treatments to make 202-207 review 224, segments, power centers, and hierarchies, and all sorts of bits that need to be refined 266 is a good summary of the becoming plateau up to that point p292 summary of [[becoming]] and the [[face]] [[faciality]]
What is the relationship between a [[plane]] and a [[stratum]]? source of [[question]] is [[ATP p174/175-1]] theorem 2
link [[ATP p75/76-1]] to [[Luhmann]] re [[recursion]]
Edit the terms on [[ATP p72/73-1]]
link [[this|current research into the nature of multiplicity and assemblage relations]] to the [[phrase]] in the becoming-intense plateau, and any others.
[[abstract machine]]
[[affect]]
[[arborescent]]
[[art]]
[[asignifying]]
[[asubjective]]
[[becoming]]
[[caps lock]]
[[collective assemblage]]
[[conjugate]]
[[convergence]]
[[decenter]]ing/ed/...
[[desire]]
[[despot]]
[[ethics]]
[[experiment]]
[[flows]]
[[grammar]]
[[immanence]]
[[indefinite]]
[[line]]
[[line of flight]]
[[Lacan]]
[[machinic assemblage]]
[[machinic]]
[[machinic phylum]]
[[machinic statement]]
[[partitive]]
[[plane of consistency]]
[[plane of reference]]
[[point]]
[[problem]]
[[question]]
[[rupture]]
[[signifiance]]
[[singularity]]
[[state]]
[[State]]
[[speed]]
[[subjectification]]
[[transcendence]]
[[treatment]]
[[unconscious]]
[[wasp and orchid]]
[[war machine]]
All of becomes and it's derivatives are made into [[becoming]]
All of terms like Bwo and bodies without organs are rendered as [[body without organs]]
[[assemblage]] is never assemblages
[[deterritorial]]ized/ed/ing and [[reterritorial]]ized/ed/ing
always [[regime of signs]] never regimes
[[Deleuze]] [[Guattari]]
...what if other "things" could also be granted the status of [[actor]]s, [[actant]]s, or [[agent]]s in a [[dialogical]] [[situation]]?... what I call [[ventriloquism]]-the [[phenomenon]] by which an actor makes another actor speak through the production of a given [[utterance]]-is, in fact, a ubiquitous [[phenomenon]] that deserves our [[attention]]
[[Action and Agency in Dialogue]]
many different things can end up being made [[present]] or [[incarnated]] by the [[interlocutor]]s, whether intentionally or unintentionally.
[[example]] of an empirical [[question]]
...things as basic as [[authority]] and [[power]] cannot really be grasped and understood if some [[form]] of doing or even [[agency]] is not recognized in [[attribute]]s such as experience, wisdom, expertise, or status (just to name a few of them). When we say 'experience speaks,' we are indeed speaking [[figuratively]], but as we will also see, [[figure]]s precisely are key to understanding those effects of [[dislocation]] and [[ventriloquism]]. To the extent that experience matters in a given situation.... it makes a [[difference]]... it is doing something...
[[AAD p1-1]]
But in any case we seem to be no worse off for ignoring philosophical [[problem]]s.
[[About Behaviorism]]
“The [[mental]]istic problem can be avoided by going directly to the prior physical causes while bypassing intermediate feelings or states of mind
[[AB15]]
“By directing attention to genetic and environmental [[antecedent]]s, it offset an unwarranted concentration on an inner life. It freed us to study the [[behavior]] of lower species, where introspection (then regarded as exclusively [[human]]) was not feasible, and to explore similarities and differences between man and other species. Some concepts previously associated with [[private event]]s were formulated in other ways.”
[[AB17]]
“The position can be stated as follows: what is felt or introspectively observed is not some nonphysical world of [[consciousness]], [[mind]], or [[mental]] life but the [[observer]]’s own [[body]]. This does not mean, as I shall show later, that [[introspection]] is a kind of physiological research, nor does it mean (and this is the heart of the argument) that what are felt or introspectively observed are the [[cause]]s of [[behavior]].
An [[organism]] behaves as it does because of its current [[structure]], but most of this is out of reach of introspection. At the moment we must content ourselves, as the methodological behaviorist insists, with a person’s genetic and environmental [[history]]es. What are introspectively observed are certain collateral products of those histories.
The [[environment]] made its first great contribution during the evolution of the species, but it exerts a different kind of effect during the lifetime of the individual, and the combination of the two effects is the behavior we observe at any given time. Any available information about either contribution helps in the prediction and control of human behavior and in its interpretation in daily life. To the extent that either can be changed, behavior can be changed.
[[quote]]
[[AB17]]
A small part of the [[universe]] is contained within the [[skin]] of each of us.
[[AB23]]
“A standard literary practice is to describe feelings by describing [[condition]]s which are likely to arouse similar feeling
[[quote]]
[[AB28]]
per [[ATP p9-3]], the abstract line has the [[line of flight]] and of [[deterritorialize]] in it initially; or rather a genus-species relationship, I believe
[[question]]
In every respect, [[machinic assemblage]]s [[effectuate]] the [[abstract machine]] insofar as it is developed on the [[plane of consistency]] or enveloped in a stratum. [[ATP p71-1]]
Do not expect the abstract machine to resemble what it produces, or will produce. [[ATP p168-2]]
There it is, encased in both the strata and acts of stratification, and drawing diagrams on (and from?) the plane of consistency. It plays the 'piloting role' of the assemblage. This is from the 136-end of plateau segment.
[[facialization]] doesn't consist in transforming the cup into a man or woman but in making a [[black hole/white wall]] [[system]].
[[face]] [[faciality]] [[abstract machine of faciality]]
[[ATP7 p9-1]]
Then there will be a second type of image – and if you have followed me so far, you will have
already understood this, since it was already prefigured and pre-announced by the first type. This
second type of image I would call – in line, I presume, with Bergson's text – no longer the
[[perception-image]] but the [[action-image]]. Because in fact the existence in the universe of
[[movement-image]]s, the existence of centers of [[indetermination]], implied not only that there were
[[perception]]s but also that there were, strictly speaking, [[action]]s... since reactions no longer
automatically followed on from the actions undergone, but there was instead a choice, which is
to say the formation of something new that we could call action. So, this was already included in
perception and in fact these action-images were already taking shape in the world of perception
if we can accept the idea that the perception-image is not defined solely in negative terms.
[[5CS24]]
the first definition of the action-image, the one we start
from, is when [[power]]-[[quality]]s are actualized in an individuated state of [[thing]]s within a given
[[determined]] space.
[[12CS3]]
the [[sign]]s of the
[[action-image]] are [[index]]es
[[12CS13]]
If the action-image, according to the terminology we've borrowed from [[Peirce]], is the
domain of [[secondness]] in the very approximate form: two... in any action, there are
two, we see that this level of the action-image presents two types of secondness. The
first secondness – and this is what will constitute the whole of the action-image – first
secondness is that of the sinsign, or of the milieu itself as a derived [[world]]. In what
way does this constitute secondness? In that the [[power]]-[[quality]]s are [[actualize]]d in a
state of [[thing]]s. There are indeed two terms: the power-qualities and the state of things
that actualizes them. These two terms are nonetheless quite difficult to distinguish, so
I would call this an introductory secondness. [[embryonic]]
Second secondness: the character acts, and by [[act]]ing, by behaving, [[react]]s upon the
situation. Here we have a real secondness. But in what form? Action, modification of
the situation. Or more profoundly, what is this second secondness exactly? It is –
and in fact we have seen it... we have seen it and that's why Peirce's analysis is
useful to us, we have seen this – all [[action]] implies [[reaction]], all effort implies
[[resistance]]. And after all behavior can perhaps only be conceived in what form? In the
form of a duel. And this is the true secondness of the action-image. It will necessarily
be a question of a [[duel]]: a duel with the milieu, or a duel with an [[element]] of the
milieu, or a duel with someone else.
Already, we can be either worried or satisfied, but we have the presentiment that the
form of the duel opens up all kinds of possibilities and that you will find it every time
there is behavior. Every time there is behavior, a duel is inscribed in the behavior. It
is this that will apportion the emotions and motives of the behavior. Now this, always
keeping to Peirce's vocabulary, is the domain not of the [[sinsign]] but of the [[index]].
When two elements are in a relation of action and reaction, one is the index of the
other. The [[resistance]] is the index of the effort, and the [[effort]] is the index of the
resistance. I would say, therefore, that the two secondnesses of the action-image in
this realist sense are that of the sinsign and that of the index.
[[14CS7]]
He tells us that these are all [[quality]]s, and that qualities equate to [[firstness]]. You see that this
is already something huge. It cannot be [[actual]], since actuality is always the relation between an
[[action]] and a [[reaction]], it's always the [[relation]] between [[force]] and [[resistance]]. So firstness, according to
[[Peirce]], will be pure qualities or pure [[power]]s. He himself employs the word [[potentiality]]. These are
qualities or [[potential]]itys...
[[12CS14]]
the [[notion]] of an [[entity]] means 'an element contributory to the [[process]] of [[becoming]].'
[[actual occurrence]]
[[KPR p23-1]]
An [[actual entity]] has a threefold character, 1) it has the character given for it by the past; the [[objectification]]s of the actual entities in the [[actual]] [[world]], relative to a definite actual entity, constitute the [[efficient]] causes out of which that actual entity arises, 2) it has the [[subject]]ive character aimed at in its [[process]] of [[concrescence]]; the subjective [[aim]] at [[satisfaction]] constitutes the [[final]] cause, or lre, whereby there is determinate concrescence, 3) It has the [[superject]]ive character, which is the [[pragmatic]] value of its specific satisfaction qualifying the [[transcendent]] creativity; that attained satisfaction remains an [[element]] in the [[content]] of creative purpose.
[[KPR p30-1]]
An [[actual occasion]] is a [[novel]] entity diverse from any entity in the 'many' which it unifies. Thus [[creativity]] introduces novelty into the [[content]] of the many, which are [[universe]] [[disjunctive]]ly.
[[KPR p33-1]]
[[actual entity]]
[[psychic]] [[individual]]s... are nothing oter than their own [[secondary retention]]s inasmuch as they [[singular]]ly [[project]] [[secondary protention]]s. [[example]] in this excellent section is a critique of [[television]] and [[industrial temporal object]]s...
by massively modifying the [[process]] by which [[collective]] [[secondary retention]]s are [[interior]]ized, where the latter are themselves methodically and industrially produced according to the dictates of the behavioral models conceived by marketing, the industry of cultural goods itself become the prescriber of the [[circuit]]s of [[transindividuation]]... this prescription... was functionally subject to the [[media]] [[economy]].
p23-25 expands on this in depth, but this is a good broader picture. 25 introduces the idea that [[digital]] [[tertiary retention]]s have users producing their own [[trace]]s which are them submitted to [[computational capitalism]]
[[AD1 p21-1]]
It is impossible to live in a [[society]] without [[positive]] [[collective protention]]s, but the latter are the outcome of [[intergeneration]]al and [[transgeneration]]al transmission. Such protentions-which being to what the [[Greek]]s in the age of [[Hesiod]] called [[elpis]], a word that means [[expectation]], both as hope and fear-are the boundaries and [[boundary]] [[mark]]ers of the [[care]] that must be taken of the [[world]].
Goes on to discuss [[calendar]]ities [[calendarities]] [[calendarity]]s
[[AD1 p7-1]]
In such a purely [[computation]]al context, [[individual]] as well as [[collective]] [[protention]]s fade away... In the time of... 'digital natives', nobody seems capable of producing [[intergeneration]]al and [[transgeneration]]al [[collective protention]]s, except ones that are purely [[negative]]... to live, for a [[noetic]] [[soul]], is to [[exist]] by [[sharing]] [[end]]s, that is, collectively [[project]]ing [[dream]]s, [[desire]]s, and [[will]]s...
...what [[Heidegger]] called 'the understanding that there-[[being]] ([[dasein]]) has of its own being'(...[[consist]]s in the [[individual]] and [[collective]] production of '[[circuit]]s of [[transindividuation]])...
[[AD1 p11-1]]
...the new [[epoch]] [[emerge]]s only when... new ways of things/doing/living take shape, which are 'new [[form]]s of [[life]]... on the basis of [[precursor]]s reconfiguring the [[retention]]s inherited from the earlier [[epoch]] into so many new kinds of [[protention]].
[[libidinal economy]] is mentioned starting from this section
[[AD1 p12-1]]
These new kinds of [[protention]] are new [[expression]]s of [[will]]... and constitute new forms is [[expectation]]-that is, of [[desire]] and of the [[economy]] from which it steams: the [[libidinal economy]], from which [[emerge]]s, then, a new [[epoch]]. An epoch is always a specific configuration of the libidinal economy, [[organize]]d around the [[ensemble]] of [[tertiary retention]]s (that is, around the [[technical]] [[support]]s of [[collective retention]]) that form, through their arrangement, a new [[technical system]], which is always also a [[retention]]al [[system]].
[[AD1 p13-1]]
A [[libidinal economy]] is an economy of [[desire]] insofar as it ia always both [[individual]] and [[collective]]. [[desire]] is [[structure]]d by a [[field]] of [[protention]]s that one inherits then [[project]]s in a [[singular]] way, on the basis of [[collective retention]] [[transmit]]ted by the [[intergeneration]]al [[play]] that is [[regulate]]d by models of education at the different stages of life... in intergenerational [[process]]es of [[transmission]], [[tertiary retention]]s radically [[condition]] the [[relationship]]s between [[collective individual]]s... between adults, adults and new generations, and hence between generations... and so on.
split of conceptual/work/life [[knowledge]]
[[doubly epokhal redoubling]] is written out here
[[AD1 p13/14-1]]
[[behavior]]s, as ways of living, are being replaced by [[automatism]]s and [[addiction]]s... [[intergeneration]]al and [[transgeneration]]al relations are unraveling: [[transmission]] of [[knowledge]] has been prevented, and there are no [[protention]]s of [[desire]] that would be capable of bringing about a growth of transgenerational [[experience]]-of which [[ritual]], [[religious]], or civil [[calendarities]] were hitherto the frameworks...
[[AD1 p14-1]]
An [[epoch]] is what enables [[collective protention]]s to be established though the constitution of [[new]] [[circuit]]s of [[transindividuation]]. [[form]]s of [[think]]ing and forms of [[life]] are thereby [[metastable]]ized, [[transindividuate]]d by the [[psychic]] [[individual]]s of the [[epoch]], through which new [[process]]es of [[collective]] [[individuation]] form, and thus new social [[group]]s and social [[system]]s, new social [[organization]]s and so on. [[circuit]]s [[emerge]] through [[affect]]ive [[relation]]s of various kinds... forging [[dream]]s, [[goal]]s, objectives, and common [[horizon]]s for which close [[friend]]s and [[family]] play an indispensable role.
[[AD1 p15-1]]
There are [[collective protention]]s only to the extent that there are [[collective retention]]s. The latter constitute [[form]]s of [[knowledge]]. They are [[transmit]]ted [[collective]]ly through educational [[organization]]s, and acquired over the course of life in its various stages-as elementary motor and [[language]] [[retention]]s, then as sayings, [[representation]]s, formulas, rules, skills, doctrines, dogmas, [[narrative]]s, ideas and theories. All these are what provide those capabilities by which the [[past]] can be [[interpret]]d, and it is from such interpretation s that [[psychic]] and collective [[project]]ions of the [[future]] can arise.
[[research]]
[[Heidegger]] and [[dasein]] are disucssed
[[AD1 p15/16-1]]
[[tertiary retention]] is, as we shall see, what [[compensate]]s for the [[default]] of [[retention]]-which is to say, the [[loss]] of both [[memory]] and [[knowledge]]. But it is also what accentuates this loss (this default): it is a [[pharmakon]].
[[AD1 p16-1]]
The past of [[dasein]] always precedes it...
1. This [[past]] is not only it's own- which means, in my terminology, that it is formed from [[collective]] [[secondary retention]]s
2. it is inscribed in this [[world]] (which we see, [[Heidegger]] tells us, with relics, monuments, and stories)-which means that these collective retentions are made [[possible]] by [[tertiary retention]]s.
Dasein's [[psychic retention]]s are made possible by tertiary retentions that are collective thanks to the very fact that they are [[exterior]]ized and [[spatial]]ized. Dasein is thus able to [[share]], with other psychic [[individual]]s, collective tertiary retentions that it apprehends as its own retentions, and which belong to the same [[epoch]] (and to the same '[[culture]]') as those with whom this dasein shares these [[retention]]s.... [[individual]]s of the same epoch and the same culture have... at least a common [[horizon]] of the [[convergence]] of a common [[future]]-the undetermined unity of a horizon of [[expectation]]-which is also ultimately the future of humankind, that is, of [[noesis]] as worthy of being lived in a [[non-inhuman]] way.
Sharing constitutes the [[background]] or the [[fund]]s of an epoch... [[digital]] tertiary retention, however, which constitutes the digital [[technical system]], is disruptive because it takes [[control]] of this sharing... they are [[aggregate]]tions of [[individual]]s who are increasingly [[disindividuate]]d (disintegrated)... the rise of that [[new barbarism]]... the current [[disruption]] produces... a [[diseconomy]] of sharing, that is, a destruction of those who share by the means of what they share.
[[AD1 p17-1]]
what allows the [[interior]]ization of [[collective]] [[secondary retention]]s are [[primary]] and [[secondary]] [[identify]]cations....they are 'mine' in the [[sense]] that they are those of my [[epoch]], because I receive them from within my [[intergeneration]]al ancestry or through the friendship of my peers... friendship is a fundamental [[vector]] of secondary identification through which the [[philia]] of an epoch is formed.
the [[new barbarism]]... is characterized by the liquidation of these [[possible]]ities of identification and related possibilities of idealization. The liquidation of [[primordial narcissism]]-of the [[I]] as well of the [[we]]-is possible only on this basis... [the basis of [[disruption]] and new barbarism]
[[desire]], which is not simply [[drive]] is always desire for the [[singular]]... the unexpected but awaited improbable...
The liquidation of [[protention]]s equally attenuates every kind of [[will]]-that is, power to [[bifurcate]] on the basis of [[knowledge]] derived from previous bifurcations, [[knowledge]] that becomes [[collective retention]] through the [[process]]es of [[transindividuation]] characteristic of an epoch.
great [[example]] of how [[television]] does this on p19
[[AD1 p17/18-1]]
[in previous [[epoch]]s] [[positive]] [[protention]]al [[horizon]]s have existed. The horizons were shared as [[collective protention]]s across the most varied ways of [[life]]-via [[ritual]]izations capturing and [[form]]ing the [[attention]] in which [[retention]]s and protentions are woven according to the [[condition]]s of retentional and protentional [[system]]s of all kinds...
[[AD1 p20-1]]
What is [[mass]]ified today is no longer the criteriology by which [[primary retention]]s are selected, which was achieved by [[standard]]izing [[secondary retention]]s: it is the [[form]]ation of [[circuit]]s [[between]] secondary retentions via [[intensive]] [[compute]]ing... so as to [[extract]] [[statistic]]al and [[entropy]]c [[pattern]]s that short-circuit all genuine [[circuit]]s of [[transindividuation]]- where the latter would always be [[negentropy]]c, that is, [[singular]], and as such incalculable: intractable.
[[AD1 23-1]]
Just as the [[I]] is founded on a [[primordial narcissism]] that must be maintained and protected, and firstly against the [[pathology]] of 'secondary [[narcissism]]', so too there is a narcissism of the [[we]] that is formed through [[process]]es of [[collective individuation]], stemming from [[collective protention]]s without which no [[psychic protention]]s could be cultivated...[this]] can only have tragic consequences
[[AD1 p26-1]]
a [[collective individuation]] constitutes itself (And can only do so) by exceeding the directly closest collective individuation of the [[psychic]] [[individual]] who is [[individuating]]: I can [[individuate]] myself psychically only by participating in a collective individuation that is [[dream]]ed beyond the immediate collectivity closes to me. family/neighborhood/city/country. [[figure]]/[[background]]
[[AD1 p30-1]]
...in the [[pharma]]cological [[condition]], the [[possible]]ity of [[madness]] is the condition of [[reason]], and, so to speak, its reason.
[[AD1 p32-1]]
...in our [[epoch]], which should be understood as the fulfillment of the [[new barbarism]] anticipated by [[Adorno]] and [[Horkheimer]], what is occurring amounts to a murderous [[disarticulation]] of the [[I]] and the [[we]]... the [[epoch of the absence of epoch]]...
The destruction of [[primordial narcissism]] leads to [[madness]], that is, to the loss of [[reason]], and, more precisely, to the loss of this reason for living that creates and gives the feeling of [[exist]]ing
These [[individual]]s and [[group]]s are thus [[transform]]ed into [[data]]-providers, de-[[form]]ed and re-formed by '[[social]]' [[network]]s operating according to new protocols of association. In this way, they find themselves [[disindivuate]]d: their own data, which also amounts to what we cal... [[retention]]s, enables them to be dispossessed of their own [[protention]]s-that is, their own [[desire]]s, [[expectation]]s, [[will]] and so on
[[AD1 p5/6-1]]
!To add all of Stroll to your ~TiddlyWiki
To add Stroll (minus tutorials) to your own ~TiddlyWiki, drag the tag pill below into your file, import, save, and reload. Please note that this overrides the default edittemplate and viewtemplate/titles, in case you have already tweaked those on your file.
<span class="indent1"><<tag $:/giffmex/stroll>></span>
!To add only parts of Stroll to your ~TiddlyWiki
If you just want the bidirectional linking functionality, drag the tag pill below into your file, import, save, and reload. Includes autocomplete, relinking, automatic creation of tiddlers upon saving a tiddler with new links, and contextual search results. Does not include multiple column feature, new here buttons, or visible fold buttons.
<span class="indent1"><<tag $:/giffmex/blinks>></span>
If you just want the tools to customize what you see in the editing area, drag the tag pill below into your file, import, save, and reload.
<span class="indent1"><<tag $:/giffmex/bigeditarea>></span>
And if for some reason you want the tutorial tiddlers (not included in either of the tag pills above), drag the ''tutorials'' tag pill from the home page into your file, import, save, and reload.
<span class="indent1"><<tag $:/giffmex/tutorials>></span>
!Uninstall ~TiddlyBlink
<br>''If you already use ~TiddlyBlink'', you can uninstall it before adding Stroll: go to $:/AdvancedSearch in your file, paste `[is[system]tag[tb]]` in the search box to search for that string, and click the garbage can icon to delete the tiddlers. Then add Stroll in the method outlined above.
the [[process]] of [[adopt]]ion... can only be effect as the [[expression]] of a [[singularity]] that it [[invent]]s to the [[degree]] that it [[draw]]s itself together...
[[DID p19-1]]
reminiscient of the process of the [[tensor]] from [[A Thousand Plateaus]]
[[emergence]] [[new]] [[pre-individual]]
[[Adorno]] and [[Horkheimer]]
!Tiddler title position
Because of the two story river format, we decided to move tiddler titles lower than they are in an average ~TiddlyWiki. But if you want to revert tiddler titles back to the default position next to the toolbar, open the sidebar TAB with the gear icon (<<icon {{$:/core/images/options-button}} "">>), and check the desired box.
!Options for viewing tiddlers in columns
Stroll has columns set so that you can view multiple tiddlers in each column. But you can change this so that either column only shows one tiddler at a time.
*Advantage: this allows you to keep one column 'locked' into place with one fixed tiddler, while the other column can have multiple tiddlers accessible by scrolling up and down.
*Disadvantage: any other tiddlers in the 'locked' column will be hidden. You will need to open them with the links in the 'Open' tab in the sidebar.
To try this out, open the sidebar tab with the gear icon (<<icon {{$:/core/images/options-button}} "">>), and choose from the dropdown menus there.
!Give yourself room to write!
Edit a tiddler, and click the <<icon {{$:/core/images/chevron-down}} "">> button. This will give you options for:
*Hiding and revealing the various sections of the edittemplate
*Opening and closing the sidebar
*Editing a custom edittemplate section that contains information you want to have on hand as you write
*Adjusting the height of the text area of tiddlers
...our apprehension of [[space]], including [[film]]ic space, occurs through an engagement with [[touch]] and [[movement]]. Our [[site]]-[[seeing]] tour follows this intimate patch of mobilized visual space, [[err]]ing from architectural and artistic sites to moving pictures. Haptically driven, the atlas finds a design for filmic space within the delicate [[cartography]] of [[emotion]], that sentient place that exists between the [[map]], the [[wall]], and the [[screen]].
[[AEp39]]
By changing the relation between [[spatial]] [[perception]] and [[bodily]] [[motion]], the new [[architecture]]s of [[transit]] and [[travel]] culture prepared the ground for the invention of the moving image, the very epitome of modernity.
[[AE41]]
...the [[city]] [[emerge]]s both as something more than and something different from the mere object of the [[film]]s. Here, metropolis and film [[interface]] as a distinctly modern production in which a correspondence between the city [[space]] and the [[film]] space, between the [[motion]] of the city and the [[moving image]], exists. The [[machine]] of modernity that fabricated the city is also the "[[fabric]]" of the film.
[[AE42]]
[[film]] is an analytical [[cyborg]]: a relative of the Xray, it can dissect [[somatic]] [[trace]]s. It can even freeze the [[body]], as only [[death]] can, [[transform]]ing it into a nature morte. Insofar as it is fundamentally "still" [[photography]], film is inhabited by death. Like a waxwork or mummy, its [[illusion]]ary [[movement]] can return us to a [[state]] of [[still]]ness. By freezing [[time]] in space, the cinema, at some level, can preserve body [[image]]s, propelling them into a future they would not otherwise be able to enjoy. By way of its [[laboratory]] of [[reproduction]], the [[cinema]] can fashion "[[replicant]]s" that are-as Ridley Scott's Blade Runner would have it "skin jobs." Terminal [[subject]]s. Still lives turned into [[moving picture]]s.
[[AE48]]
[[editing]]-an analytic procedure-[[embody]]s, with its [[assemble]]ing [[force]], the [[power]] to [[fashion]] that which we have called an "[[emotion]]." In this woman's laboratory, the mobility of the city ceases, and so does the course of life of the city dwellers. Suddenly their faces no longer move. They are frozen, dead, arrested on the editing table. Yet the force of [[editing]], the arrest, also contains the power to release the [[movement]]. The [[moving image]] overcomes the [[death]] of "still" [[photography]]. And, just as it happens in the work of [[mourning]], life moves on.
[[AE54]]
[ [[noir]] ] claims a privileged role in the [[production]] of the urban terrain.
Filmic [[genre]]s and cycles are specific to [[site]]s and even to means of [[transport]]ation, and, in turn, they change the way we re[[map]] those sites. The railroad and the open [[landscape]] [[generate]]d and shaped the western, outer space defined the domain of science fiction, the car determined the road movie...
[[AE56]]
Locked within a [[Lacan]]ian [[]gaze]], whose [[spatial]] impact remained unexplored, the [[film]] spectator turned into a [[voyeur]]. By contrast, when we speak of [[site]]-seeing we imply that, because of film's spatio-corporeal mobilization, the spectator is rather a [[voyageur]], a [[passenger]] who traverses a [[haptic]], emotive terrain. Through this shift, my aim is to reclaim [[emotion]] and to argue, from the position of a film [[voyageuse]] for the haptic as a [[feminist]] strategy of [[reading]] [[space]].
[[Atlas of Emotion]]
For the affect is not a personal feeling, nor is it a characteristic; it is the [[effectuate]]ion of a [[power]] of the [[pack]] that throws the [[self]] into upheaval and makes it reel. Who has not known the violence of these [[animal]] sequences, which uproot one from humanity, if only for an instant, making one scrape at one's bread like a rodent, or giving one the yellow eyes of a feline? A fearsome [[involution]] calling us toward unheard-of [[becoming]]s. These are not regressions, although fragments of regressions, sequences of regression may enter in.
[[ATP p240-1]]
[[affection-image]]s
are [[icon]]...
[[12CS13]]
[[AoD p4]]
ANOTHER ONE
[[AD1 p5/6-1]]
[[Stiegler]]
The Leibnizian [[aggregate]]s are masses infinitely composed of [[mass]]es. [[LATB1-7]]
[[AoP p33-1]]
[[Baurdrillard]]
* First mode [[AIME p35-1]]
[[AIME p30-1]]
...these are [[mistake]]s that bear on the [[interpretative key]] itself. Every hiker knows that it is one thing to embark boldly on a well-marked [[path]]; it is quite another to decide which path to take at the outset in the face of [[sign]]posts that are hard to [[interpret]]. the [[documentary]] base that I have begun and that I would like to extend has to do with hesitations of this sort... each [[mode]] defines, most often with astonishing precision, a mode of [[veridiction]] that has nothing to do with the [[epistemological]] definition of truth and falsity...
[[AIME p50-1]]
...a [[border]] indicates less a dividing [[line]] between two homogeneous [[set]]s than an intensification of crossborder traffic between foreign [[element]]s... [she] will be content to start with some arbitrary [[sequence]] of [[practice]]s. For example; she goes to a laboratory [and follows the [[actor]]s]... instead of seeking to identify [[domain]] [[boundary]]s, which are constantly challenged by innumerable erasures, nothing prevents her any longer from following the [[connection]]s of a given [[element]], it hardly matters which one, and finding out where it leads.
there is no such thing as [[domain]]s... indeed there are [[network]]s that [[associate]]-according to [[segment]]s that are always new, and that only empirical investigation can discover-[[element]]s of [[practice]] that are borrowed from all the old domains and redistributed in a different way each time.
[[AIME p30-1]]
"under the word [[network]] we must be careful not to confuse what [[circulate]]s once everything is in place with the setups involving the heterogeneous [[set]]s of [[element]]s that allow circulation to occur." network as result vs network as [[process]]. [[difference]] between using my cellphone as a [[form]] in the sense of RTS and investigating the cell phone network and all the places that leads me to
"...in the case of a network interruption... the two [[sense]]s of the [[word]] network... [[converge]]. Everyone then sets out to explore all over again the set of elements that have to be knitted together if there is to be a"resumption of deliveries"."
the gas for cooking my risotto has to pass through the moods of an oil sheikh, and not just his pipelines
[[AIME p31-1]]
...the exploratory work that makes it possible to recruit or to constitute a [[discontinuous]] [[series]] of heterogeneous [[element]]s on the one hand and on the other something that [[circulate]]s in a [[continuous]] fashion once all the elements are in place, when maintenance is assured and there is no crisis... the [[movement]] of [[association]] and the [[passage]] through unanticipated [[element]]s could become her privileged tool... [which] would signal the numerous surprises that she experiences in the discovery of the ingredients necessary to the [[extension]] of any [[practice]] whatsoever.
[[AIME p32-1]]
[[network]] designates a [[series]] of [[association]]s revealed thanks to a [[trial]]-consisting in the surprises of ethnographic investigation-that makes it possible to understand through what series of small [[discontinuity]]s it is appropriate to [[pass]] in order to obtain a certain [[continuity]] of [[action]]. This principle of [[free association]] or to put it more precisely, this principle of [[irreduction]] that is found at the heart of [[ANT]] has demonstrated its fruitfulness by authorizing a number of [[observer]]s to give themselves as much freedom of [[movement]] in their studies as their [[informant]]s have. This is the principle we count on at the outset.
[[AIME p33-1]]
...the [[network]], defined by a particular way of passing through, going by way of, another [[element]] that comes as a [[surprise]]to her, at least at first... it involves a particular [[pass]] (as one speaks of passing a shot in basketball), which consists, for any [[entity]] whatsoever, in passing by way of another through the [[intermediary]] of a step, a leap, a [[threshold]] in the usual course of [[event]]s.
[[form]]
[[AIME p33-2]]
this first [[mode]] of exploration of the [[entity]]s required for the [[existence]] of another entity will be noted as [[NET]]
[[AIME p33/4-1]]
Law is no more made of law than a gas pipeline is made of gas but the legal [[network]], once it is in place... really does ensure the supply of law.. There's are [[network]]s that can be defined as a [[series]] of [[association]]s of the [[NET]] type, and yet what [[circulate]]s in them in a [[continuous]] and reliable fashion (provided that they are maintained with regularity, at great cost) does indeed supply [[value]]s, services, distinct products.
[[AIME p35-1]]
[the [[transformation]] of an ill-formed] demand made by an indignant plaintiffs whose lawyer, first, and then the judge 'extracted' as they put it, the legal '[[means]]' before passing [[judgement]]. Between the more or less inarticulate complaint, the request in due [[form]], the arguments of the parties, and the judgement, she is able to [[trace]] a [[trajectory]] that resembles no other. To be sure, all the [[interconnect]]ed [[element]]s belong to different [[world]]s, but the [[mode]] of [[connection]], for its part, is completely specific...
[[AIME p36-1]]
There is here, in fact, a [[pass]] particular to [[law]]; something that leaps from one step to the next in the work of [[procedure]] or in the extraction of [[mean]]s. In short, there is a particular type of [[connection]], of [[association]], that we are going to have to learn how to [[qualify]]
[[AIME p38-1]]
The [[essence]] of an [[event]], as it were, will be, for a [[NET]] the [[list]] of the other [[being]]s through which it is necessary to [[pass]] so that this situation can endure, be prolonged, maintained or extended. To [[trace]] a [[network]] is thus always to reconstitute by a [[trial]]... the antecedents and consequents.... Or... the [[other]]s through which one has to pass in order to [[become]] or remain the same, which presupposes that no one can simply remain the same as it were, without doing anything. To remain, one only needs to [[pass]]-or at all events to pass through-something we shall call a [[translation]].
[[AIME p39-1]]
[[NET]]-is a term through which one ultimately obtains [[continuity]] through the [[intermediary]] of [[discontinuity]]s, unexpected [[association]]s, that are revealed by the course of the [[investigation]]...
Two types of [[data]]: first, the very general data of the NET type, which tell us nothing more than that we have to [[pass]] through surprising [[association]]s, and second, something that we have to add to these data in every case, something that will allow us to define the quality of the activity in questions. The first type will allow our friend to explore the extraordinary diversity of the associations that define the adventure of the [[modern]]s; the second will allow her to explore the diversity of the [[value]]s they appear to cherish. First is infinite, as are the [[entity]]s that can be associated in a [[network]], second is finite, as are the values that the moderns have learned to defend
[[emergence]] of finite values as an [[object]] of investigation for the [[ANT]]? Ability of someone on 4chan to detect the jew, marxists to see glowies, dems to see repubs, conservs to see libtards, etc. [[uncertainty]], that's the first for [[group formation]], in a sense. That's just one restricted example, those being courses of [[action]] where values are made to appear and be used. example a few pages back is the ability of a researcher to discern a businessy statement from science from legal from... but not necessarily be able to justify or enunciate the basis of this discrimination.
[[AIME p41-1]]
She has defined her [[object]] of [[study]]; she as fleshed out her ordinary [[method]] with two additional [[element]]s specific to modern fields. [[network]] analysis on the one hand, the detection of [[value]]s on the other... she knows that she is going to have to take into [[account]] for each [[subject]], a fluctuating [[relation]] between the values that she will have identified and the [[institution]]s charged with harboring them
[[AIME p42-1]]
...the object of this [[enquiry]]...:to continue to follow the indefinite [[multiplicity]]of [[network]]s while determining their distinctive way of [[expand]]ing...
To begin, we shall [[record]] the [[error]]s we make when we [[mistake]] one thing for another, after which our [[interlocutor]]s correct us and we then have to correct-sometimes by means of painful [[test]]s-the [[interpretative key]] that we shall have to apply in similar situations from that [[point]] on.... if we were to make ourselves capable of documenting such interpretive conflicts carefully enough, systematically enough, over long enough time periods, we would end up identifying privileged [[site]]s where [[contrast]]s between several [[key]]s are revealed. The raw [[material]] for this work is thus a vast [[chart]] in which [[category mistakes]] are identified in pairs. The result is what I call a [[pivot table]]; we shall soon see how to read its most important results.
[[AIME p46-1]]
The only [[mistake]]s of interest here are those that reveal what could be called [[second-degree]] mistakes and that bear on detection of the causes of the mistake itself.
[[AIME p48-1]]
What will be of interest, however, are the cases in which we find ourselves confused about the very way in which the [[question]] of [[truth]] and falsity should be addressed. Not the absorption of [[mistake]]s within a given [[mode]], but uncertainty about the mode itself... like the visitor to the university, we have the disturbing [[impression]] of mistaking one thing for another, making a mistake not in a given [[direction]] but about the very direction in which to turn our [[attention]].
[[trajectory]]? Well yes, sort of
[[AIME p49-1]]
If you find yourself in a bookstore and you browse through books identified in the front matter as novels, documents, inquiries, docufiction, memoirs, or essays, these notices play the [[role]] of [[preposition]]s... they engage the rest of your reading in a decisive way... [you won't read a novel like a document-this is a category [[error]]] [this term] mark[s] a position-taking that comes before a proposition is stated, determining how the [[proposition]] is to be grasped and thus its [[interpretative key]].
[[AIME 53-1]]
...to understand the meaning of the [[proposition]] that is being addressed to you, you have to have settled the initial [[question]] of its [[interpretive key]], which will determine how you [[understand]], [[translate]], and [[transcribe]] what is to follow. [[AIME p57-1]]
We are going to have to try to understand why there are so few types of [[veridiction]] in the [[history]] of the [[modern]]s that have managed not to clash with others.
[[AIME p58-1]]
Discussion/review of net and pre, then "We shall thus say of any [[situation]] that it can be grasped first of all in the [[NET]] [[mode]]-we shall [[unfold]] its network of [[association]]s as far as necessary-then in the [[PRE]] mode-we shall try to qualify the type of [[connection]]s that allow its [[extension]]. The first makes it possible to capture the [[multiplicity]] of associations, the second the [[plurality]] of the modes identified during the course of the [[modern]]s complicated history. In order to exist, a [[being]] must not only [[pass]] by way of another NET but also in another [[manner]] PRE, by exploring other ways, as it were, of [[altering]] itself...
[[AIME p61-1]]
The [[NET PRE]] [[crossing]] is rather special since it is the one that authorizes the [[enquiry]]
[[AIME p62-1]]
[[summary]], then "the speaker who speaks well is able to [[describe]] [[network]]s in the [[NET]] [[mode]], at the risk of shocking practitioners who are not at all accustomed, in [[modernism]], to speaking of themselves in this way;
To [[verify]] with these same practitioners that everything one is saying about them is indeed exactly what they know about themselves but only in [[practice]]
To [[explore]] the reasons for the gap between what the description reveals and the [[account]] provided for by the [[actor]]s, using the [[concept]]s of [[network]] and [[preposition]]...
The [[project]] is immense but at least clearly defined, all the more so in that each of its [[element]]s is the [[object]] of a specific [[test]]:
the first is factual and empirical: have we been faithful to the field by supplying proofs of our claims?
The second... have we made ourselves understood by those whom we may have shocked, without giving up our formulations?
The third: have we accounted for the historical fluctuations between value and [[network]]?
[[AIME p63-1]]
I... use the adjective [[rational]] to designate from now on the thread-by-thread [[tracing]] of the various [[network]]s, to which we shall add the various [[trajectory]]s of [[veridiction]] or [[malediction]], each defined by a separate [[preposition]]. To [[understand]] rationally any [[situation]] whatsoever is at once to [[unfold]] its network and define its preposition, the [[interpretative key]] in which it has to be grasped, [[NET PRE]].
[[AIME p64/5-1]]
Everything hinges on the [[question]] of the [[correspondence]] between the [[world]] and [[statement]]s about the world.
[[AIME p66-1]]
our [[enquiry]] [bears] on the identification of a type of [[trajectory]] whose seeming [[continuity]] was actually obtained by a particular way of leaping over [[discontinuity]]s that were different in each case. We have already identified four of these [[pass]]es: legal [[mean]]s, scientific [[proof]], religious [[predication]], and an all-terrain [[mode]], [[network]]s of [[association]]... each mode had defined its own [[form]]s of [[veridiction]] that allowed it to define the [[condition]]s for the success or failure of such a [[leap]]... we have understood that modes can be compared in pairs when they [[intersect]] in [[crossing]]s, occasions revealed most often by a test of [[category mistake]]s bearing on one of the [[felicity conditions]].
[[AIME p71-1]]
It will no longer be a [[question]] of relating a [[mind]] and a [[thing]] but of bringing into [[correspondence]] two entirely distinct [[mode]]s of [[verification]] while respecting the [[break]] in [[continuity]] that must always distinguish them.
[[example]] of the [[correspondence]] of the hikers map and their location, how all these [[discontinuity]]s form a [[network]].
[[AIME p73-1]]
...we know that we can consider [[reason]] with or without its [[network]]s; apart form networks, as we have understood, it remains unattributable... once it has been reincorporated, reinserted, reaccompanied, re[[articulate]]d into the networks that give it its [[direction]], reason in the [[sense]] of [[reference]] immediately points both to a [[series]] of [[discontinuity]]s, [[hiatus]]es, steps, leaps, each of which separates one [[stage]] from the next, and to the result of a [[continuity]] that allows access.
[[AIME p74-1]]
One of the questions that distinguishes one [[mode]] from another: what is the form of alteration or otherness particular to this mode, assuming that the being exists as [[being-as-other]] and not as [[being-as-being]]? It is a question here of the distinction between [[substance]] and [[subsistence]]. Thus the term has no opposite in the inquiry's [[metalanguage]]. It is designed to allow for a passage into all the other alterations that are particular to each mode.
- 2 -
This is the most general term there is - more general even than [[difference]] - and more general too than the notions of [[event]]s, the [[virtual]], the [[possible]], [[non-being]], [[contradiction]], [[negation]], [[alienation]], [[possibility]], [[transcendence]] and "[[differance]]", notions that it was possible to use successively, in [[ontology]], to monitor the degrees by which the alteration of a being was registered.
One of the [[question]]s that distinguishes one [[mode]] from another: what is the [[form]] of alteration or [[other]]ness particular to this mode, assuming that the being exists as [[being-as-other]] and not as [[being-as-being]]? It is a question here of the distinction between substance and subsistence. Thus the term has no opposite in the inquiry's metalanguage. It is designed to allow for a [[passage]] into all the other alterations that are particular to each mode.
- 2 -
This is the most general term there is - more general even than difference - and more general too than the notions of events, the virtual, the possible, non-being, contradiction, negation, alienation, possibility, transcendence and "différance", notions that it was possible to use successively, in ontology, to monitor the degrees by which the alteration of a being was registered.
[[Husserl]]
Page numbers refer to PDF on my BOOX tablet, whereas tags like Part2$1 refer to internal organizations consistent across the text.
The [[anomalous]] is the [[white wall]] bordering the pack, but also the demonic term of the alliance.
[[ATP p249-2]]
[[Anti-Oedipus Chapter 3 Section 2 The Primitive Territorial Machine]] [[Quote]]
[Earth as god, full body as god; the Numen makes everything appear off the body as if by God rather than by Libido, by production; the idea of earth cults as an example of this, they come to see the earth being a god and its energy that provides what comes not from Numen and the full body but instead from libido and connection]
the "intensive filiation, this inclusive disjunction where everything divides, but into itself, and where the same being is everywhere, on every side, at every level, differing only in intensity.'
"If the full body falls back on the productive connections and inscribes in them a network of intensive and inclusive disjunctions, it still has to find again and reanimate lateral connections in the network itself, and it must attribute them to itself as though it were their cause... It is not content to inscribe all things, it must act act as if it produced them. It is necessary that the connections reappear in a form compatible with the inscribed disjunctions, even if they react in turn on the form of these disjunctions." 154
Two ways of looking at the memory function of the inscriptions here; as alliance being the part that goes back to infinity, or filliation, rather than as one always preceding the other, rather than as one always giving birth to the other.
"The problem is one of passing from an intensive energetic order to an extensive system, which comprises both qualitative alliance and extended filiations."
155
How do we move from ambiguous intensive signs, which can be either + or -?
A sister is a woman to be lost, a wife is a woman gained by marriage
Could chains of a given segment look something like these? = representing someone gained, - representing someone lost
++-+-+++---+-
-+-++--+--+-+
Where each sign represents a place in the segment; however, each sign would then have an additional value on top of the individual + or -, which would be the ability to be lost, or the ability to be a gain? Each sign really is either ++ -- +- -+156
Pages refer to pdf pagination
Key Terms for this text
Alphabetized by the first terms in the series
Body Without Organs
BwO
Connective Additive Synthesis
Disjunctive Synthesis
Conjunctive Synthesis
Exclusive and Inclusive use of the Syntheses
Intensities
Intensive Qualities
Libido
Numen
Voluptas
Multiplicity Multiplicities
Paranoiac Machine
Miraculating Machine
Celibate Machine
Process
Process of Production
Method of Inscription
Producing
Production
BwO
Production
Reproducting
Consumption
Segment
Semiotics
Asignifying Semiotics
Signifying Chains
Series
Singularitues
Socious
Territorialization
Deterritorialization
Reterritorialization
Unconscious
[[A thousand plateaus]] [[schizoanalysis]] [[Deleuze]] [[Guattari]]
[[Anti-Oedipus Chapter 1 Section 2 The Body Without Organs]] [[Quote]]
“Delirium and hallucination are secondary in relation to the really primary emotion, which on the beginning only experiences intensities, becomings, transitions.”
Not only the mentally ill have this in the unconscious; all unconsciouses do
Building not just a model of the unconscious, but of all psychology, in the basis of psychosis, in contrast to that of psychoanalysis, of neurosis
Societally accepted forms of emotions as a certain restriction, oedipalization of intensive quantities? You come to unconsciously know and recognize that you are only allowed to recognize the parts of your intensities that pass through the gridding of society/the socius, only able to feel what is shown in a representation
18-19
“Where do these pure intensities come from? They come from the two preceding forces, repulsion and attraction, and from the opposition of these two forces. It must not be thought that the intensities themselves are in opposition to one another, arriving at a state of balance around a neutral state.
On the contrary, they are all positive in relationship to the zero intensity that designates the full body without organs. And they undergo relative rises or falls depending on the complex relationship between them and the variations in the relative strength of attraction and repulsion as determining factors.
[what is this relative strength? Where does it come from? Strength of BwO to repulse in additive, then miraculate and attract in recording?]
[attraction and repulsion—solely of the two preceding syntheses/machines etc. or of the attraction and repulsion felt by the handyman of the machines, the subject himself?]
In a word, the opposition of the forces of attraction and repulsion produces an open series of intensive elements, all of them positive, that are never an expression of the final equilibrium of a system, but consist, rather, of an unlimited number of stationary, metastable states through which a subject passes. The Kantian theory according to which intensive quantities fill up, to various degrees, matter that has no empty spaces, is profoundly schizo.”
A multiplicity of desiring-machines and all of the syntheses and machines at once, leading to this mass “open series of intensities.”
The BwO as having no empty spaces? Only a surface that repulses, attracts, and is inscribed upon?
New paragraph begins
“Further, if we are to believe Judge Schreber’s doctrine, attraction and repulsion produce various intense nervous states that fill up the body without organs to various degrees—states through which Schreber-the-subject passes, becoming a woman and many other things as well, following an endless circle of eternal return.
The breasts on the judge’s naked torso are neither delirious nor hallucinatory phenomena: they designate, first of all, a band of intensity, a zone of intensity on his body without organs. The body without organs is an egg: it is crisscrossed with axes and thresholds, with latitudes and longitudes and geodesic lines, traversed by gradientsmarking the transitions and becomings, the designations of the subject developing along those particular vectors.
[the subject wandering through all these alongside the desiring-machines, tripping endless becomings]
Nothing here is representative; rather, it is all life and lived experience: the actual, lived emotion of having breasts does not resemble breasts, it does not represent them, any more than a predestined zone in the egg resembles the organ that it is going to be stimulated to produce within itself.
Nothing but bands of intensity, potentials, thresholds, and gradients with a harrowing, emotionally overwhelming experience, which brings the schizo as close as possible to matter, to a burning, living center of matter: “...this emotion, situated outside of the particular point where the mind is searching for it... one’s entire soul flows into this emotion that makes the mind aware of the terribly disturbing sound of matter and passes through its white-hot flame.”” Artaud
19
The schizo as one “who sought to remain at that unbearable point where the mind touches matter and lives its every intensity, consumes it?”
“...how does psychoanalysis go about reducing a person, who this time is not a schizophrenic but a neurotic, to a pitiful creature who eternally consumes daddy-and-mommy and nothing else whatsoever? How could the conjunctive synthesis of “So that’s what it was!” and “So it’s me!” have been Reduced to the endless, dreary discovery of Oedipus: “So it’s my father, my mother?”” No answer at this point of the text
BwO becomes choked, blocked up by the modeling system, all we can consume is oedipus
“We merely see how very little the consumption of pure intensities has to do with family figures, and how very different the connective tissue of the “So it’s...” is from the Oedipal tissue.”
Two summaries, first, easiest, “the points of disjunction on the body without organs form circles that converge on the desiring-machines; then the subject—produced as a residuum alongside the machine, as an appendix, or as a spare part adjacent to the machine—passes through all the degrees of the circle, and passes from one circle to another.
[if subject consumes one state; what of states borne of a multiplicity of machines? Does the subject have a foot in each circle, so to speak?] or perhaps is in all of them at once, drawing a heterogeneous multiplicity of intensities out and off the BwO
This subject is itself not at the center, which is occupied by the machine, but in the periphery, with no fixed identity, forever decentered, defined by the states through which it passes.”
Second, more complex “by means of the paranoiac and miraculating machine, the proportions of attraction and repulsion on the body without organs produce, starting from zero, a series of states in the celibate machine; and the subject is born of each state in the series, is continually reborn of the following state that determines him at a given moment, consuming-consummating all these states that cause him to be born and reborn, (the lived state coming first, in relation to the subject that lives it.)”
“The centrifugal forces do not flee the center forever, but approach it once again, only to flee from it yet again” Klossowski quoted in text
20
There is no single subject, rather a “subject who passes through a series of states, and who identifies these states with the names of history “every name in history is I...” The subject spreads itself out along the entire circumference of the circle, the center of which has been abandoned by the ego. A residual subject of the machine, [he] garners a euphoric reward (Voluptas) from everything that this machine turns out...”
“It is not a matter of identifying with various historical personages, but rather identifying the names of history with zones of intensity on the body without organs... “They’re me! So it’s no me!” No one has ever been as deeply involved in history as the schizo, or dealt with it in this way. He consumes all of universal history in one fell swoop. We began by defining him as homo natura, and lo and behold, he had turned out to be homo historia.”
Identity as a sort of organ? Identifying a name with the zone of intensity as the creating of identity-as-organ? All subjectivity, all identity, not as a core part of psychology or the unconscious, but as an organ produced like all other productions of consumption, as a residuum
21
[[Anti-Oedipus Chapter 1 Section 3 The Subject and Enjoyement]] [[Quote]]
Delirium, a global and systematic phenomena is ‘a secondary phenomenon, a consequence of partial and local automatistic phenomena. Delirium is in fact characteristic of the recording that is made of the process of production of the desiring-machines; and though there are syntheses and disorders (affectations) that are peculiar to this recording process, as we see in paranoia and even the paranoid forms of schizophrenia, it does not constitute an autonomous sphere, for it depends on the functioning and breakdowns of desiring-machines.”
“A truly materialist psychiatry can be defined... by the twofold task it sets itself: introducing desire into the mechanism, and introducing production into desire.”
The mechanism of the human, the ‘neurological mechanism’
22
“The fact is, from the moment that we are placed within the framework of Oedipus—from the moment that we are measured in terms of Oedipus—the cards are stacked against us, and the only relationship, that of production, has been done away with.”
Relation of this to a more general principle of Oedipalization
“Let us remember one of Marx’s caveats: we cannot tell from the mere taste of wheat who grew it; the product gives us no hint as to the system and the relations of production. The product appears to be all the more specific, incredibly specific and readily describable, the more closely the theoretician relates it to ideal forms of causation, comprehension, or expression, rather than to the real process of production on which it depends.”
Criticism of modelization systems
“But the moment one describes, on the contrary, the material process of production, the specificity of the product tends to evaporate, while at the same time the possibility of another outcome, another end result of the process appears.”
The specificity of the ideal tends to...?
Before the diagnostics of psychoanalysis, “schizophrenia is the process of the production of desire and desiring-machines.”
24
“From the moment we place desire in the side of acquisition, we make desire an idealistic (dialectical, nihilistic) conception, which causes us to look upon it as primarily a lack; a lack of an object, a lack of the real object.”
25
“If desire produces, it’s product is real. If desire is productive, it can be productive only in the real world and can produce only reality. Desire is the set of passive syntheses that engineer partial objects, flows, and bodies, and that function as units of production. The real is the end product, the result of the passive syntheses of desire as autoproduction of the unconscious.
Desire does not lack anything; it does not lack its object. It is, rather, the subject that is missing in desire; or desire that lacks a fixed subject; there is no fixed subject unless there is repression. Desire and its object are one and the same thing: the machine, as a machine of a machine.
Desire is a machine, and the object of desire is another machine connected to it. Hence the product is something removed or deducted from the process of producing: between the act of producing and product, something becomes detached, thus giving the vagabond, nomad subject as residuum”
Desire is only machines connecting to more machines, the product is a record or deducted part
26
The objective being of desire is the Real in and of itself
26-7
There is no particular form of existence that can be labeled “psychic reality.” As Marx noted, what exists in fact is not lack, but passion, as a “natural and sensuous object.” Desire is not bolstered by needs, but rather the contrary; needs are derived from desire: they are counterproducts within the real that desire produces.”
Lack is social in nature
“...the significance of need as a search in a void: hunting about, trying to capture or become a parasite of passive syntheses in whatever vague world they may happen to exist in...
What is missing is not things a subject feels the lack of somewhere deep down inside of himself, but rather the objectivity of man, the objective being of man; for whom to desire is to produce, to produce within the realm of the real.”
“Desire does not express a molar lack within the subject; rather, the molar organization deprives desire of its objective being.”
“Revolutionaries, artists, and seers are content to be objective, merely objective: they know that desire clasps life in its powerfully productive embrace, and reproduces it in a way that is all the more intense because it has few needs.”
27
“Lack is created, planned, and organized in and through social production. It is counterproduced as a result of the pressure of antiproduction; the latter falls back on the forces of production and appropriates them. It is never primary... It is lack that infiltrates itself, creates empty spaces of vacuoles, and propagates itself in accordance with the organization of an already existing organization of production.”
“There is no such thing as the social production of reality on one hand, and a desiring-production that is mere fantasy on the other.”
28
“The truth of the matter is that social production is purely and simply desiring-production itself under determinate conditions. We maintain that the social field is immediately invested by desire, that it is the historically determined product of desire, and that libido has no need of any mediation or sublimation, any psychic operation, any transformation, in order to invade and invest the productive forces and the relations of production. There is only desire and the social, and nothing else.”
‘Determinate conditions’ another basis for their project of universal history?
If social production is desiring-production, can the subject produced in the conjunctive synthesis be a group?
29
Desiring-production applies “to the real in both its so called rational and irrational forms.”
“It is not possible to attribute a special form of existence to desire, a mental or psychic reality that is presumably different from the material reality of social production. Desiring-machines are not fantasy-machines or dream-machines, which supposedly can be distinguished from technical and social machines.”
Fantasy is never individual, always group fantasy
“And if there is such a thing as two sorts of group fantasy, it is because two different readings of this identity are possible, depending on whether the desiring-machines are regarded from the point of view of the great gregarious masses that they form, or whether social machines are considered from the point of view of the elementary forces of desire that serve as a basis for them.
Hence in group fantasy the libido may invest all of an existing social field, including the latter’s most repressive forms; or, on the contrary, it may launch a counterinvestment whereby revolutionary desire is plugged into the existing social field as energy.” 30
————————————————————————
“But there is never any difference in nature between the desiring-machines and the technical social machines. There is a certain distinction between them, but it is merely a distinction of régime, depending on theirrelationships of size. Except for this difference in régime they are the same machines, as group fantasies clearly prove.”
Technical machines run by wearing down, not by misfunction; they transmit the value lost by wearing down to the product they produce
“Desiring-machines, in the contrary, continually break down as they run, and in fact only run when they are not functioning properly: the product is always an offshoot of production, implanting itself upon it like a grafted and at the same time the parts of the machine are the fuel that makes it run.” 31
“The artist is the master of objects; he puts before us shattered, burned, broken-down objects, converting them to the régime of desiring-machines, breaking down is part of the very functioning of desiring-machines; the artist presents so many paranoiac machines, miraculating-machines, and celibate machines as so many technical machines, so as to cause desiring machines to undermine technical machines. Even more important, the work of art is itself a desiring-machine. The artist stores up his treasures so as to create an immediate explosion, and that is why, to his way of thinking, destructions can never take place as rapidly as they ought to.”
Desiring-machines produce their own antiproduction, technical machines do not, but the social machine [socius] they are an index of does.
Despite a governance of two separate regimes, desiring-machines and social technical machines are the same machines.
“There is only one kind of production, the production of the real.”
Everything that is, is real
Produced the real, the real thoughts, produced the real hallucinations
Thoughts as having more, rather than less in common with hallucinations, or would it be delirium? 32
“And doubtless we can express this identity [social vs desiring] in two different ways, even though these two ways together constitute the auto production of the unconscious as a cycle.” 32-33
“We can say that social production, under determinate conditions, derives primarily from desiring-production: which is to say that Homo natura come first.
But we must also say, more accurately, that desiring-production is first and foremost social in nature, and tends to free itself only at the end: which is to say that Homo historia comes first.”
“The social machine or socius may be the body of the Earth, the body of the Despot, the body of Money. It is never, however, a projection of the body without organs. On the contrary: the body without organs is the ultimate residuum of a deterritorialized socius. The prime function incumbent upon the socius has always been to codify the flows of desire, to inscribe them, to record them, to see to it that no flow exists that is not properly dammed up, channeled, regulated. When the primitive territorial machine proved inadequate to the task, the despotic machineset up a kind of overcoding system.
But the capitalist machine, insofar as it was built in the ruins of a despotic State more or less far removed in time, finds itself in a totally new situation: it is faced with the task of decoding and deterritorializing the flows... By substituting money for the very notion of a code, it had created an axiomatic of abstract quantities that keeps moving in the direction of the deterritorialization of the socius. Capitalism tends towards a threshold of decoding that will destroy the socius in order to make it a body without organs and unleash the flows on this body as a deterritorialized field.” 33
“The decoding of flows and the deterritorialization of the socius; this constitutes the most characteristic and the most important tendency of capitalism.”
Capitalism tends both towards an extreme limiting this in schizophrenia, and a violent reterring away from this,
“Capitalism institutes or restores all sorts of residual and artificial, imaginary, or symbolic territorialities, thereby attempting, as best it can, to recode, to rechannel persons who have been defined in terms of abstract quantities.”
Recapture those who have deterr’d? 34
“The more the capitalist machine deterritorializes, decoding and axiomatizing flows in order to extract surplus value from them, the more its ancillary apparatuses, such as government bureaucracies and the forces of law and order, do their utmost to reterritorialize, absorbing in the process a larger and larger share of surplus value.”
“In the schizo, the two aspects of process are conjoined: the metaphysical process that puts us in contact with the “demoniacal” element in nature or within the heart of the earth, and the historical process of social production that restores the autonomy of desiring-machines in relation to the deterritorialized social machine.
Schizophrenia is desiring-production as the limit of social production. Desiring-production, and its difference in régime as compared to social production, are thus end points, not points of departure. Between the two there is nothing but an ongoing process of becoming that is the becoming of reality.”
35
[[Anti-Oedipus Chapter 1 Section 4 A Materialist Psychiatry]] [[Quote]]
Drives are desiring machines themselves
I’ve essentially rewrote pages 36-42, aka ch5 of sec 1, in what follows
“In what respect are desiring-machines really machines in anything more than a metaphorical sense? A machine may be defined as a system of interruptions or breaks. These breaks should in no way be considered as a separation from reality; rather, they operate along lines that vary according to whatever aspect of them we are considering. Every machine, in the first place, is related to a continual material flow (hyle) that it cuts into. It functions like a ham-slicing machine, removing portions from the associative flow...”
There is no ‘the real,’ only the real of ‘the lines that vary according to which aspect of the lines/breaks/desiring-machines we are considering’
Each associative flow must be seen as an ideal thing, an endless flux flowing from something not unlike the immense thigh of a pig.... Far from being the opposite of continuity, the break or interruption conditions this continuity, it presupposes or defines what it cuts into as an ideal continuity. This is because every machine, as we have seen, is a machine of a machine...”
Machine 3 as the ideal flow to the energy-machine that the organ-machine couples with, slices/breaks into the flow of
But it is only in relationship to a third machine that ideally—that is to say, relatively—produces a continuous and infinite flux...” and then... and then... and then...
“...every machine functions as a break in the flow in relation to the machine to which it is connected, but at the same time is also a flow itself, or the production of a flow, in relation to the machine connected to it. This is the law of production of production.” 36
“That is why, at the limit point of all the transverse or transfinite connections, the partial object and the continuous flux, the interruption and the connection, fuse into one: everywhere there are break-flows out of which desire wells up, thereby constituting its productivity and continually grafting the process of production into the product.”
Break-flows out of which desire wells up; the objects are breaking into partial objects, and strange, transverse connections cannot but keep happening 36-37
“...the cutting off is an integral part of mechanical connections.”
Bettelheims boy as a becoming-machine to escape the repressive family apparatus, but also has a positive, productive autonomy all of his own 37
“In the second place, every machine has a sort of code built into it, stored up inside it. The code is inseparable not only from the way in which it is recorded and transmitted to each of the different regions of the body, but also from the way in which the relations of each of the regions of all of the others are recorded.
[inseparable from recording and transmitting to other desiring-machines on the BwO, as well as its relation to the relations of recording the other regions of the BwO have; is that to say not all recording is the same, not all written in the same language? And the machines by way of the code, know this, and through knowing this must necessarily have a transversal relationship to each other’s codes, as well as regional codes with regional codes? The machines also know of each other, and their regions. What impacts, strange, transversalities can this have?]
An organ may have connections that associate it with several different flows, [an organ may be a multiplicity of partial-objects, of desiring-machines cutting into different flows] it may waver between several functions, and even take on the régime of another organ... All sorts of functional questions this arise: What flow to break? Where to interrupt it? How and by what means? What place should be left for other producers or antiproducers (the place of ones little brother, for instance)? Should one, or should one not, suffocate from what one eats; swallow air, shit with ones mouth?
The data, the bits of information recorded, and their transmission form a grid of disjunctions of a type that differs from the previous connections. We owe to Jacques Lacan the discovery of this fertile domain of the unconscious, incorporating the entire chain—or several chains— of meaning: a discovery thus transforming analysis... But how very strange this domain seems, simply because of its multiplicity—a multiplicity so complex that we can scare to speak of one chain or even one code of desire.”
Code of the machine->data, bits of information from the code qua filter that are asignifying signs are inscribed as the grid of disjunction, these becomes chains of the signs
[disjunctive synthesis is the birth of the asignifying chain of the unconscious (even though all 3 happen at once I like this turn of phrase.)]
The chains are called “signifying chains” because they are made up of signs, but these signs are not themselves signifying. The code resembles not so much a language as a jargon, an open-ended, polyvocal formation. The nature of the signs within it is insignificant, as these signs have little or nothing to do with what supports them.
Or rather, isn’t the support completely immaterial to these signs? The support is the body without organs. These indifferent signs follow no plan, they function at all levels and enter into any and every sort of connection; each one speaks its own language, and establishes syntheses with others that are quite direct along transverse vectors, whereas the vectors between the basic elements that constitute them [the signs?] are quite indirect.”
Vectors that establish transversal connections are quite direct; vectors between basic constitutive elements of the sign are quite indirect
Indirect vectors to the material sign, this is a prevention and critique of the despotic Signifier of Lacan
[sign to sign vectors are quite direct, sign to material support vectors are quite indirect.]
38
“The disjunctions characteristic of these chains still do not involve any exclusion, however, since exclusions can arise only as a function of inhibitors and repressers. They eventually determine the support and firmly define a specific, personal subject.”
38-9
“No chain is homogenous; all of them resemble, rather, a succession of characters from different alphabets in which an ideaogram, a pictogram, a tiny image of an elephant passing by, or a rising sun may make its appearances. In a chain that mixes together phonemes, morphemes, etc., without combining them, papa’s mustache, mama’s upraised arm, a ribbon, a little girl, a cop, a shoe suddenly turn up. Each chain “extracts” a surplus value; just as the orchid code “attracts” the figure of a wasp: both phenomena demonstrate the surplus value of a code.”
Each chain extracts a surplus value from other chains in order to constitute itself, but then we enter into transversal connections that constitute a third; orchid extract from wasp, wasp extracts from orchid, wasp-orchid now exists as a third chain (or just a line?) alongside the orchid and wasp chains.
Extraction of a surplus vs a breaking off of the chain
I believe here the code(s) in a given chain, or even codes created by a new chain, spot and determine the surplus of another chain that they extract
“It is an entire system of shuntings along certain tracks, and of selections by lot that bring about partially dependent, aleatory phenomena bearing a close resemblance to a Markov chain. The recordings and transmissions that have come from the internal codes, the outside world, from one region to another of the organism, all intersect, following the endlessly ramified paths of the great disjunctive synthesis.
If this constitutes a system of writing, it is a writing inscribed on the very surface of the Real: a strangely polyvocal kind of writing, never a biunivocalized, linearized one; a transcursive system of writing, never a discursive one; a writing that constitutes the entire domain of the “real inorganization” of the passive syntheses, where we would search in vain for something that might be labeled the Signifier--writing that ceaselessly composed and decomposes the chains into signs that have nothing that impels them to become signifying. The one vocation of the sign is to produce desire, engineering it in every direction.”
If there’s signs down in the unconscious, is this a sort of semiotic realism a la peirce? Our thoughts and what’s in the mind are to only be signs, not anything else? Sign as a catch-all/modelization for what’s in the unconscious?
“These chains are the locus of continual detachments—schizzes on every hand that are valuable in and of themselves and above all must not be filled in. This is this the second characteristic of the machine: breaks that are a detachment, which must not be confused with breaks that are a slicing off. The latter have to do with continuous fluxes and are related to partial objects.
39
Schizzes have to do with heterogeneous chains, and as their basic unit use detachable segments or mobile stocks resembling building blocks of flying bricks.
39-40
We must conceive of each brick as having been launched from a distance and as being composed of heterogenous elements: containing within it not only an inscription with signs from different alphabets, but also various figures, plus one or several straws, and perhaps a corpse. Cutting into the flows involves detachment of something from a chain; and the partial objects of production presuppose stocks of material or recording bricks within the coexistence and the interaction of all the syntheses.”
New paragraph
“How could part of a flow be drawn off without a fragmentary detachment taking place within the code that comes to inform the flow? [a code and a flow comes with each other; what from the code chooses what slice of the flow; three codes, flow code, machine-slicer code, new code for new flow from the machine? (three lines?), 1 and 1 and 1 new one] When we noted a moment ago that the schizo is at the very limit of the decoded flows of desire, we meant that he was at the very limit of the social codes, where a despotic Signifier destroys all the chains, linearized them, biunivocalizes them, and uses the bricks as so many immobile units for the construction of an imperial Great Wall of China.
But the schizo continually detaches them, continually works them loose and carries them off in every direction in order to create a new polyvocity that is the code of desire [the three codes I wrote above?] Every composition, and also every decomposition, uses mobile bricks as the basic unit.
Diaschisis and diaspasis, as Monakow put it: either a lesion [lesion as a new code, or a new chain, a new arrangement of desiring-machines?] spreads along fibers that link it to other regions and thus gives rise at a distance to phenomena that are incomprehensible from a mechanistic (but not a machinic) point of view; or else a humoral disturbance brings on a shift in nervous energy and creates broken, fragmented paths within the sphere of instincts [slicings off and schizzes]. These bricks or blocks are the essential parts of desiring-machines from the point of view of the recording process: they are at once component parts and products of the process of decomposition that are spatially localized only at certain moments, by contrast with the nervous system, which is a great chronogeneous machine: a melody-producing machine of the “music box” type, with a nonspatial localization.
What makes Monakow and Mourgue’s study an unparalleled one, going far beyond the Jzcksonisr philosophy that originally inspired it, is the theory of bricks or blocks, their detachment and fragmentation, and above all what such a theory presupposes: the introduction of desire into neurology.”
40
New paragraph
“The third type of interruption or break characteristic of the desiring-machine is the residual break or residuum, which produces a subject alongside the machine, functioning as a part adjacent to the machine. And if this subject has no specific or personal identity, if it traverses the body without organs without destroying its indifference [so what if it does destroy it? Where are we headed then? A subject-becoming-desiring-machine, a new paranoiac machine?] it is because it is not only a part that is peripheral to the machine, but also a part that is itself divided into parts that correspond to the detachments from the chain and the removals from the flow brought about by the machine.
40-41
This the subject consumes and consummates each of the states through which it passes, and is born of each of them anew, continuously emerging from them as a part made up of parts, each one of which completely fills up the body without organs in the space of an instant. This is what allows Lacan to postulate and describe in detail an interplay of elements that is more Machinic than etymological: parere: to procure; separare; to separate; se parere: to engender oneself.
[a part made up of parts from machines (and chains perhaps?)]
At the same time he points out the intensive nature of this interplay: the part has nothing to do with the whole; “it performs its role all by itself. In this case, only after the subject has partitioned itself does it proceed to its parturition [act of giving birth]... that is why the subject can procure what is of particular concern to it here, a state that we would label a legitimate status within society. Nothing in the life of any subject would sacrifice a very large part of its interests.”
New paragraph
Like all the other breaks, the subjective break is not at all an indication of a lack or need, but on the contrary a share that falls to the subject as a part of a whole, income that comes its way as something left over. (Here again, how bad a model the Oedipal model of castration is!) That is because breaks or interruptions are not the result of an analysis; rather, in and of themsleves, they are syntheses. Syntheses produce divisions.
Let us consider, for example, the milk the baby throws up when it burps; it is at one and the same time the restitution of something that has been levied from the associative flux; the reproduction of the process of detachment from the signifying chain; and a residuum that constitutes the subject’s share of the whole.
[milk comes from the flow qua ideal of milk, detachment of a new chain of throw up from the chain of the stomach, perhaps the chain of satisfaction, of being overfull, or from the chain of a social game or ritual played out with the whole ritual of becoming-hungry then eating then burping then part three is the subject qua residuum splitting off, easy enough.
We see Numen as detachment energy, a detachment of throw up]
The desiring-machine is not a metaphor; it is what interrupts and is interrupted in accordance with these three modes. The first mode has to do with the connective synthesis; and mobilizes libido as withdrawal energy. The second has to do with the disjunctive synthesis, and mobilizes the Numen as detachment energy. The third has to do with the conjunctive synthesis, and mobilizes Voluptas as residual energy.
It is these three aspects that make the process of desiring-production at once the production of production, the production of recording, and the production of consumption. To withdraw a part from the whole, to detach, to “have something left over,” is to produce, and to carry out real operations of desire in the material world.”
So much typing, goddam
41
[[Anti-Oedipus Chapter 1 Section 5 The Machines]] [[Quote]]
“...consumptions are transitions, processes of becoming, and returns.”
“We believe only in totalities that are peripheral. And if we discover such a totality alongside various separate parts, it is a whole of these particular parts that does not totalize them; it is a unity of all these particular parts but does not unify them; rather; it is added to them as a new part fabricated separately.”
Is my experience of self qua unity a part fabricated separately, perhaps artificially?
42
“... the Whole itself is a product, produced as nothing more than a part alongside other parts, which it neither unifies nor totalizes, though it has an effect on these other parts simply because it establishes aberrant paths of communication between noncommunicating vessels, transverse unified between elements that retain all their differences within their own particular boundaries.”
The self, the handyman, the bricoleur as being able to establish aberrant paths the other 2 t cannot
“The body without organs is produced as a whole, but in its own particular place within the process of production, alongside the parts that it neither unifies nor totalizes. And when it operates on them, when it turns back upon them, it brings about transverse communications, transfinite summarizations, polyvocal and transcursive inscriptions [synonymous with signifying chains?] on its own surface, on which the functional breaks of partial objects are continually intersected by breaks in the signifying chains, and by breaks effected by a subject that uses them as reference points in order to locate itself.”
———————
This is a set of notes to write through and understand that last block quote by way of sun chapter 5, Tje machines
Not really worth reading
Last sentence shows three stages of the process, three breaks of each intersect with each other
Breaks in flows (partial objects cause and slice into flows) breaks in chains, breaks for the subject
P39 “breaks [the schizzes] that are a detachment...schizzes have to do with heterogenous chains” slicings off have to do with flows
The Code “is inseparable not only from the way in which it [the code] is recorded and transmitted to each of the different regions of the body, but also from the way in which the relations of each of the regions of all of the others [all the other codes] are recorded”
Per later in that quote, each chain is initially inside one code, but then the chains break off blocks and heterogenize themselves
the recorded bits (asignifying signs)become the asignfying chains
Signifying Chains lose their chains to their codes
Code as a sort of data channeling system inherent in the desiring-machines that allow the disjunctive synthesis to occur, that allows for inscription to be inscribed? Machine and code are inseparable from/for the disjunctive synthesis, at the least, as partial objects qua desiring-machines and flows are inseparable from/for the additive synthesis
“These bricks or blocks [of the signifying chains] are the essential parts of desiring-machines from the point of view of the recording process: they are at once component parts and products of the process of decomposition that are spatially localized only at certain moments”
The mixing of blocks of the chains as permutations of action during reproduction, as free improvisation, or as answering to new questions, facing up to a new future
The data brought onto the surface of the BwO is these asignifying signs (funneled in by the code) which form chains (as the desiring-machines are chained together in order to produce, so too must the chains be chains to reproduce), which, from the point of view of the recording process, are the essential parts of the desiring machines. They are component parts of the process, but are also products. They are needed to effect the process, but are also its outcome, and are only localized in space (only emerge?) at certain moments. As in, they appear for a time, then disappear; perhaps as a chain of desiring-machines come online, produce, then go offline as the third one comes into play. As in, energy-machine->organ machine
Energy-machine goes offline in the same motion through which organ-machine becomes energy-machine for the next organ-machine. A binary linear series in every direction.
The whole chain may be active; or only one part; I don’t see chains as being binary/linear, but infinitely polyvocal
A detachment of a flow is inseparable from a detachment of a code
Signifying chains as only existing on reproduction or use of a break in a chain to connect (conjunct?) other flows
Not in pure production. Would pure production exist beyond signifying chains? Could we get to a level of some sort where they don’t exist? The pure BwO? ‘Pure’
2 codes
Code of desiring-machine slicing into a flow; code determines what gets selected vs rejected (Luhmann-esaue)
Code of desiring-machine to BwO
——————————
43
We need “to consider the role of production in desire, and the role of desire in mechanics.”
44
“...partial objects... are really produced by being drawn from a flow or nonpersonal hyle, with which they re-establish contact by connecting themselves to other partial objects. The unconscious is totally unaware of persons as such.
[a flow of spit has plenty of partial objects we can draw off it.]
Partial objects are not representations of parental figures or of the basic patterns of family relations; they are parts of desiring-machines, having to do with a process and with relations of production that are both irreducible and prior to anything that may be made to conform to the Oedipal figure.”
Partial objects are yet another aspect of desiring machines under consideration
If partial objects are parts of desiring machines, is that to say a desiring machine can cut into a variety of flows? It’s not restricted to just one?
Yes
Difference of desiring-machine from organ-machine (which can connect to a variety of flows)?
Desiring-machine is both an energy-machine and an organ-machine, depending on where in the binary linear series we are looking, 2,1,2,1...
“Desire constantly couples continuous flows and partial objects...” P 5
46
“A desiring-machine and a partial object do not represent anything. A partial object is not representative, even though it admittedly serves as a basis of relations and as a means of assigning agents a place and a function; but these agents are not persons; any more than these relations are intersubjective. They are relations of production as such, and agents of production and antiproduction.”
Partial objects immediately start to build maps
“How does the child first come to define the placed and the functions that the parents are going to occupy as special agents, closely related to other agents?”
“It would seem obvious that the parents indeed make their appearance on the recording surface of desiring-production. But this is in fact the crux of the entire Oedipal problem: What are the precise forces that cause the Oedipal triangulation to close up? 47
Under what conditions does this triangulation divert desire so that it flows across a surface within a narrow channel that is not a natural confirmation of this surface? 47-48
How does it form a type of inscription for experiences and the workings of mechanisms that extend far beyond it in every direction [the social field? Or perhaps anything beyond of desiring-production of this BwO?]? It is in this sense and this sense only that the child relates the breast as a partial object to the person of his mother, and constantly watches the expression on his mother’s face.
The word “relate” in this case does not designate a natural productive relationship, but rather a relation in the sense of a report or an account, an inscription within the over-all process of inscription, within the Numen.
From his very earliest life of infancy, the child has a wide ranging life of desire—a whole set of nonfamilial relations with objects and the machines of desire—that is not related to the parents from the point of view of immediate production, but that is ascribed to them (with either love or hatred) from the point of view of the recording of the process, and in accordance with the very special conditions of this recording, including the effects of these conditions upon the process itself.”
Recording as the beginning of value judgments, ‘love or hatred,’ what are the ‘very special conditions’? 48
—————————————————-
Psychoanalysis makes of desire “a “dirty little secret,” the dirty little family secret, a private theater rather than the fantastic factory of Nature and Production.” 49
[[Anti-Oedipus Chapter 1 Section 6 The Whole and Its Parts]] [[Quote]]
Should we aim to “shatter the iron collar of Oedipus and rediscover everywhere the force of desiring-production; to renew on the level of the Real, the tie between the analytic machine, desire, and production? For the unconscious itself is no more structural than personal, it does not symbolize any more than it imagines or represents; it engineers, it is Machinic. Neither imaginary nor symbolic, it is the Real in itself, the “impossible real” and its production.” 53
“For what Freud and the first analysts discover is the domain of free syntheses where everything is possible: endless connections, non-exclusive disjunctions, nonspecific conjunctions, partial objects and flows. The desiring-machines pound away and throb in the depths of the unconscious. Irma’s injection, the Wolf Man’s ticktock, Anna’s coughing machine, and also all the explanatory apparatuses set into motion by Freud, all those neurobiologico-desiring-machines.
[this connects to that, rather than his phallus into her, partial nonspecific vs global specific]
And the discovery of the productive unconscious has what appears to be two correlates: on the one hand, the direct confrontation between desiring-production and social production, between symptomological and collective formations, given their identical nature and their differing régimes;
And on the other hand, the repression that the social machine exercise on desiring machines, and the relationship of psychic repression with social repression. This will all be lost, or at least singularly compromised, with the establishment of a sovereign Oedipus.
Free association, rather than opening into polyvocal connections, confines itself to a universal impasse. All the chains of the unconscious are biunivocalized, linearized, suspended from a despotic signifer.”
Goes on to critique this a bit more in depth.
54
“The psychoanalyst becomes a director for a private theater, rather than the engineer or mechanic who sets up units of production, and grapples with collective agents of production and antiproduction.”
“The fundamental notions of the economy of desire—work and investment...”
55
“At the beginning, psychoanalysts could not be unaware of the forcing employed to introduce Oedipus, to inject it into the unconscious. Then oedipus fell back on and appropriated desiring-production as if all the productive forces emanated from Oedipus itself. The psychoanalyst became the carrier of Oedipus, the great agent of antiproduction in desire. The same history as that of Capital, with its enchanted, “miraculated” world. (Also at the beginning, said Marx, the first capitalists could not be unaware of...)”
Paranoiac->miraculating
Oedipus as a ‘nuclear complex’ and the an-Oedipal, the para, exo, pre-oedipal all get chased back to that nucleus (54-56)
56
[[Anti-Oedipus Chapter 2 Section 1 The Imperialism of Oedipus]] [[Quote]]
Freud’s reading of Judge Schreber “consists in positing the adequation of the productive force of the unconscious and the “edifying forces of myths and religions.””
57
“Let us recall Marx’s great declaration: he who denies God does only a “secondary thing,” for he denies God in order to posit the existence of man, to put man in God’s place (the transformation taken into account).”
Repelling god
Miraculating (or is this step skipped)
Then, “so it’s man!”
58
“...the great Phallus, the lack with two nonsuperimposable sides is purely mythical...”
The phallus for men, and for women too
“...neither is there anything in common between the two sexes, nor do they cease communicating with each other in a transverse mode where each subject possesses both of them, but with the two of them partitioned off, and where each subject communicates with one sex or the other in another subject. Nothing is lacking, nothing can be defined as a lack, nor are the disjunctions in the unconscious ever exclusive, but rather the object of a properly inclusive use that we must analyze.”
“Here we have a properly analytical fallacy (which will be found again, to a considerable degree, in the theory of the signifier) that consists in passing from the detachable partial object to the position of a complete object as the as the thing detached (phallus). This passage implies a subject, defined as a fixed ego of one sex or the other, who necessarily experiences as a lack his subordination to the tyrannical complete object.
This is perhaps no longer the case when the partial object is posited for itself on the body without organs, with—as its sole subject—not an “ego,” but the drive that forms the desiring-machine along with, and that enters into relationships of connection, disjunction, and conjunction with other partial objects, at the core of the corresponding multiplicity whose every element can only be defined positively.
[no fixed subject, no complete objects=no lack?]
60
We must speak of “castration” in the same way we speak of oedipalization, whose crowning moment it is: castration designated the operation by which psychoanalysis castrates the unconscious, injects castration into the unconscious. Castration as a practical operation on the unconscious is achieved when the thousand break-flows of desiring-machines—all positive, all productive—are projected into the same mythical space, the unary stroke of the signifier.”
60-61
“It should be recognized that Woman’s Liberation movements contain, in a more or less ambiguous state, what belongs to all requirements of liberation: the force of the unconscious itself, the investment by desire of the social field, the disinvestment of repressive social structures. Nor are we going to say that the question is not of knowing if women are castrated, but only if the unconscious “believes it,” since all the ambiguity lies there.
[a becoming-woman that effects all of society]
What does belief applied to the unconscious signify? What is an unconscious that no longer does anything but “believe,” rather than produce? What are the operations, the artifices that inject the unconscious with “beliefs” that are not even irrational, but on the contrary only too reasonable and consistent with the established order?”
61
“Of course there is always something from the father or the mother that is taken up in the signifying chain—daddy’s mustache, the mother’s raised arms—but it comes furtively to occupy a place among the collective agents. The terms of oedipus do not form a triangle, but exist shattered into all the corners of the social field...”
62
A difference of régime of group vs individual fantasy
“The latter has as subject the ego, insofar as it is determined by the legal and legalized institutions in which it “imagines itself,” to the point where, even in its perversions, the ego conforms to the exclusive use of the disjunctions imposed by the law (for example, Oedipal homosexuality). But group fantasy no longer has anything but the drives themselves as subject, and the desiring-machines formed by them with the revolutionary institutions. The group fantasy includes the disjunctions, in the sense that each subject, discharged of his personal identity but not of his singularities, enters into relations with others following the communication proper to partial objects: everyone passes into the body of the other on the body without organs.”
Individual fantasies want recognition from an institution, from the law, and project the death drive to the other, the outside, the foreigner, and may have the ego die in the fantasy as long as it gets recognition (62-3)
Group fantasy is the fantasy of drives and partial objects to destroy institutions, the death drive turned onto them
Ego/drives/law/other
Drives/partial objects/laws/institutions
Exclusive disjunction: identities
Inclusive disjunction: singularities
“The two kinds of fantasy, or rather the two régimes, are therefore distinguished according to whether the social production of “goods” imposes its rule on desire through the intermediary of an ego whose fictional unity is guaranteed by the goods themselves; or whether desiring-production of affects imposes its rule on institutions whose elements are no longer anything but drives.”
To bypass floundering between Marx and Freud, is to discover “how social productions and relations of productions are an institution of desire, and how affects or drives form part of the infrastructure itself. For they are part of it, they are present there in every way while creating within the economic forms their own repression, as well as the means for breaking this repression.”
63
“The development of distinctions between group and individual fantasy shows sufficiently well, at last, that there is no individual fantasy, instead there are two types of groups, subject-groups and subjugated groups...”
64
Connective synthesis are not “global and specific...” they are local to the desiring-machines and polyvocal
“We are oedipalized, we are castrated; psychoanalysis didn’t invent these operations , to which it merely lends the new resources and methods of its genius.” 67
“But in any case the harm has been done: the treatment has chosen the path of Oedipalization, all cluttered with refuse, instead of the Schizophrenization that must cure us of the cure.” Brilliant polemic in this paragraph
[[Anti-Oedipus Chapter 2 Section 2 Three Texts of Freud]] [[Quote]]
“Given the syntheses of the unconscious, the practical problem is that of their use, legitimate or not, and of the conditions that define a use of a synthesis as legitimate or not.”
Global specific is illegitimate bbby
“In truth, there are never contradictions, apparent or real, but only degrees of humor. And inasmuch as reading itself has its degrees of humor, from black to white, with which it evaluates the coexisting degrees of what it reads, the sole problem is always one of allocation on a scale of intensities that assigns the position and use of each thing, each being, or each scene: there is this and then that, and let’s make do with it, too bad if it doesn’t suit us.”
68
Exclusive disjunctions, repressive, vs
“The “either...or...or” of the combinations and permutations where the differences amount to the same without ceasing to be differences.”
“The opposition here [this follows a paragraph of Proust] is between two uses of the connective syntheses: a global and specific use, and a partial and nonspecific use. In the first, desire at the same time receives a fixed subject, an ego specified according to a given sex, and complete objects defined as global persons. The complexity and the foundations of such of such an operation appear more distinctly it we consider the mutual reactions between the different syntheses of the unconscious following a given use.
It is first of all the synthesis of recording that in effect situates, on its surface of inscription within the conditions of Oedipus, a definable and differentiable ego in relation to parental images serving as co-ordinates (mother, father). There we have a triangulation that implies in its essence a constituent prohibition of incest with the mother, prohibition against taking the father’s place. But a strange sort of reasoning leads one to conclude that, since it is forbidden, that very thing was desired. “
By triangulation, I am stuck in my spot, cannot go to take the fathers place, or move to the mother’s spot; not just a prohibition on incest but on shattering the globalist and specificity of my positioning within the triangle
“In reality, global persons—even the very form of persons—do not exist prior to the prohibitions that weigh on them and constitute them, any more than they exist prior to the triangulation into which they enter: desire receives its first complete objects and is forbidden them at one and the same time.
70
Therefore it is indeed the same Oedipal operation that lays the foundation for the possibility of its own “resolution,” by way of a differentiation of persons in conformity with the prohibition, as well as the possibility for its own failure or stagnation, by falling into the undifferentiated as the reverse side of the differentiation created by the prohibitions (incest by identification with the father, homosexuality by identification with the mother). 70-71
[‘trauma’ and its resolutions?]
The personal material of transgression does not exist prior to prohibition, any more than does the form of persons.”
“...the Oedipal inscription does not force its way into the synthesis of recording without reacting on the synthesis of production, and profoundly changing the connections of this synthesis by introducing new global persons.”
“On the whole, the connections of organ-machines suited to desiring-production give way to a pairing of people under the field of familial reproduction. Partial objects now seem to be taken from people, rather than from the nonpersonal flows that pass from one person to another. The reason is that persons are derived from abstract quantities, instead of from flows.
Instead of a connective appropriation, partial objects become the possessions of a person and, when required, the property of another person.” Scary stuff
71
“It is true that the connections of desiring-production were found to comply with this binary rule; and we have even seen that a third term intervened into this binarity, the body without organs that reinjects producing into the product, extends the connections of machines, and serves as a surface of recording. But here no biunivocal process is in fact produced that would fit production into the mold of representatives; no triangulation appears at this level that would refer the objects of desire to global persons, or desire to a specific subject.
[extension of connections that occurs by the chains and blocks in a sort of sexual/alimentary regime? I believe the extension can occur no other way. Allows new producing/product to connect with the producing/product in the BwO?]
The only subject is desire itself on the body without organs, inasmuch as it machines partial objects and flows, selecting and cutting the one with the other, passing from one body to another, following connections and appropriations that each time destroy the factitious unity of a possessive or proprietary ego (anoedipal sexuality).”
“We do not yet know what forces being about this triangulation that interferes with the recording of desire in order to transform all its productive connections. But we are able at least to follow, abstractly, the manner in which these forces proceed.”
Totalities are only posited in order to create lack, to define a partial object in reference to an absent totality.
This also allows for imposing an exclusive disjunction, for example with the sexes, you are either a man or you are a woman.
72
Oedipus is 3+1
“It is as if the so-called signifying chain, made up of elements themselves that are nonsignifying—of polyvocal writing and detachable fragments—were the object of a special treatment, a crushing operation that extracted a detached object from the chain, a despotic Signifier from whose law the entire chain seems consequently to be suspended, each link triangulated.”
Is this the creation of the 1 in 3+1?
73
“We do not deny that there is an Oedipal sexuality, an Oedipal heterosexuality and homosexuality, an Oedipal castration, as well as complete objects, global images, and specific egos. We deny that they are productions of the unconscious.”
Psychoanalysis converts all of the unconscious to Oedipus, which is “promoted by psychoanalysis first of all by making a global and specific use of the connective syntheses”as outlined above, in these shorter notes, as opposed to the partial and nonspecific use of these syntheses, as outlined much further above, in much longer notes.
74
“In like fashion we are compelled to say that psychoanalysis has its metaphysics—its name is Oedipus. And that a revolution—this time materialist—can proceed only by way of a critique of Oedipus, by denouncing the illegitimate use of the syntheses of the unconscious as found in Oedipal psychoanalysis , so as to rediscover a transcendental unconscious defined by the immanence of its criteria, and a corresponding practice we shall call schizoanalysis.”
[[Anti-Oedipus Chapter 2 Section 3 The Connective Synthesis of Production]] [[Quote]]
“In short, the familial triangle represents the minimum condition under which an “ego” takes on the co-ordinates that differentiate it at one and the same time with regard to generation, sex and vital state.”
Parent:child
Man:woman
Live:dead
Early variants of binary coding and faciality?
75
Kant posits god as the a priori principle of the disjunctive syllogism, so that all things derive from it by a restriction of a larger reality.
“The action characteristic of Oedipal recording is the introduction of an exclusive, restrictive, and negative rise of the disjunctive synthesis.”
“...Schizophrenia teaches us a singular extra-Oedipal lesson, and reveals to us an unknown force of the disjunctive synthesis... A disjunction that remains disjunctive, and that still affirms the disjointed terms, that affirms them throughout their entire distance, without restricting one by the other or excluding the other from the one, is perhaps the greatest paradox.”
Either...or...or... not either/or
“The schizophrenic is not man and woman. He is man or woman, but he belongs precisely to both sides, man on the side of men, woman on the side of women... The Schizophrenic is dead or alive, not both at once; but each of the two as the terminal point of a distance over which he glides.
He is child or parent, not both, but the one at the end of the other, like two ends of a stick in a nondecomposable spaces. This is the meaning of the disjunctions where Beckett records his characters and the events that befall them: everything divides, but into itself. Even the distances are positive, at the same time as the included disjunctions.”
76
The schizo “does not abolish disjunction by identifying the contradictory elements by means of elaboration; instead, he affirms it through a continuous overflight spanning an indivisible distance. He is not simply bisexual, or between the two, or intersexual. 76-77
[sliding across this distance, these lines between the two points at all times?]
He is transsexual. He is trans alivedead, trans parentchild. He does not reduce two contraries to an identity of the same; he affirms their distance as that which relates the two as different. He does not confine himself inside contradictions; on the contrary he opens out and, like a spore case inflated with spores, releases them as so many singularities that he had improperly shut off, some of which he intended to exclude, while retaining others, but which now become points-signs, all affirmed by their new distance.
The disjunction, being now inclusive, does not closet itself inside its own terms. On the contrary it is nonrestrictive... an event that will liberate a space where [names] no longer designate persons, but singularities flocking from all sides, evanescent agents of production. This is free disjunction; the differential positions persist in their entirety, they even take on a free quality, but they are all inhabited by a faceless and transpositional subject.
Schreber is a man and woman, parent and child, dead and alive: which is to say, he is situated wherever there is a singularity, in all the series and in all the branches marked by a singular point, because he is himself this distance that transforms him into a woman, and at its terminal point he is already the mother of a new humanity and can finally die.”
Lots of typing
“I am God I am not God, I am God I am man: it is not a matter of a synthesis that would go beyond the negative disjunctions of the derived reality, in an original reality of a Man-God, but rather of an inclusive disjunction that carries out the synthesis itself in drifting from one term to another and following the distance between terms. Nothing is primal.”
Nijinsky’s I am god I am not god I am husband and wife I love my wife I love my husband
————-
277634
77
“What counts is not parental designations, nor racial or divine designations, but merely the use made of them. No problem of meaning, but only of usage.
77-78
Nothing original or derived but a genealogical drift. It would seem that the schizo liberates a raw genealogical material, nonrestrictive, where he can situate himself, record himself, and take his bearings in all the branches at once, on all sides.... through graduated relationships he performs absolute overflights spanning indivisible distances. The genealogist-madman lays out a disjunctive network on the body without organs.
And God, who designates none other than the energy of recording, can be the greatest enemy in the paranoiac inscription, but also the greatest friend in the miraculating inscription... Everything is on the body without organs, both what is inscribed and the energy that inscribes it. On the unengendered body, the nondecomposable distances are necessarily surveyed, while the disjointed terms are all affirmed... It was in this fashion that Nijinsky kept in his diary: yes, I was my father and I was my son.”
Exclusive disjunctions create simultaneously a different whole and and the undifferentiated black night we now risk falling into
Psychology and social control in general right there 78
“With the same movement the Oedipus complex inserts desire into triangulation and prohibits desire from satisfying itself with the terms of the triangulation.”
“And everybody knows what psychoanalytic means by resolving Oedipus: internalizing it so as to better rediscover it on the outside, in social authority, where it will be made to proliferate and be passed onto children.” 79
The double bind of Bateson as the whole of oedipus; both answers are wrong, both answers are Oedipus. 80
The relationship between psychoanalysis and the police (calling the police, and calling the asylum; calling they’re, state-as-police) as an index of its relationship to the movement towards social repression
Schizoanalysis aims to de-Oedipalize the unconscious to get at the real problems 81
[[Anti-Oedipus Chapter 2 Section 4 The Disjunctive Synthesis of Recording]] [[Quote]]
“The BwO is in fact an egg, crisscrossed with axes, banded with zones, localized with areas and fields, measured off by gradients, traversed by potentials, marked by thresholds.”
There is a “distribution of field-gradient-threshold” on the BwO
“It is a matter of relationships of intensities through which the subject passes on the body without organs, a process that engages him in becomings, rises and falls, migrations and displacements.”
“The intensive emotion, the affect, is both the common root and principle of differentiation of deliriums and hallucinations” 84
The schizo is constantly identifying through the ‘I feel,’ “countries, races, divine appellations, geographical and historical designations, and even miscellaneous news items.... But if everything commingles in this fashion it does so in intensity, with no confusion of spaces and forms, since these have indeed been undone on behalf of a new order: the intense and intensive order.”
“What is the nature of this order? The first things to be distributed on the body without organs are races, cultures, and their gods... The full body does not represent anything at all. On the contrary the races and the cultures designate regions on this body—that is, zones of intensity, fields of potentials. Phenomena of individualizations and sexualization are produced within these fields. We pass from one field to another by crossing thresholds: we never stop migrating, we become other individuals as well as other sexes, and departing becomes as easy as being born or dying.” 85
Machines and flows and connection
Give birth to
Points signs, writings, chains, a madman’s mapping tools, and disjunctions
Give birth to
Fields, intensities, thresholds, gradients, identification with history and conjunctions
Three separate levels of the model, through which transversal communications constantly take place?
“The crossing of a threshold entails ravages elsewhere—how could it be otherwise? The body without organs closed round the deserted places... individuations are produced only within fields of forces expressly defined by Intensive vibrations, and that animate cruel personages only in so far as they are induced organs, parts of desiring-machines...” 85
“The unpleasant thing, the one that nags at my modesty, is that at root every name in history is I.” Quoted from a Nietzsche letter
“It was never a question of identifying oneself with personages... It is a question of something quite different: identifying races, cultures, and gods with fields of intensity on the body without organs, identifying personages with states that fill these fields, and with effects that fulgurate within and traverse these fields.
[not what does the naming mean, what does it do?]
Whence the role of names, with a magic all their own: there is no ego that identifies with races, peoples, and persons in the theater of representation, but proper names that identify races, peoples and persons with regions, thresholds or effects in a production of intensive quantities.”
Names aren’t representative, but refer to the class of effects; theory of proper names
Einstein, Newton, Lou Gehrig, stalin, Deleuze, etc.,
“Schizophrenics... have been quick to slip into the expected clinical mold. Dark world, growing desert: a solitary machine hums on the beach, an atomic factory installed in the desert.
86
But if the body without organs is indeed this desert, it is as an indivisible, nondecomposable distance over which the schizo glides in order to be everywhere something real is produced, everywhere something real has been and will be produced. It is true that reality has ceased to be a principle. According to such a principle, the reality of the real was posed as a divisible abstract quantity, whereas the real was divided up into qualified unities, into distinctive qualitative forms.
But now the real is a product that envelops the distances within intensive quantities. The indivisible is enveloped, and signifies that what it envelops does not divide without changing its nature or form. The schizo has no principles: he is something only be being something else.”
“Christopher Columbus calms his mutinous crew and becomes admiral again only by simulating a (false) admiral who is simulating a whore who is dancing.”
“But simulation must be understood in the same way as we spoke of identification. It expresses those nondecomposable distances always enveloped in the intensities that divide into one another while changing their form. If identification is nomination, a designation, then simulation is the writing corresponding to it, a writing that is strangely polyvocal, flush with the real.
[intensities are constantly shifting, dividing into each other, enveloped in new ways, mixing, alimentary, sexual ]
It carries the real beyond its principle to the point where it is effectively produced by the desiring-machine. The point where the copy ceases to be a copy in order to become the real and its artifice. To seize an intensive real as produced in the coextension of nature and history...” 87
Richemont doesn’t identify with Louis, he lays claim to the premium due the person who traverse all the singularities of the series converging around the machine for kidnapping Louis. There is no ego at the center, any more than there are persons distributed on the periphery.
Nothing but a series of singularizaties in the disjunctive network, or intensive states in the conjunctive tissue and a transpositional subject moving full circle, passing through all the states... collecting everywhere the fraudulent premium of his avatars.”
“The conjunctive synthesis can be expressed “So I am the king! So the kingdom belongs to me!” But this me is merely the residual subject that sweeps the vehicle and concludes a self from its oscillations in the circle.” 88
Deleuze’s love of the egg as the BwO
Stimulus inhibition thing p91
“...believing is an operation of a conscious or preconscious nature, an extrinsic perception rather than an operation of the unconscious upon itself.” 92
“Therefore we formulate the following rule, which we feel to be applicable in all cases: the father and the mother exist only as fragments, and are never organized into a figure or structure able both to represent the unconscious, and to represent in it the various agents of the collectivity; rather; they always shatter into fragments that come into contact with these agents, meet them face to face, square off with them, or settle the differences with them as in hand-to-hand combat.”
New paragraph
The father, the mother, and the self are at grips with, and directly coupled to, the elements [agents] of the political and historical situation—the soldier, the cop, the occupier, the collaborator, the radical, the resister, the boss, the bosses wife—who constantly break all triangulations, and who prevent the entire situation from falling back on the familial complex and becoming internalized to it.
In a word, the family is never a microcosm in the sense of an autonomous figure, even when inscribed in a larger circle that it is said to mediate and express. The family is by nature eccentric, decentered.”
This is the gist of it but it extends quite poetically over the whole page
Mommy daddy are not global objects, but a fragmented, never totalized multiplicity of partial objects cutting into and producing flows - me
97
“What is invested by the libido throughout the disjointed elements of oedipus... are these extra familial, sub familial gabs and breaks (coupures in French), these forms of social production in conjunction with desiring-production. Schizoanalysis therefore does not hide the fact that it is a political and social psychoanalysis, a militant analysis... because it proposes to demonstrate the existence of an unconscious libidinal investment of sociohistorical production, distinct from the conscious productions existing alongside it.”
What happens when a social and/or or or a political event cuts across families, introducing into them new cuts, breaks, connections, partial objects...?
Destroy the expressive, repressive, artificial unconscious, “attain the immediate productive unconscious.”
98
“Go back through the course of the ages, you will never find a child caught in a familial order that is autonomous, expressive, or signifying. Even the nursing child, in his games as in his feedings, his chains, and his meditations, is already caught up in an immediate desiring-production where the parents play the role of partial objects, witnesses, reporters, and agents, in a process that outflanks them on all sides, and places desire in an immediate relationship with a historical and social reality.”
100
“So it was your father, so it was your mother.”
“Whence the magical formula that characterizes biunivocalization—the flattening of the polyvocal real in favor of a symbolic relationship between two articulations: so that is what this meant.”
That thinking only exists in the conscious, not the unconscious
“Only in appearance is Oedipus a beginning, either as a historical or prehistorical origin, or as a structural foundation. In reality it is a completely ideological beginning, for the sake of ideology. Oedipus is always and solely an aggregate of destination fabricated to meet the requirements of an aggregate of departure constituted by a social formation. It can be applied to everything...”
“Thus it must be said of oedipus as well of desiring-production; it is at the end, not at the beginning. But not at all in the same fashion.”
d-p is at the limit of the deterr’d socius, the BwO, the desert at the gates of the city.
Oedipus is a displaced limit, an internalized limit, it is the end that causes a society of neurotics, an autistic end to the schizophrenic.
(Is this right?) maybe we’ll know later
101
Oedipus relies on subjugated groups for libidinal investments and its own reproduction; there is these a segregative use of the conjunctive synthesis of the unconscious; a feeling of being ‘one of us’ this doesn’t line up with class divisions, but is an incomparable weapon in the service of a dominating class.
A feeling of inclusion of us, and exclusion/segregation of the other from outside, the threat. 103-104
“Hence the goal of schizoanalysis: to analyze the specific nature of the libidinal investments in the economic and political spheres, and thereby to show how, in the subject who desires, desire can be made to desire its own repression—whereby the role of the death instinct in the circuit connecting desire to the social sphere. All this happens, not in ideology, but well beneath it. An unconscious investment of a fascist or reactionary type can exist alongside a conscious revolutionary investment.
Inversely, it can happen—rarely—that a revolutionary investment in the level of desire coexists with a reactionary investment conforming to a conspicuous interest. In any case conscious and unconscious investments are not of the same type, even when they coincide or are superimposed on each other.
We define the reactionary unconscious investment as the investment that conforms to the interest of the dominant class, but operates on its own account, according to the terms of desire, through the segregative use of the conjunctive syntheses from which Oedipus is derived: I am of the superior race.
The revolutionary unconscious investment is such that desire, still in its own mode, cuts across the interest of the dominated, exploited classes, and causes flows to move that are capable of breaking apart both the segregations and their Oedipal applications—flows capable of hallucinating history, of reanimating the races in delirium, or setting continents ablaze. No, I am not of your kind, i am the outsider and the deterritorialized, “I am of a race inferior for all eternity... I am a beast, a Negro.””
“The nomadic and polyvocal use of the conjunctive synthesis is in opposition to the segregative and biunivocal use.”
105
[[Anti-Oedipus Chapter 2 Section 5 The Conjunctive Synthesis of Consumption-Consummation]] [[Quote]]
“God dead or not dead, the father dead or not dead, it amounts to the same thing, since the same psychic repression (refoulement) and the same social repression (répression) continue unabated, here in the name of God or a living father, there in the name of man or the dead father.”
“Nietzsche says that what is important is not the news that God is dead, but the time this news takes to bear fruit... He means that what takes so long in coming to consciousness is the news that the death of god makes no difference to the unconscious.”106
“The announcement of the father’s death constitutes a last belief, “a belief by virtue of nonbelief” about which Nietzsche says: “This violence always manifests the need for a belief, for a prop, for a structure.” Oedipus-as-structure.”
“But what is this unconscious when reduced to a state or belief [in god or the father or Oedipus or...]? Who injects it with belief? Psychoanalysis can not become a rigorous disciple unless it accepts putting belief in parentheses, which is to say a materialist reduction of Oedipus as an ideological form. It is not a matter of saying that Oedipus is a false belief, but rather that belief is necessarily something false that diverts and suffocates effective production.”
“The question of the father is like that of God: born of an abstraction, it assumes the link to be already broken between man and nature, man and the world, so that man must be produced as man by something exterior to nature and to man. On this point Nietzsche makes a remark completely akin to those of Marx or Engels: “We now laugh when we find ‘Man and World’ placed beside on another, separated by the sublime presumption of the little word ‘and.’””
“Coextensiveness is another matter entirely, the coextension of man and nature; a circular movement by which the unconscious, always remaining subject, produces and reproduces itself.”
107
“The organized body is the object of reproduction by generation [your generation progressing or regressing from one body to another, your father, your fathers father]; it is not its subject. The sole subject of reproduction is the unconscious itself, which holds to the circular form of production... Indeed, in this sense we must say the unconscious has always been an orphan—that is, it has engendered itself in the identity of nature and man, of the world and man.”
108
“The unconscious poses no problem of meaning, solely problems of use. The question posed by desire is not “What does it mean?” But rather “How does it work?” How do these machines, these desiring-machines, work—yours and mine? With what sort of breakdowns as a part of their functioning? How do they pass from one body to another? How are they attached to the body without organs? What occurs when their mode of operation confronts the social machines?
A tractable gear is greased, or on the contrary an infernal machine is made ready. What are the connections, what are the disjunctions, the conjunctions, what use is made of the syntheses? It represents nothing but it produces. It means nothing but it works. Desire makes its entry with the general collapse of the question “What does it mean?”
No one has been able to pose the problem of language except to the extent that linguists and logicians have first eliminated meaning; and the greatest force of language was only discovered once a work was viewed as a machine, producing certain effects, amenable to certain use. Malcolm Lowry says of his work: its anything you want it to be, so long as it works...” 109
“Scientific knowledge as nonbelief is truly the last refuge of belief, and as Nietzsche put it there never was but one psychology, that of the priest.”
“...desire situates and develops its strength, and that wherever it is, it causes flows to move and substances to be intersected (“I am careful not to speak of chemical laws, the word has a moral aftertaste”.)”.
111
“...but the sign of desire is never signifying, it exists in the thousands of productive break-flows that never allow themselves to be signified within the unary strike of castrarion. It is always a point-sign of many dimensions, polyvocity as the basis for a punctual semiology.”
112
“We must set up units of production, plug in desiring-machines. What takes place in this factory, what this process is, it’s spasms and its glories, its labors and its joys, still remain unknown.”
[[Anti-Oedipus Chapter 2 Section 6 A Recapitulation of the Three Syntheses]]
Two problems “the specific relationship between psychic repression and social repression; on the other hand, the particular situation of Oedipus in this social-psychic repression system.”
113
For Freud and the priests; “if it is prohibited, this is because it is desired—there would be no need to prohibit what is not desired. Once again, it is this confidence in the law, the unawareness of the ruses and the procedures of the law, that leaves us wondering.”
“...the main thing for the primitive or the child is to form and put into motion their desiring-machines, to make flows circulate and to perform breaks in these flows.”
114
“What really takes place is that the law prohibits something that is perfectly fictitious on the order of desire or of the “instincts,” so as to persuade its subjects that they had the intention corresponding to this fiction... In short, we are not witness here to a system of two terms where we could conclude from the formal prohibition what is prohibited. Instead we have before us a system of three terms, where this conclusion becomes completely illegitimate.
Distinctions must be made: the repressing representation which performs the repression; the repressed representative, on which the repression actually comes to bear; the displaced represented, which gives a falsified apparent image that is meant to trap desire.”
A representation of my desire(the representation; you want incest?) comes to repressive my desire (the representative, which is...?) and the represented, Oedipus
“Such is the nature of Oedipus—the sham image. Repression does not operate through Oedipus, nor is it directed at Oedipus. It is not a question of the return of the repressed. Oedipus is a factitious product of psychic repression.
It is only the represented, insofar as it is induced by repression. Repression cannot act without displacing desire, without giving rise to a consequent desire, all ready, all warm for punishment and without putting this desire in the place of the antecedent desire on which repression comes to bear in principle or in reality (“Ahh, so that’s what it was!”).”
Antecedent consequent causality is reversed; repression gives rise to the consequent, which births the antecedent?
———————
277634
“Oedipus is not a state of desire, and drives, it is an idea, nothing but an idea that repression inspires in us concerning desire; not even a compromise, but an idea in the service of repression, it’s propaganda, or its propagation.”
“...the unconscious contains nothing ideal, nothing in the least bit conceptual; and hence nothing in the least personal, since personality, like the ego; belongs to the conscious or mental-subjective self.
So the first analyses are, or should be, so impersonal that the so-called human relations are not involved. The first relationship is neither personal nor biological.” D.H. Lawrence
115
“Oedipal desires are not at all repressed, nor do they have any reason to be. They are nevertheless in an intimate relationship with psychic repression, but in a different manner. Oedipal desires are the bait, the disfigured image by means of which repression catches desire in the trap.
If desire is repressed, this is not because it is desire for the mother and for the death of the father; on the contrary, desire becomes that only because it is repressed, it takes on that mask only under the reign of the repression that models the mask for it and plasters it on its face...
If desire is repressed, it is because every position of desire, no matter how small, is capable of calling into question the established order of society. Not that desire is asocial, on the contrary... no society can tolerate a position of real desire without its structures of exploitation, servitude, and hierarchy being compromised.”
“If society is identical with its structures—an amusing hypothesis—then yes, desire threatens its very being. It is therefore of vital importance for society to repress desire, and even to find something more Efficient than repression, so that repression, hierarchy, exploitation, and servitude are themselves desired.”
“Sexuality and love do not live in the bedroom of Oedipus, they dream instead of wide-open spaces qnd cause strange flows to circulate that do not let themselves be stocked within an established order.”
“From the beginning of this study we have maintained both that social production and desiring-production are one and the same, and that they have differing régimes, with the result that a social form of production exercises an essential repression on desiring-production and also that desiring-production—a “real” desire—is potentially capable of demolishing the social form... for even in their contrary uses, let us make no mistake about it, the same syntheses are at issue.” 116
It is clear that through Oedipus, psychoanalysis “expects a cultural justification for psychic repression-a justification that makes psychic repression move into the foreground and no longer considers the problem of social repression as anything more than secondary from the point of view of the unconscious.”
In a Freudian article, “psychic repression is considered in terms of social repression, which gives rise to a displacement...”
117
“The strength of Reich consists in having shown how psychic repression depended on social repression. Which in no way implies a confusion of the two concepts, since social repression needs psychic repression precisely in order to form docile subjects and to ensure the reproduction of the social formation, including its repressive structures.”
“...It is civilization that must be understood in terms of a social repression inherent to a given form of social production. Social repression bears on desire—and not solely on needs or interests—only by means of sexual repression.”
118
“Psychic repression distinguishes itself from social repression by the unconscious nature of the operation and by its result... But a real independence cannot be concluded from this. Psychic repression is such that social repression becomes desired; it induces a consequent desire; a faked image of its object, on which it bestows the image of independence. Strictly speaking, psychic repression is a means in the service of social repression.
[psychic repression crushes desire, you now desire the repressive images of society? No one is borne wanting a mansion]
What it bears on is also the object of social repression: desiring-production. But it in fact implies an original double operation: the repressive social formation delegates its power to an agent of psychic repression, and correlatively the repressed desire is as though masked by the faked displaced image to which the repression gives rise. Psychic repression is delegated by the social formation, while the desiring-formation is disfigured, displaced by psychic repression. “
Repression, a repressed desire, and a faked displaced image of the repressed desire to which the repression gave rise
Oedipus is a result of this
“It is in one and the same movement that the repressive social production is replaced by the repressing family; and that the latter offers a displaced image of desiring-production that represents the repressed as incestuous familial drives.” 119
The family “belongs essentially to the recording of social production, as a system of reproduction of the producers. [recording to reproduce desiring machines/here the unconscious] And doubtless, at the other pole, the recording of desiring-production on the body without organs is brought about through a genealogical network that is not familial: parents only intervene here as partial objects, flows, signs, and agents of a process that outflanks them on all sides. At best, the child innocently “relates” to his parents some part of the astonishing productive experience he is undergoing with desire; but this experience is not related to them as such.”
Recording that generates the family on the body of the socius vs recording of desiring production on the child’s BwO
If the family is able to repress desire in the child, “it is because the body without organs on which this recording is accomplished already exercises on its own account, as we have seen, a primal repression of desiring-production.”
120
The family superimposes a secondary repression
121
Psychoanalysis didn’t invent oedipus or the social repression under question; they legislated it, made it be found everywhere, gave it a proper name
Power formation of psychology as deepening and legitimizing the repressive forces of a society, and making people in that society come to desire that repression itself
Trauma? BPD? The internet Schizo? Daddy issues? Either way (or way or way or way), this is brilliant writing
121-122
[[Anti-Oedipus Chapter 2 Section 7 Social Repression and Psychic Repression]] [[Quote]]
Freud
Neurosis: ego represses id
Psychosis: Id represses ego
Capgras and carrete
“In neurosis the object function of reality is preserved, but on the condition that the causal complex be repressed; in psychosis the complex invades consciousness and becomes its object, at the price of a “repression” that now bears on reality itself or the function of the real.”
For Freud, “madness is fundamentally linked to a loss of reality.”
122-3
In psychosis, investments of reality bear not on the family, but somewhere else, the social , historical, and cultural.
123
“It is the recording of desire on the increate body without organs, and the familial recording on the socius, that are in opposition throughout the two groups. The innate science of psychosis and the neurotic experimental sciences. The schizoid excentric circle and the neurosis triangle.”
“...it must be borne in mind that the family relentlessly operates on desiring-production.”124
Repression by the family expanded in these pages
Resonate, resonance, vibrations, resound first mention
“The family is at the same time an anus that retains, a voice that resounds, and a mouth that consumes: its very own three syntheses, since it is a matter of connecting desire to the ready-made objects of social production.” 125
125
“Where does the resonance of the triangle reach its limit?”
Identification of the two women with one another in the story: not saying they are the same woman, but a matter of the intense regions on the BwO, and identification of names with these regions, heading towards intenser ones still
126
“We maintain that the cause of the disorder, neurosis or psychosis, is always in desiring-production, in its relation to social production, in their different or conflicting régimes, and the modes of investment that desiring-production performs in the system of social production.
128-129
The actual factor is desiring-production...”
Discussion of virtual vs actual
129
“Desiring-production has solely an actual existence for progressions and regressions are merely the effectuation of a virtuality that is always fulfilled as perfectly as it can be by virtue of the states of desire.” 130
[[Anti-Oedipus Chapter 2 Section 8 Neurosis and Psychosis]] [[Quote]]
“That is what style is, or rather the absence of style—asyntactic, agrammatical: that moment when language is no longer defined by what it says, even less by what it makes a signifying thing, but by what it causes to move, to flow, and to explode—desire. For literature is like schizophrenia: a process and not a goal, a production and not an expression.”
133
“The relationships of neurosis, psychosis, and also perversion depend on the situation of each one with regard to the process. And on the manner in which each one represents a mode of interruption of the process, a residual bit of ground to which one still clings do as not to be carried off by the deterr’d flows of desire.”
136
[[Anti-Oedipus Chapter 2 Section 9 The Process]] [[quote]]
“Desiring-production also exists from the beginning: there is desiring-production from the moment there is social production and reproduction. But in a very precise sense it is true that precapitalist social machines are inherent in desire. To code desire—and the fear, the anguish of decoded flows is the business of the socius.”
139
“As we shall see, capitalism is the only social machine that is constructed on the basis of decoded flows, substituting for intrinsic flows an axiomatic of abstract quantities. Capitalism therefore liberates the flows of desire, but under the social conditions that define its limit and the possibility of its own dissolution, so that it is constantly opposing with all its exasperated strength the movement that drives it towards this limit.”
139-140
“The earth is the primitive, savage unity of desire and production.”
140
The earth “is the surface on which the whole process of production is inscribed, on which the forces and means of labor are recorded, and the agents and products distributed, it appears here as the quasi cause of and the object of desire (it is on the earth that desire becomes bound to its own repression.”
Roads and houses are inscriptions; my constant use of them is production on the basis of attaching and breaks in this signifying chain. I am produced as a residual alongside them
Social machines are made up of men and their technical machines, “hence the social machine fashions a memory without which there would be no synergy of man and his (technical) machines.... [technical machines] do not in fact contain the conditions for the reproduction of their process; they point to the social machines that condition and organize them but also limit and inhibit their development.
It will be necessary to await capitalism to find semiautonomous organization of technical production that tends to appropriate memory and reproduction, and thereby modifies the forms of the exploitation of man; but as a matter of fact, this organization presupposes a dismantling of the great social machines that preceded it.”
Splitting of the technical and social machines a la stiegler
Machines can be both technical and social; clock as technical machine and as social machines for ordering society
“The social machine is literally a machine, irrespective of any metaphor, inasmuch as it exhibits an immobile motor and undertakes a variety of interventions: flows are set apart, elements are detached from a chain, and portions of the tasks to be performed are distributed. Coding the flows implies all these operations.”
141
“This is the social machine’s supreme task, inasmuch as the apportioning of production corresponds to extractions from the chain, resulting in a residual share for each member, in a global system of desire and destiny that organized the productions of production, the productions of recording, and the productions of consumption.
Flows of women and children, flows of herds and seed, sperm flows, flows of shit, menstrual flows: nothing must escape coding. The primitive territorial machine, with its immobile motor, the earth, is already a social machine, a megamachine, that coded the flows of production, the flows of the means of production, of producers and consumers: the full body of the goddess Earth gathers to itself the cultivatable species, the agricultural implements, and the human organs.”
“...society is not first of all a milieu for exchange where the essential would be to circulate or to cause to circulate, but rather a socius of inscription where the essential thing is to mark and be marked. There is circulation only if inscription requires or permits it.
The method of the primitive territorial machine is in this sense the collective investment of organs; for flows are coded only to the extent that the organs capable respectively of producing and breaking them are themselves encircled, instituted as partial objects, distributed on the socius and attached to it. A mask is such an institution of organs.”
Only what comes to and out the organs is able to be coded by the primitive territorial machine
“The mythologies sing of organs-partial objects and their relations with a full body that repels or attracts them: vaginas riveted on the woman’s body, an immense penis shared by the men, an independent anus that assigns itself a body without anus... the unities in question are never found in persons, but rather in series which determine the connections, disjunctions, and conjunctions of organs.
That is why fantasies are group fantasies. It is the collective investment of the organs that plugs desire into the socius and assembles social production and desiring-production into a whole earth.” People aren't plugging desire into the socius; collective organs are. 'People', as we consider them, should be considered as vectors for, or carries of partial-objects/organs
142
“Our modern societies have instead undertaken a privatization of the organs, which corresponds to the decoding of flows that have become abstract... The “logical” order is as follows: the substitution of abstract quantity [money] for the coded flows; the resulting collective disinvestment of the organs, on the model of the anus; the constitution of private persons as individual centers of organs and functions derived from the abstract quantity.” 142-3
“The libido is indeed the essence of desire; but when the libido becomes abstract quantity, the elevated and disinvested anus produces the global persons and the specific egos that serve this same quantity as units of measure.” When the essence of desire is no longer the connective force of libido, but instead money...
143
“The essence of the recording, inscribing socius, insofar as it lays claim to the productive forces and distributed agents of production, resides in these operations: tattooing, excising, incising, carving, scarifying, mutiliating, encircling and initiating.”
“For it is a founding act—that the organs be hewn into the socius, and that the flows [of the organs] run over its surface—through which man ceases to be a biological organism and becomes a full body; an earth, to which his organs become attached, where they are attracted, repelled, miraculated, following they requirements of a socius.” Man as not having organs in himself, they are, in a sense, given to him.
144
“...cruelty is the movement of culture that is realized in bodies and inscribed on them, belaboring them. That is what cruelty means. This culture is not the movement of ideology: in the contrary, it forcibly injects production into desire, and conversely, it forcibly inserts desire into social production and reproduction.
For even death, punishment, and torture are desired and are instances of production... It makes men or their organs into the parts and wheels of a social machine. The sign is a position of desire; but the first signs are the territorial signs that plant their flags in bodies."
And if one wants to call this inscription in naked flesh "writing," and that it is this cruel system of inscribed signs that renders man capable of language, and gives him a memory of the spoken word. [paraphrased]
[[Anti-Oedipus Chapter 3 Section 1 The Inscribing Socius]] [[Quote]]
“The primitive machine subdivide the people, but does so on an indivisible earth where the connective, disjunctive, and conjunctive relations of each section are inscribed along with the other relations (thus, for example, the coexistence or complementarity of the section chief and the guardian of the earth.)
When the division extends to the earth itself, by virtue of an administration that is landed and residential,” we move on to the despot
145
“The functioning of such a [territorial] machines consists in the following: the declension of alliance and filiation—declining the lineages on the body of the earth, before there is a state.”
“It is not simply possible to deduce alliance from filliation, the alliances from the filiative lines. It would be erroneous to ascribe to Alliance no more than an individuating power over the persons of a lineage; it produces instead a generalized distinguishability.”
“The continuity of the [kinship or society?] structure vertically through time is adequately expressed through the agnatic transmission of a patrilineage name. But the continuity of the structure laterally is not so expressed. Instead, it is maintained by a continuing chain of debt relationships of an economic kind... it is the existence of these outstanding debts which assert the continuance of the affinal relationship.”
Debt relationship of alliance
Reproductive relationship of filiation?
"Filiation is administrative and hierarchical, but alliance is political and economic, and expresses power insofar as it is not fused with the hierarchy and cannot be deduced from it, and the economy insofar as it is not identical with administration.
Filiation and alliance are like the two forms of a primitive capital: fixed capital or filiative stock, and circulating capital or mobile blocks of debt.”
146
The question is the same for the whole project of coding the flows. “How does one ensure reciprocal adaptation, the respective entrance of a signifying chain and flows of production?”
“It has to do with the nature of nomadic space, where the full body of the socius is as if adjacent to production; it has not yet brought production under its sway, the space of the encampment remains adjacent to that of the forest; it is constantly reproduced in the process of production, but has not yet appropriated this process. The apparent objective movement of inscription has not suppressed the real movement of nomadism.”
The recording surface of the disjunctive synthesis does not yet control production, or force the first synthesis to act in a certain manner relative to the wishes of the full body of the socius?
“...among the guayaki, the connection between hunters and living animals is succeeded in the encampment by a disjunction between the dead animals and the hunters... the hunter cannot consume his own kill."
“The problem of coding can no longer be resolved by the simultaneity of a displacement from the standpoint of the flows, and an accelerated reproduction from the standpoint of the chain
148
The flows must be the object of deductions that constitute a minimum of stock, and the signifying chain must be the object of detachments that constitute a minimum of mediations. A flow is coded insofar as detachments from the chain and deductions from the flows are effected in correspondence, united in a mutual embrace.”
The flows and chains must correspond to a certain form of mediation, of the requirements for social reproduction
“...there does not exist a pure nomad who can be afforded the satisfaction of drifting with the flows and singing direct filiation, but always a socius waiting to bear down, already deducting and detaching.” Flows vs chains at the end of this quote
“The flow deductions constitute a filiative stock in the signifying chain; but inversely, the detachments from the chain constitute mobile debts of alliance that guide and direct the flows. On the blanket that serves as familial stock, affinal stones or cowries are made to circulate.
[what is deducted from the flow makes a stock for the chain, fixed capital; what is detached from the chain, a block of alliance, serves as mobile debt]
There is a sort of vast cycle of flows of production and chains of inscription, and a lesser cycle, between stocks of filiation that connect or encased the flows, and the blocks of alliance that cause the chains to flow. Descent is at the same time flow of production and chain of inscription, stock of filiation, and fluxion of alliance.
Everything takes place as though the stock constituted a surface energy of inscription or recording, the potential energy of the apparent movement; but debt is the actual direction of this movement, a kinetic energy that is determined by the respective paths of the gifts and counter gifts on the surface. Among the Kula, the circulation of necklaces and bracelets comes to a standstill in certain places, on certain occasions, so that a stock may be re-formed.
There are no productive connections without disjunctions of filiation that appropriate them, but there are no disjunctions of filiation that do not reconstitute lateral connections across the alliances and pairings of persons. [to connect we must first disjunct, to disjunct we must have a connection in mind to form with the disjuncted blocks]
Not only the flows and the chains, but the fixed stocks and the mobile debts—insofar as they in turn imply relations between chains and flows in both directions—are in a state of perpetual relativity: their elements vary—women, consumer goods, ritual objects, rights, prestige, status.”
149
“The mainspring of such an economy is a veritable surplus value of the code: each detachment from the chain produces, on one side or the other in the flows of production, phenomena of excess and deficiency, [no goal of, no movement toward, equilibrium] phenomena of lack and accumulation, which will be compensated for by nonexchangeable elements of the acquired-prestige or distributed-consumption type. (The chief converts the perishable wealth into imperishable prestige through the medium of spectacular feasting. The ultimate consumers are in this way the original producers.)
Surplus value of the code is the primitive form of surplus value, inasmuch as it corresponds to Mauss’s celebrated formula: the spirit of the thing given, or the force of circumstance that requires that gifts be reciprocated with interest, being territorial signs of desire and power (puissance), and principles of abundance and fructification of wealth... the disequilibrium is functional and fundamental.”
“In short, the detachments from the signifying chain, in accordance with the relations of alliance, engender surplus values of code at the level of flows, whence are derived differences in status between the filiative lines (for example, the superior or inferior ranks of the givers and receivers of wives.) the surplus value of code carries out the diverse operations of the primitive territorial machine: detaching segments from the chain, organizing selections from the flows, and allocating the portions due each person.”
detachments from the signifying chain, an action at level 2 of the model, engenders a surplus value of the code at the level of flows, level 1 of the model. Perhaps, in the action of causing a break in the chain, one end of the chain comes to have a surplus, one end now has a deficiency; by effecting both a deficiency and a surplus, we have created a surplus value of the code.
by breaking a piece of the chain, we have an asymmetry in the chain, an uneven chain, and somehow this comes to be reflected in the flow as a surplus value of code; perhaps now a part of the flow is able to be seen as an excess, and another part is seen as lacking; the flow, rather than solely having the characteristic of the flow, takes on a dual characteristic of surplus and lack relative to the part of the chain that has been broken off.
150
“The presence of history in every social machine plainly appears... in the disharmonies that bear the unmistakable stamp of time elapsed... the correct interpretation would be, above all, actual and functional: it is in order to function that a social machine must not function well.”
“Not because these [social] rules are ideal but rather because they determine critical points where the apparatus starts up again—provided it is blocked, and where it necessarily places itself in relation to the group. [example of a critical point; debt and excess]
Hence it becomes apparent that the social machine is identical with the desiring-machine, the social machines limit is not its attritions, but rather its misfirings. It can operate only by fits and starts; by grinding and breaking down, in spasms of minor explosions.” 151
“This machine is segmentary because through its double apparatus of tribe and lineage, it cuts up segments of varying lengths: genealogical filiative units of major, minor and minimal lineages, with their hierarchy, their respective chiefs, their elders who guard the stocks and organize marriages; territorial units of primary, secondary, and tertiary sections also having their dominant roles and their alliances.
“The two systems intersect, each segment being associated with the flows and the chains, with the stocked flows and the passing flows, with selections from the flows and detachments from the chains (certain production projects are executed in the framework of the tribal system, others in the framework of the lineage system). The variability and relativity of the segments are responsible for all sorts of penetrations between the inalienable elements of filiation and the mobile elements of alliance. [segments as formed by a series of selections from the flows and detachments from the chains.]
This is explained by the fact that the length of each segment—or even its existence as such—is determined only by its opposition to other segments in a series of interrelated stages. The segmentary machine mixed rivalries, conflicts, and ruptures throughout the variations of filiation and the fluctuations of alliance. [rivalries, conflicts and ruptures as determinant of the length of the segments]
The whole system evolves between two poles: that of fusion through opposition to other groups [detachments from the chains fusing together], and that of scission through the constant formation of new lineages aspiring to independence, with capitalization of alliances and filliations. From one pole to the other, all the misfirings and failures of a system that is constantly reborn of its own disharmonies.”
“The segmentary territorial machine makes use of scission to exorcise fusion...”
152
The idea of the axiomatic as a replacement for codes; is that to say it decoded all, replacing all codes with the general equivalent of money, which is also a harsh overcoding? I think so
[[Producing]] produces the thisness of the production; the thisness can be fragmented to produced another production; but when interrupted/interpreted by another [[machine]], another [[flow]], sliced up by another [[schizo]], it is [[fragment]]ed in a way all its own; the thisness as not being in the object but the [[process]].
[[AO p7-1]]
“What a mistake to have ever said the [[id]]. Everywhere it [id=it] is [[machine]]s—real ones, not figurative ones: machines driving other machines, machines being driven by other machines, with all the necessary [[coupling]]s and [[connection]]s.”
Hence we are all a [[handyman]]: each with his little [[machine]]s. 1
[[AO p1]]
“...the forms of [[social]] production, like those of [[desiring-production]], involve an unengendered nonproductive attitude, an element of [[antiproduction]] coupled with the [[process]], a full body that functions as a [[socius]]. This socius may be the body of the earth, that of the tyrant, or [[capital]].”
Antiproduction as preventing innovation, evolution? Rather as preventing a new [[process of production]]
[[AO p9-2]]
“...it [the [[socius]]] does not restrict itself merely to opposing productive forces in and of themselves. It falls back on all production, constituting a [[surface]] over which the forces and agents of production are distributed, thereby appropriating for itself all surplus production and arrogating to itself both the whole and the parts of the process, which now seem to emanate from it as a [[quasi-cause]]. Forces and agents come to represent a miraculous form of power: they appear to be [[miraculated]] by it. In a word, the socius as a full body forms a surface where all production is recorded, whereupon the entire process appears to emanate from this [[recording surface]].”
[[desiring-production]] appears to arise from the above mentioned full body, rather than from [[desiring-machine]]s
[[AO p10-1]]
“[[capital]] is indeed the [[body without organs]] of the capitalist, or rather of the capitalist being.”
“It produces [[surplus value]], just as the body without organs [[reproduce]]s itself, puts forth shoots, and branches out to the farthest corners of the universe.” [[rhizome]]
“Everything seems to be produced by capital as a [[quasi-cause]].”
Capital is an effect not a cause, we see it as a [[miraculating]] cause
“What is specifically capitalist here is the role of [[money]] and the use of [[capital]] as a full body to constitute the recording or [[inscribing surface]].
But some kind of full body, that of the earth or the despotic a [[recording surface]], an apparent objective movement, a fetishistic, perverted, bewitched world are characteristic of all types of society as constant of social reproduction.”
A full body that takes over and miraculates as a constant of social reproduction? As being necessary for a [[socius]]. Theory of universal history and its birth?
[[AO p10-2]]
“The [[body without organs]] now falls back on [[desiring-production]], attracts it, and appropriates it for its own. The [[organ-machine]]s now cling to the [[body without organs]] as though it were a fencers padded jacket... An [[attraction machine]] now takes the place, or may take the place, of a [[repulsion machine]]: a [[miraculating machine]] succeeding the [[paranoiac machine]]. But what is meant here by “succeeding”?”
“The two coexist... The body without organs, the unproductive, the unconsumable, serves as a [[surface]] for the recording of the entire [[process of production]] of [[desire]], so that the [[desiring-machine]]s seem to emanate from it in the apparent objective movement that established a relationship between the [[machine]]s and the body without organs.”
[[AO p10/11-1]]
“Doubtless the former [[paranoiac machine]] continues to exist... But the essential thing is the establishment of an enchanted recording or [[inscribing surface]] that arrogates to itself all the productive forces and all the [[organ]]s of production, and that acts as a [[quasi cause]] by communicating the apparent movement (the fetish) to them.” 11-12
“Production is not recorded in the same way it is produced...”
[[AO p11-1]]
“Or rather, it is not reproduced within the apparent objective movement in the same way in which it is produced within the process of constitution. In fact, we have passed imperceptibly into a domain of the [[production of recording]], whose law is not the same as that of the [[production of production]]. The law governing the latter was [[connective synthesis]] or coupling.
But when the productive connections pass from [[machine]]s to the [[body without organs]] (as from [[labor]] to [[capital]]), it would seem that they then come under another law that expresses a distribution in relation to the nonproductive element as a “natural or divine presupposition” (the distinctions of capital).
[move from machine-machine, to [[machine]]-bwo-machine? Or machine-bwo-...? Movement from Connection to distribution; connection of the machines to their distribution over the body without organs]
[[AO p12-1]]
[[machine]]s attach themselves to the [[body without organs]] as so many points of [[disjunction]], between which an entire network of new syntheses is now woven, marking the surface off into co-ordinates, like a [[grid]].
[a network of disjunction woven as a result of the points of contact between BwO and machines? The network is woven as an in between of machines and BwO? This then marks the surface into a grid; does the BwO seek to reject this scoring of the taut, slippery surface?]
The “either...or...or” of the [[schizophrenic]] takes over from the “and then”: no matter what two [[organ]]s are involved, the way in which they are attached to the body without organs must be such that all the [[disjunctive synthesis]] between the two amount to the same on the slippery [[surface]].
[between the machines, between the machine/BwO, both?]
[[AO p12-2]]
Whereas the “either/or” claims to mark decisive choices between immutable terms (the alternative: either this or that), the schizophrenic “either...or...or...” refers to the system of possible [[permutation]]s between differences that always amount to the same as they shift and slide about.”
Rather than just the one production of the [[additive synthesis]], are we now in the presence of [[experimentation]], of splitting out the passive additive syntheses into various [[point]]s, options, choices, combinations?
“This the [[schizophrenic]]... inscribes on his own body the litany of [[disjunction]]s, and creates for himself a world of parries where the most minute of [[permutation]]s is supposed to be a response to the new situation or a reply to the indiscreet questioner.”
12
“The [[disjunctive synthesis]] of recording therefore comes to overlap the [[connective synthesis]] of production.”
[[AO p12-3]]
“The [[process]] as [[process of production]] extends into the method as [[method of inscription]]. Or rather, if what we term [[libido]] is the connective “labor” of [[desiring-production]], it should be said that a part of this [[energy]] is transformed into the energy of disjunctive inscription (Numen). A transformation of energy.”
“But why call this new form of energy divine, why label it [[Numen]], in view of all the ambiguities caused by a problem of the [[unconscious]] that is only apparently religious? The [[body without organs]] is not God, quite the contrary. But the energy that sweeps through it is divine now when it attracts to itself the entire process of production and serves as its [[miraculate]], enchanted surface, inscribing it in each and every one of its [[disjunction]]s.”
“Hence the something that is [[divine]] is the nature of an energy of [[disjunction]]s.”
Divinity in the ability of the body without organs to become the cause of production?
[[AO p12/13-1]]
“[[disjunction]]s are the form that the [[genealogy]] of [[desire]] assumes; but is this genealogy [[Oedipal]], is it recorded in the Oedipal triangulation? Is it not more likely that [[Oedipus]] is a requirement or a consequence of social reproduction, insofar as this latter aims at domesticating a genealogical [[form]] and [[content]] that are in every way intractable? For there is no doubting the fact that the [[schizo]] is constantly subjected to interrogating, constantly cross examined.”
Disjunctions are both a [[history]] and a [[permutation]] of [[series]]
[[AO p13-1]]
“Precisely because this relationship does not constitute a specific pole, the questions put to him are formulated in terms of the existing social [[code]]: your name, your father, your mother? In the course of his exercises in desiring production, [[Beckett]]’s [[Molloy]] is cross-examined by a policeman...” 13-14
“[[desiring-production]] forms a [[binary]]-[[linear]] system. The full body is introduced as a third term in the [[series]], without destroying, however, the essential binary-linear nature of this series: 2,1,2,1....” 14
Energy-machine+[[organ-machine]] (2) organ-machine becomes energy-machine (1) [[energy-machine]]+organ machine (2)
2 as being prior to 1; [[assemblage]] before individual
The series is completely refractory to a [[transcription]] that would transform and mold it into a specifically [[ternary]] and [[triangular]] schema such as [[Oedipus]].”
[[AO p13-2]]
“The full [[body without organs]] is produced as [[antiproduction]], that is to say it intervenes within the [[process]] as such for the sole purpose of rejecting any attempt to impose on it any sort of triangulation implying it was produced by parents. How could this have been produced by parents, when by its very nature it is such eloquent witness of its own self-production, of its own engendering of itself?
[a [[genealogy]] that prevents [[modelization]], and antiproduction that prevents the production of [[model]]s, needs them rewritten every time from the [[disjunction]]s written on its own body without organs]
And it is precisely here on this body, right where it is, that the [[Numen]] is distributed and disjunctions are established, independent of any sort of projection.” [[libido]] is the [[connective]] energy, Numen is distributed and [[disjunction]]s are established
[[AO p13/14-2]]
The [[schizophrenic]] has his own system of co-ordinates for situating himself at his disposal, because, first of all, he has at his disposal his very own recording [[code]], which does not coincide with the social code, or coincides with it only in order to parody it. It might be said that the schizophrenic passes from one code to the other, that he deliberately scrambles all the codes, by quickly shifting from one to the other, according to the questions asked him, never giving the same explanation from one day to the next, never invoking the same [[genealogy]], never recording the same event in the same way.”
The exteriority of the social code, the [[grid]] that we are forced into; [[Oedipalization]] as a general social principle rather than being solely psychoanalytic. A book of [[ethics]]
“The [[schizo]] maintained a shaky balance for the simple reason that the result is always the same, no matter what the [[disjunction]]s.”
He can switch codes, genealogies, explanations, but the result, the [[residdum]] is always the same.
[[AO p15-1]]
“Although the [[organ-machine]]s attach themselves to the [[body without organs]], the latter continues nonetheless to be without [[organ]]s and does not become an [[organism]] in the ordinary sense of the word. It remains fluid and slippery.” It howls in [[paranoiac]] pain, wanting to be free of it all
[[AO p15-2]]
Conforming to the meaning of the word “[[process]],” [[record]]ing falls back on production, but the [[production ]]of recording itself is produced by the production of production. Similarly, [[recording]] is followed by [[consumption]], but the production of consumption is produced in and through the production of recording.
This is because something on the order of a [[subject]] can be discerned on the recording [[surface]].
[subject is produced in and through recording] It is a strange subject, however, with no fixed identity, wandering about over the [[body without organs]], but always remaining peripheral to the [[desiring-machine]]s, being defined by the share of the product it takes for itself, garnering here, there, and everywhere a reward in the form of a [[becoming]] or an [[avatar]], being born of the states it consumes and being reborn with each new [[state]].
“It’s me, and so it’s mine....” Even suffering, as [[Marx]] says, is a form of self-enjoyment. Doubtless all [[desiring-production]] is, in and of itself, immediately consumption and [[consummation]], and therefore “sensual pleasure.” But this is not yet the case for a subject that can situate itself only in the terms of the disjunctions of a recording surface, in what is left after each division.
Returning yet again to the case of Judge [[Schreber]], we note that he is vividly aware of this fact: the fate of cosmic [[sexual]] [[pleasure]] remains [[constant]], so that God will find a way of taking his pleasure with Schreber, even if in order to do so Schreber must transform himself into a woman. But Schreber experiences a [[residual ]]share of this pleasure, as a recompense for his suffering or as a reward for his [[becoming-woman]].
“On the other hand, God demands a constant state of enjoyment... and it is my duty to provide him with this... in the shape of the greatest possible output of spiritual voluptuousness. And if, in this process, a little sensual pleasure falls to my share, I feel justified in accepting it as some slight compensation for the inordinate measure of [[suffering]] and privation that had been mine for so many past years.”
[[AO p15-3]]
“Just as a part of the [[energy]] of [[production]] was transformed into energy of recording ([[Numen]]), a part of this energy of [[recording]] is transformed into energy of [[consummation]] ([[Voluptas]]).”
[[AO p16-1]]
“It is this [[residual]] [[energy]] that is the motive force behind the third [[synthesis]] of the [[unconscious]]: the [[conjunctive synthesis]] “so it’s...,” or the [[production]] of [[consumption]].”
“We must examine how this synthesis is [[form]]ed or how the [[subject]] is produced. Our [[point]] of departure was the opposition between [[desiring-machine]]s and the [[body without organ]]s. The [[repulsion]] of these [[machines]], as found in the [[paranoiac machine]] of [[primary ]]repression, gave way to an attraction in the [[miraculating machine]]. But the opposition between attraction and repulsion still persists. It would seem that a genuine reconciliation of the two can take place only in the level of a new machine...
Let us borrow the term “[[celibate machine]]” to designate this machine that succeeds the paranoiac machine and the miraculating machine, forming a new [[alliance]] between the desiring-machines and the body without organs so as to give birth to a new humanity or a glorious [[organism]].
This is tantamount to saying that the [[subject]] is produced as a mere [[residuum]] alongside the desiring-machines, or that he confuses himself with this third productive machine and the residual reconciliation it brings about:
[[AO p16/17-1]]
a [[conjunctive synthesis]] of [[consummation]] in the form of a wonderstruck “So that’s what it was!”
How do I know what it was? What knowledge is lying around me? Is that knowledge that comes to be used and identified the [[abstract machine]]?
“A genuine [[consummation]] is achieved by the new [[celibate machine]], a [[pleasure]] that can rightly be called autoerotic or rather [[automatic]]: the nuptial celebration of a new [[alliance]], a new birth, a radiant ecstasy, as though the eroticism of the new [[machine]] liberated other unlimited forces.”
“The question becomes: what does the celibate machine [[produce]]? What is produced by means of it? The answer would seem to be: [[intensive]] [[quantity]]s. There is a [[schizophrenic]] experience of intensive quantities in their pure [[state]], to a point that is almost unbearable—a celibate misery and glory experienced to the fullest, like a cry suspended between life and death, an [[intense]] feeling of [[transition]], states of pure, naked [[intensity]] stripped of all shape and [[form]].
These are often described as [[hallucination]]s and [[delirium]], but the basic [[phenomenon]] of hallucination ([[I see]], [[I hear]]) and the basic phenomenon of [[delirium]] (I think...) presupposes an I feel at an even deeper level, which gives hallucinations their object and thought delirium its content—an “I feel that I am becoming a woman,” “that I am [[becoming]] a god,” and so on, which is neither delirious nor hallucinatory, but will project the hallucination or internalize the delirium.”
[[grammar]]
[[intensity]]
An ‘I feel...’ that respects none of the boundaries, man vs nature/industry/gender/religion, etc. and predates them all
[[AO p17-1]]
Judge [[Schreber]] has sunbeams in his ass. A solar anus. And rest assured that it works: Judge Schreber feels something, [[produce]]s something, and is capable of explaining the [[process]] theoretically. Something is [[produced]]: the [[effect]]s of a [[machine]], not mere metaphors.
[[AO p1-2]]
Everything is a [[machine]]. [[celestial machine]]s, the stars or rainbows in the sky, alpine machines—all of them connected to those of his [[body]]. The continual whirr of machines. “He thought that it must be a feeling of endless bliss to be in contact with the profound life of every form, to have a soul for rocks, metals, water, and plants, to take into himself, as in a dream, every element of nature, like flowers that breathe with the waxing and waning of the moon.” To be a chlorophyll- or a photosynthesis-machine, or at least slip his body into such machines as one part among the others. [[Lenz ]]has projected himself back to a time before the [[man:nature]] [[dichotomy]], before all the co-ordinates based on this fundamental dichotomy have been laid down. He does not live nature as [[nature]], but as a [[process of production]]. There is no such thing as either man or nature now, only a process that produces the one within the other and [[couple]]s the machines together. [[producing-machine]]s, desiring-machines everywhere, [[schizophrenic]] machines, all species of life. The [[self]] and the [[non-self]], outside and inside, no longer have any meaning whatsoever
[[AO p2-1]]
What ought to go inside the [[Oedipal]] [[triangle]], what sort of thing is required to construct it? Are a bicycle horn and my mothers arse sufficient to do the job? Aren’t there more important questions than these however? Given a certain effect, what [[machine]] is capable of [[producing]] it? And given a certain machine, what can it be used for?
[[machinic]] [[effect]] as appearing here?
[[AO p2-2]]
What the [[schizophrenic]] experiences, both as an individual and as a member of the human species is not at all any one specific aspect of [[nature]], but nature as a [[process of production]]. What do we mean here process? It is probable that at a certain level nature and industry are two separated and distinct things.” The [[schizo]] vs the man nature, industry nature, society nature dichotomies
These [[dichotomy]] lead to “relatively autonomous spheres that are called [[production]], distribution, [[consumption]].” It requires “not only the existence of [[capital]] and division of labor, but also the false-consciousness that the capitalist being [not only human being? A grander scale [[socius]]being? A being of the being?] acquires, both of itself and of the supposedly fixed elements of an over-all process. For the real truth of the matter—the glaring, sober truth that resides in [[delirium]]—is that there is no such thing as relatively independent spheres or circuits: [[production]] is immediately [[consumption]] and a [[recording process]], without any sort of mediation, and the recording process and consumption directly determine production, though they do so within the production process itself. Hence everything is production: [[production of production]]s, of actions and passions; productions of recording processes, of distributions and co-ordinates that serve as points of reference; productions of consumption, of sensual pleasures, of anxieties, and of pain. Everything is production, since the recording processes are immediately [[consumed]], immediately [[consummated]], and these consumptions directly reproduced. This is the first meaning of [[process]] as we use the term: incorporating recording and consumption within production itself, thus making them the productions of one and the same process.”
First use of ‘actions and passions?’
‘Directly reproduced’ we see the motion from production to reproduction
[[AO p3-1]]
Not man as king of creation, but rather as the being who is in intimate contact with the profound life of all forms or all types of beings, who is responsible for even the stars and animal life, and who ceaselessly plugs an [[organ-machine]] into an [[energy-machine]], a tree into his body, a breast into his mouth, the sun into his asshole: the eternal custodian of the [[machine]]s of the universe
[[AO p4-1]]
Second meaning of [[process]]: [[man:nature]] are not opposed terms, “rather they are one and the same reality, the [[producer]]-[[product]].”
Third meaning; “it must not be viewed as a goal or an [[end in itself]], nor must it be confused with an infinite perpetuation of itself.”
[[AO p4-2]]
“...[[schizophrenia]] is the universe of [[productive]] and [[reproductive]] [[desiring-machine]]s, universal primary [[production]] as the “essential reality of [[man:nature]].””
[[AO p5-1]]
"[[desiring-machine]]s are [[binary]] [[machine]]s, obeying a binary law or set of rules governing associations; one machine is always [[coupled]] with another. The [[productive synthesis]], the [[production of production]], is inherently [[connective]] in nature: “and...” “and then...” This is because there is always a [[flow]]-producing machine, and another machine connected to it that interrupts or draws off part of the flow (the breast—the mouth). And because the first machine is in turn connected to another whose flow it interrupts or partially drains off, the binary series is [[linear]] in every direction. [[Desire]] constantly [[couples]] continuous flows and [[partial-objects]] that are by nature [[fragment]]ary and fragmented. Desire causes the current to flow, itself flows in turns, and [[break]]s the flows.”
[[AO p5-2]]
“Every “object” presupposes the [[continuity]] of a [[flow]]; every flow, the [[fragment]]ation of the object. Doubtless each [[organ-machine]] interprets the entire world from the perspective of its own flux, from the point of view of the energy that flows from it: the eye interprets everything—speaking, understanding, shitting, fucking—in terms of seeing. But a connection with another [[machine]]is always established along a [[transverse]] path, so that one machine interrupts the current of the other, or “sees” its own current interrupted.”
[[AO p5-3]]
Hence the [[coupling]] that takes place within the [[partial-object]] [[flow]] synthesis also has another form: [[product/producing]]. [[Producing]] is always something “[[graft]]ed onto” the [[product]]; and for that reason [[desiring-production]] is [[production of production]], just as every [[machine]] is a machine connected to another machine... we cannot, we must not attempt to describe the [[schizophrenic]] object without relating it to the [[process of production]].”
[[AO p6-1]]
The [[schizophrenic]] is the universal [[producer]]. There is no need to distinguish here between [[producing]] and its [[product]]. We need merely note that the pure “thisness” of the object produced is carried over into a new act of producing. The table [object] continues to “go about its business.”... The satisfaction the [[handyman]] experienced when he plugs something into an electric socket or diverts a stream of water can scarcely be explained in terms of “playing mommy and daddy,” or by the pleasure of violating a taboo. The trick of continually [[producing production]], of [[graft]]ing producing onto the product, is a characteristic of [[desiring-machine]]s or of primary production: the [[production of production]].”
[[AO p6-2]]
[[Producing]], a [[product]]: a [[producing/product]] [[identity]]. It is this identity that constitutes a third term in the [[linear]] series: an enormous [[undifferentiated]] object. Everything stops dead for a moment—and then the whole [[process]] will begin over again. From a certain point of view it would be much better if nothing worked, if nothing functioned.”
Producing product; an identity of (producing/product) qua unity?
[[AO p7-1]]
“Will the [[machine]]s run so badly, their component pieces fall apart to such a point that they will return to [[nothingness]] and thus allow us to return to nothingness? It would seem, however, that the [[flow]]s of energy are still too closely connected, the [[partial-objects]] still too [[organic]], for this to happen. What would be required is a pure fluid in a free [[state]], flowing without interruption, streaming over the surface of a full body. [[desiring-machine]]s make us an [[organism]]; but at the very heart of this [[production]], within the very production of this production, the body suffers from being [[organized]] in this way, from not having some other sort of organization, or no organization at all. “An incomprehensible, absolutely rigid stasis” in the very midst of process, as a third stage... The [[automata]] stop dead and set free the unorganized [[mass]] they once served to articulate. The full [[body without organs]] is the unproductive, the sterile, the unengendered, the unconsumable... The death instinct: that is its name, and death is not without a model. For [[desire]] desires death also, because the full body of death is its [[motor]], just as it desires life, because the organs of life are the working machine.”
Death (BwO) is the motor, organs of life (desiring-machines) are working the machine
A fluid to dissolve, to wash away your organs?[
[[AO p7-2]]
“[[desiring-machine]]s work only when they break down, and by continually breaking down.”
“The body without organs is nonproductive; nonetheless it is produced, at a certain place and a certain time in the connective synthesis, as the identity of producing and the [[product]].”as the identity comes into being? The [[body without organs]] and the [[identity]] itself? The BwO as the identity qua unity of p/p? All of the above and them some, most likely."
[[AO p8-1]]
“The [[body without organs]] is not the proof of an original [[nothingness]], nor is it what remains of a lost totality. Above all, it is not a projection; it has nothing whatsoever to do with the body itself, or with an image of the body. It is the body without an image. This [[image]], the nonproductive, exists right there where it is produced, in the third stage of the [[binary]]-[[linear]] series. It is perpetually reinserted into the [[process of production]]. The catatonic body is produced in the water of the hydrotherapy tub. The full body without organs belongs to the realm of [[antiproduction]]; but yet another characteristic of the connective or [[productive synthesis]] is the fact that it couples production with antiproduction, with an element of antiproduction.”
Producing/product/body without organs ?
[[AO p8-2]]
“In order to resist [[organ-machine]]s, the body without organs presents its smooth, slippery, opaque, taut surface as a barrier, in order to resist linked, connected, and interrupted [[flow]]s, it sets up a counter flow of amorphous, undifferentiated fluid. In order to resist using [[word]]s composed of articulated phonetic sounds, it utters into gasps and cries that are sheer unarticulated [[block]]s of [[sound]].”
Why does it resist? Does it want to remove the organ-machines, even though they even made, in a certain sense, the [[body without organs]]? The death drive is just this?
[[AO p8-3]]
"This is the real meaning of the [[paranoiac machine]]: the [[desiring-machine]]s attempt to break into the [[body without organs]], and the body without organs repels them, since it experiences them as an over-all persecution [[apparatus]]... The genesis of the machine lies precisely here: in the opposition of the [[process of production]] of the [[desiring-machine]]s and the nonproductive stasis of the body without organs. The anonymous nature of the [[machine]] and the nondifferentiated nature of its surface at proof of this. Projection enters the picture only secondarily, as does counter investment, as the body without organs invests a counterinside or a counteroutside, in the form of a persecuting organ or some exterior agent of persecution. But in and of itself the paranoiac machine is merely an avatar of the desiring-machines: it is a result of the relationship between the desiring-machines and the body without organs, and occurs when the latter can no longer tolerate these machines.”
[[AO p9-1]]
The [[map]] of the [[unconscious]] found in [[AO]]
Everywhere [[it]] [ [[id]] ] is [[machine]]s-real ones, not figurative ones: machines driving other machines, with all the necessary [[coupling]]s and [[connection]]s... Hence we are all handymen: each with his little machines. For every organ-machine an energy-machine: all the time, [[flow]]s and [[interruption]]s... Something is produced: the [[effect]]s of a machine, not mere metaphors.
[[Anti-Oedipus]]
What is it that moves over the [[body]] of a [[society]]? It is always [[flow]]s, and a [[person]] is always a [[cut]]ting off of a flow. A person is always a [[point]] of [[departure]] for the [[production]] of a flow, a point of [[destination]] for the [[reception]] of a flow, a flow of any kind; or, better yet, an [[intercept]]ion of many flows.
If a person has [[hair]], this hair can move through many [[stage]]s: the hairstyle of a young girl is not the same as that of a married woman, it is not the same as that of a widow; there is a whole hairstyle [[code]]. A person, insofar as she [[style]]s her hair, typically presents herself as an [[intercept]]or in relation to flows of hair that exceed her and exceed her case, and these flows of hair are themselves coded according to very different codes; widow code, young girl code, married woman code, etc. This is ultimately the essential problem of [[coding]] and of the [[territorialize]]ation which is always coding flows with it, as a fundamental means of [[operation]]: [[mark]]ing persons (because persons are always situated at the interception and the cutting off of flows, they exist at the point where flows are cut off.
[[AO1 p1-1]]
The idea of [[schizoanalysis]] having as its goal the demonstration that [[libidinal]] [[investment]]s are plugged into the [[social]] [[field]] by way of [[desiring-machine]]s.
...there are misunderstandings+ a whole game of investments that are the problem of [[schizoanalysis]]: instead of having the [[family]] as [[referent]], it has as a referent the [[movement]]s of [[deterritorialize]]ation and reterritorialize]]ation.
[[AO1 p8-1]]
Need, scarcity, famine, a [[society]] can [[code]] these, what it cannot code, is when this thing appears, when it says to itself: what is up with these guys? So, in a first [[phase]], the [[repress]]ive [[apparatus]] puts itself into motion, if we can't code it, we will try to [[annihilate]] it. In a second phase, we try to find new [[axiom]]s which allow it to be [[recode]]d for better or worse.
[[overcoding]] [[reterritorialize]]ation
[[AO1 p1-1]]
a [[relation]] is found in something in common [[between]] [[capitalism]] and the [[schizo]]...it is a community of principle that remains [[abstract]], namely, the one like the other does not cease to [[filter]], to [[emit]], to [[intercept]], to [[concentrate]] [[decode]]d and [[deterritorialize]]d [[flow]]s.
[[event]]s to... [[grammar]]
[[AO1 p2-1]]
There is an [[internal]] menace in every [[society]], this menace being represented by the danger of [[flow]]s [[decode]]ing themselves, it makes [[sense]]. There is never a flow first, and then a [[code]] that imposes itself upon it. the two are [[coexistent]].
[[AO1 p3-1]]
...raising something to a [[coefficient]] [[flow]] seems to me to be a [[social]] [[operation]], the social operation of flows; at the level of society there are no women, there is a flow of women that refers to a [[code]], a code of age-old things, of clans, of tribes... the code and the flow are absolutely [[form]]ed face to face with each other. [[reciprocal presupposition]]. in relation to flows... by virtue of a code, there is something that must pass through. It involves forming a sort of [[system]]...a physical system with [[territoriality]]s: something enters, something exits... women present themselves in the form of a flow, of this flow, the social code means this: in relation to such a flow, something of the flow must pass through ie flow; something must not go through, and, [[third]]ly-this will make up the [[three]] fundamental terms of every [[code]]- something must effect the [[pass]]ing through, or, on the contrary, the [[block]]ing.
[[double articulation]]
[[AO1 p5-1]]
...there are [[machine]]s: no [[system]] without machines, a system, rigorously speaking, is a structural [[unity]] of machines
[[AO1 p5-2]]
...if it is true in [[capitalism]], [[flow]]s are [[decode]]d, are [[deterritorialize]]d constantly/// the whole capitalist project consists in reinventing artificial [[territoriality]]s in order to re[[inscribe]] people, to [[recode]] them.
[[AO1 p7-1]]
...the [[form]]s of [[social]] [[production]], like those of [[desiring-production]], involve an unengendered nonproductive attitude, an [[element]] of [[antiproduction]] [[couple]]d with the [[process]], a [[full body]] that functions as a [[socius]]. This socius my be the body of the [earth]], that of the [[tyrant]], or [[capital]]... In a word, the socius as full body forms a [[surface]] where all [[production]] is [[record]]ed, whereupon the entire process appears to emanate from this recording surface. Society constructs its own [[delirium]] by recording the [[process of production]]...
[[AO9]]
the [[magic]]al [[formula]] that characterizes [[biunivocal]]ization-the [[flat]]tening of the [[polyvocal]] [[real]] in favor of a [[symbolic]] relationship between two [[articulation]]s: so That is what This meant.
[[AO96]]
For it is a [[matter]] of [[flow]]s, of [[stock]]s, of [[break]]s in and fluctuations of flows; [[desire]] is present wherever something flows and [[run]]s, carrying along with it interested [[subject]]s-but also drunken or slumbering subjects-toward lethal destinations
[[AO101]]
The [[body without organs]] now falls back on [[desiring-production]], attracts it, and appropriates it for its own... An [[attraction-machine]] now takes the place, or may take the place, of a [[repulsion-machine]]: a [[miraculating-machine]] succeeding the [[paranoiac machine]]. But what is meant by "succeeding"? The two coexist, rather...
[[AO10]]
...but he [[sign]] does not [[produce]] [[fantasy]]s, it is a [[production]] of the [[real]] and a [[position]] of [[desire]] within [[reality]]... [112] the sign of desire is never [[signifying]], it exists in the thousands of productive [[break-flow]]s that never allow themselves to be [[signified]] within the [[unary]] stroke of [[castration]]. It is always a [[point-sign]] of many [[dimension]]s, [[polyvocity]] as the basis for a punctual [[semiology]].
[[AO105]]
[[distinction]]s must be made: the [[repressing]] [[representation]], which performs the repression; the [[repressed]] [[representative]], on which the repression actually comes to bear; the [[displaced]] [[represented]], which gives a falsified apparent [[image]] that is mean tto [[trap]] [[desire]]
[[Oedipus]] is a factitious product of psychic repression. It is only the represented, insofar as it is induced by repression. Repression cannot act without displacing desire, without giving rise to a consequent desire, all ready, all warm for punishment, and without putting this desire int he place of the antecedent desire on which repression comes to bear in principle or [[reality]] ("Ah, so that's what it was!").
[[AO111]]
[[social]] [[repression]] bears on [[desire]]-and not solely on [[need]]s or [[interest]]s-only be means of [[sexual]] repression... it is the social repression of desire or sexual repression-that is, the [[stasis]] of [[libidinal]] [[energy]]-that [[actualize]]s [[Oedipus]] and engages desire in this requisite impasse, [[organize]]d by the repressive [[society]].
[[AO115]]
[[psychic repression]] distinguishes itself from [[social repression]] by the [[unconscious]] nature of the operation and by its result ("even the [[inhibit]]ion of revolt has become unconscious"), a distinction that expresses clearly the difference in nature between the two [[repression]]s. But a real independence cannot be concluded from this. Psychic repression is such that social repression becomes [[desire]]d; it indices a consequent desire, a faked [[image]] of its [[object]], on which it bestows the appearance of independence. Strictly speaking, [[psychic]] repression is a means in the service of social repression. What it bears on is also the object of social repression: [[desiring-propduction]]. But it in fact implies an original double operation: the repressive social formation delegates its power to an [[agent]] of psychic repression, and correlatively the [[repressed]] desire is as though masked by the faked [[displace]]d image to which the repression gives rise. Psychic repression is delegated by the social formation, while the [[desiring-formation]] is [[disfigure]]d, displaced by psychic repression.
[[AO118]]
..we have passed [[imperceptible]]y into a [[domain]] of the [[production of recording]], whose [[law]] is not the same as the [[production of production]] The law [[govern]]ing the latter was [[connective synthesis]] or [[coupling]]. But when the productive [[connect]]ions pass from [[machine]]s to the [[body without organs]] (as from [[labor]] to [[capital]]), it would seem that they then come under another la that [[express]]es a [[distribution]] in relation to the nonproductive [[element]] as a "natural or divine presupposition" (the [[disjunction]]s of capital). [[machine]]s attach themselves to the Bwo as so many [[point]]s of [[disjunct]]ion, between which an entire [[network]] of new [[syntheses]] is now woven, marking the [[surface]] off into [[coordinate]]s, like a [[grid]].
The "either...or...or" of the schizophrenic takes over from the "and then": no matter what two [[organ]]s are involved, the way in which they are [[attach]]ed to the Bwo must be such that all the [[disjunctive syntheses]] between the two amount to the same on the slippery surface. Whereas the "either/or" claims to [[mark]] decisive choices between [[term]]s (the alternative: either this or that), the schizophrenic "either... or... or" refers to the [[system]] of [[possible]] [[permutation]]s between [[difference]]s that always amount to the same as they shift and slide about.
[[AO11]]
..the [[schizo]]... [[inscribe]]s on his own [[body]] the [[litany]] of [[disjunction]]s, and [[create]]s for himself a [[world]] of parries where the mot minute of [[permutation]]s is supposed to be a response to the new [[situation]] or a reply to the indiscreet questioner. The [[disjunctive synthesis]] of [[record]]ing therefore comes to overlap the [13] [[connect]]ive syntheses of [[production]]. The process as [[process of production]] extends into the [[method]] as method of [[inscription]]. Or rather, if what we term [[libido]] is the connective [[labor]] pf [[desiring-production]], it should be said that a part of this [[energy]] is [[transform]]ed into the energy of disjunctive inscription ([[Numen]]). A transformation of energy... The [[body without organs]]is not [[God]]... But the energy that sweeps through it is divine, when it attracts to itself the entire process of production and serves as its [[miraculate]]. enchanted [[surface]], inscribing it in each and every one of its disjunctions.
Hence the sole thing tht is divine is the nature of an energy of disjunctions. [[Schreber]]'s divine is inseparable from the disjunctions he employs to divide himself up into parts: earlier empires, later empires... [[Oedipus]] is a requirement or a consequence of social reproduction, insofar as this latter aims at domesticating a genealogical [[form]] and [[content]] that are in every way intractable... the [[schizo]] is constantly [[subject]]ed to interrogation, constantly cross-examined. Precisely because his relationship with [[nature]] does not constitute a specific [14] pole, the questions put to him are formulated in terms of the existing social [[code]]: your name, your father, your mother?
[[AO12]]
[[resonance]] is mentioned
...[ [[repression]] ] is a matter of [[connect]]ing [[desire]] to [[ready-made]] [[object]]s of [[social production]]. Go buy madeleines in Combray if you really want to feel the vibrations.[[AO119]]
[[desiring-production]] forms a [[binary]]-[[linear]] [[system]]. The [[full body]] is introduced as a third [[term]] in the [[series]], without destroying, however, the essential binary-linear nature of the series: 2, 1, 2, 1... The series is completely [[refract]]ory to a [[transcription]] that would [[transform]] and [[mold]] it into a specifically [[ternary]] and [[triangle]]ular [[schema]] such as [[Oedipus]]. The full [[body without organs]] is produced as [[antiproduction]] [of oedipus, it prevents it?], that is to say it intervenes within the [[process]] as such for the sole purpose of rejecting any attempt to impose on it any sort of triangulation.... it is precisely here on this body, right where it is, that the [[Numen]] is [[distribute]]d and [[disjunction]]s are established, independent of any sort of [[projection]]... The [[schizo]] has his own system of [[coordinate]]s for situating himself at his disposal, because, first of all, he has at his disposal his very own [[record]]ing [[code]], which does not coincide with the the [[social code]], [except in order to parody it.] The code of [[delirium]] or of [[desire]] proves to have an extraordinary [[fluid]]ity. It might be said that the schizophrenic passes from one code to the other, that he deliberately scrambles all the codes, by quickly shifting from one to another, according to the questions asked him, never giving the same explanation from one day to the next, never invoking the same genealogy, never [[record]]ing the same [[event]] in the same way.
Although the [[organ-machine]]s attach themselves to the Bwo, the latter continues nonetheless to be without [[organ]]s and does not become an [[organism]] in the ordinary [[sense]] of the word. It remains [[fluid]] and slippery.
[[AO12/14]]
The [[social machine]] is literally a [[machine]]... inasmuch as it exhibits an [[immobile]] [[motor]] and undertakes a variety of [[intervention]]s: [[flow]]s are set apart, [[elementt]]s are [[detach]]ed from a [[chain]], and [[portion]]s of the tasks to be performed are [[distribute]]d. [[coding]] the flows implies all these [[operation]]s. This is the social machine's supreme task, inasmuch as the [[apportion]]ing of [[production]] corresponds to [[extraction]]s from the chain, resulting in a [[residuum]] share for each member, in a [[global]] [[system]] of [[desire]] and [[destiny]] that [[organize]]s the [[production of production]], the [[production of recording]], and the [[production of consumption]]. The primitive [[territorial]] machine, with its immobile motor, the [[earth]], is already a social machine, a [[megamachine]] that codes the flows of production, the flows of means of production, of [[producer]]s and [[consumer]]s..
[[AO125]]
[[society]] is not first of all a [[milieu]] for [[exchange]] where the essential would be to [[circulate]] or to cause to circulate, but rather a [[socius]] of [[inscription]] where the essential thing is to [[mark]] and to be marked. There is circulation only if inscription requires or permits it.
[[AO141]]
The [[immanent]] [[unity]] of the [[earth]] as the [[immobile]] [[motor]] gives way to a [[transcendent]] unity of an altogether different nature-the unity of the [[State]]; the [[full body]] is no longer that of the [[earth]], it is that of the [[despot]], the [[unengendered]]... the savage, primitive [[socius]] was indeed the only [[territorial]] machine in the strict sense of the term. And the functioning of such a machine consists in the following: the [[declension]] of [[alliance]] and [[filiation]]-declining the lineages on the [[body]] of the earth, before there is a state.
[[AO142]]
[[filiation]] is [[admin]]istrative and [[hierarchy]]cal. but [[alliance]] is [[politic]]al and [[economy]]c, and [[express]]es [[owoer]] insofar as it is not fused with the hierarchy adn cannot be deduced from it, and the economy insofar as it is not identical with administration. Filiation and alliance are like the two [[form]]s of a primitive [[capital]]: [[fixed]] capital or filiative [[stock]], and [[circulate]]ing capital or [[mobile]] [[block]]s of [[debt]]s. There are two [[memory]]s that [147] correspond to them, the one biofiliative, the other a memory of alliance and of [[word]]s. While [[production]] is [[record]]ed in the [[network]] of filiative [[disjunction]]s on the [[socius]], the [[connect]]ions of [[labor]] still must [[detach]] themselves from the productive [[process]] and pass into the element of recording that appropriates them for itself as [[quasi cause]]. But it can accomplish this only by reclaiming the connective [[regime]] for its own, in the form of an affinal tie or a pairing of persons that is compatible with the disjunctions of filiation.
It is in this [[sense]] that the economy goes by way of alliance. In the production of children, the child is [[inscribe]]d in relation to the disjunctive [line]]s of its father or mother, but inversely, the disjunctive lines inscribe it only trorugh a connection represented by the marriage of the father and the mother. At no time, therefore, does alliance derive from filiation, but both form an essentially [[open]] [[cycle]] where the socius acts on production, but also where production reacts on the socius.
[[AO146]]
The [[flow]]s must be the [[object]] of [[deduct]]ions that constitute a [[minimum]] of [[stock]], and the [[signifying]] [[chain]] must be the object of [[detachment]]s that constitute a minimum of [[mediation]]s. A [[flow]] is [[code]]d insofar as detachments from the chain and deductions from the flows are effected in correspondence, united in a mutual [[embrace]].
The flow deductions constitute a filiative stock in the [[signifying chain]]; but inversely, the [[detachment]]s from the chain constitute [[mobile]] [[debt]]s of [[alliance]] that guide and direct the flows...
Therer are no productive connections without disjunctions... that appropriate them, butt here are no disjunctions... that do not reconstitute lateral connections across the alliances...
[[AO146/147]]
[[surplus value of the code]] [[AO149]]
...it is in order to [[function]] that a [[social machine]] must not function well... Here it becomes apparent that the social machine is identical with the [[desiring-machine]]. The social machine's [[limit]] is not attrition but rather its misfirings; it can operate only by fits and starts, by grinding and breaking down, in spasms of minor explosions. The dysfunctions are an essential [[element]] of its very ability to function... The [[death]] of a social machine has never been heralded by disharmony or a dysfunction; on the contrary, social machines make a habit of feeding on the [[contradiction]]s they give rise to, on the crises they provoke, on the anxieties they engender, and on the [[infernal]] operations they regenerate. [[capitalism]] has learned this, and has ceased doubting itself...
[[AO150]]
[[segment]] [[segmentary]] [[segmentarity]]
[[AO151]]
And we know the nature of this [[intensive]] [[filiation]], this [[inclusive]] [[disjunction]] where everything [[divide]]s, but into itself, and where the same [[being]] is everywhere, on every side, at every [[level]], differing only in [[intensity]]. The same being [[traverse]]s [[indivisible]] [[distance]]s on the [[full body]], and [[pass]]es through all the [[singularity]]s, all the intensities of a [[synthesis]] that shifts and [[reproduce]]s itself.
[[AO152]]
Conforming to the [[meaning]] of the word [[process]], [[record]]ing falls back on [[production]], but the [[production of recording]] is produced by the [[production of production]]. Similarly, recording is followed by [[consumption]], but the [[production of consumption]] is produced in and through the production of recording. This is because something on the order of a [[subject]] can be discerned on the recording [[surface]]. It is a strange subject, however, with no fixed [[identity]], wandering about over the [[body without organs]], but always remaining peripheral to the [[desiring-machine]]s, being defined by the share of the product it takes for itself, garnering here, there, and everywhere a reward in the [[form]] of a [[becoming]] or an [[avatar]], being born of the [[state]]s it [[consume]]s and being reborn with each new state.
[[AO14/15]]
Let us borrow the term [[celibate machine]] to designate this [[machine]] that succeeds the [[paranoiac machine]] and the [[miraculating machine]], forming a new [[alliance]] between the [[desiring-machine]]s and the [[body without organs]] so as to give birth to a new humanity or a glorious [[organism]]. This is tantamount to saying that the [[subject]] is produced as a mere [[residuum]] alongside the desiring-machines, or that he confuses himself with this third productive machine and with the residual reconciliation that it brings about: a [[conjunctive synthesis]] in the [[form]] of a wonderstruck "so ,,that's,, what it was!"
[[AO16]]
[[AO17/18]]...what does the [[celibate machine]] [[produce]]? what is produced by means of it? The answer would seem to be: [[intensive]] [[quantity]]s... The basic phenomenon of hallucination (I see, I hear) and the basic phenomenon of [[delirium]] (I think...) presupposes an I feel at an even deeper level which gives hallucinations their object and thought delirium its content-an I feel that I am becoming a woman, That I am [[becoming]] a god, which is neither delirious or hallucinatory, but will project hallucination or internalize delirium. D and H are secondary in relation to the really primary emotion, which in the beginning only [[experience]]s [[intensity]]s, [[becoming]]s, [[transition]]s... They come from the two preceding forces, [[repulsion]] and [[attraction]], from the opposition of these two forces... they are all positive in relationship to the zero intensity that designates the [[full body]] without organs. And they undergo relative rises or falls depending on the complex relationship between them and the [[variation]]s in the relative strength of attraction and repulsion as determining factors.
In a word, the opposition of the forces of attraction and repulsion [[produce]]s an open [[series]] of [[intensive]] [[element]]s, all of them [[positive]], that are never an [[expression]] of the final [[equilibrium]] of a [[system]], but consist, rather, of an unlimited number of stationary, [[metastable]] [[state]]s through which a [[subject]] [[pass]]es. The [[Kant]]ian theory according to which intensive quantites fill up, to varying [[degree]]s, matter that has no empty spaces, is profoundly schizoid.
The [[body without organs]] is an egg: it is crisscrossed with [[axes]] and [[threshold]]s, with [[latitude]]s and [[longitude]]s and [[geodesic]] [[line]]s, traversed by [[gradient]]s [[mark]]ing the [[transition]]]s and [[becoming]]s, the destinations of the [[subject]] developing along these particular vectors. Nothing here is representative; rather, it is all life and lived experience: the actual, lived emotion of having breasts does not resemble breasts... Nothing but [[band]]s of intensity, [[potential]]s, [[threshold]]s and gradients.
[[desiring-production]] [[desiring-machine]]s, [[libido]] [[numen]] [[voluptas]], [[molecular]] [[molar]] [[conjunctive synthesis]] [[connective synthesis]] [[disjunctive synthesis]] [[summary]] [[reread]]
[[AO154]]
...[[representation]] is always a [[social]] and [[psychic]] [[repression]] of [[desiring-production]]. [[representative]], [[represented]].
[[AO154]]
[[desire]] knows nothing of [[exchange]], it knows only [[theft]] and [[gift]], at times one within the other...
[[AO184]]
[[AO186]] [[oral]] [[society]] [[language]] [[graphism]] [[sign]] [[desire]] [[presignifying]] [[Leroi-Gourhan]]
The sign
[189]...the [[sign]], which is not a resemblance or imitation, nor an [[effect]] of a [[signifier]], but rather a [[position]] and a [[production]] of [[desire]]...
How the [[State]] comes to take over the [[territorial]] [[machine]] [[social machine]] [[despot]] [[overcoding]] is on p199 [[debt]] [[alliance]] [[filiation]] [[full body]] [[block]]s
[[AO188]]
The walk outdoors is different from the moments when [[Lenz]] finds himself closeted with his pastor, who forces him to situate himself socially, in relationship to the God of established religion, in relationship to his [[father]], to his [[mother]]...
To be a chlorophyll-or a photosynthesis[[meachine]], or at least slip his [[body]] into such machines as one part among the others. Lenz has projected himself back to a time before the man-nature dichotomy, before all the [[coordinate]]s based on this fundamental dichotomy have been laid down. He does not live [[nature]] as nature, but as a [[process of production]]. There is no such thing as either [[man]] or nature now, only a [[process]] that [[produce]]s the one within the other and [[couple]]s the machines together. [[producing-machine]]s, [[desiring-machine]]s everywhere, [[schizo]]phrenic machines, all species of life: the [[self]] and the non-self, outside and inside, no longer have any meaning whatsoever.
[[AO1]]
What I call the [[socius]] is not [[society]], but rather a particular [[social]] [[instance]] which plays the role of a full [[body]]. Every society presents itself as a socius or full body upon which all kinds of [[flow]]s flow and are interrupted, and the social [[investment]] of [[desire]] is this basic [[operation]] of the [[break]]-flow to which we can easliy give the name of [[schizz]].
[[AO1 p11-1]]
[[summary]], easy, then "Or, to follow a path that is more complex, but leads in the end to the same thing: by means of the [[paranoiac machine]] and the [[miraculating machine]], the [[proportion]]s of [[attraction]] and [[repulsion]] on the [[body without organs]] [[produce]], starting from [[zero]], a [[series]] of [[state]]s in the [[celibate machine]]; and the [[subject]] iis born of each state in the series, is continually reborn of the following state that [[determine]]s him at a given moment, [[consuming]]-[[consummating]] all these states that cause him to be [[born]] and reborn (the lived state coming first, in relation to the subject that lives it).
[[AO18/19]]
[[plane of consistency]] first appearance
[[AO192/196]]
For what is the [[signifier]] in the first instance? What is it in relation to the [[nonsignifying]] [[territorial]] [[sign]]s , when it [[jump]]s outside their [[chain]]s and imposes-superimposes-a [[plane]] of [[subordination]] on their plane of [[immanent]] [[connotation]]? The signifier is the sign that has become a sign of the sign, the [[despot]]ic sign having replaced the territorial sign, having crossed the [[threshold]] of [deterritorialize]]ation; the signifier is merely the deterr'd sign itself. The sign made [[letter]]. [[desire]] no longer dares to desire, having become a desire of desire, a desire of the despot's desire.
[[AO205]]
It is not a matter of identifying with various historical personages, bu rather identifying the [[name]]s of [[history]], but rather identifying the names of history with [[zone]]s of [[intensity]] on the [[body without organs]] and each time [he] exclaims: "They're Me! so it's me!"
[[AO20]]
[[delirium]] is in fact characteristic of the [[record]]ing that is made of the [[process of production]] of the [[desiring-machine]]s; and though there are [[syntheses]] and disorders ([[affection]]s) that are peculiar to this recording [[process]], as we see in [[paranoia]]... it does not constitute an autonomous sphere, for it depends on the functioning and [[breakdown]]s of desiring-machines.
A truly [[materialist psychiatry]] can be defined, on the contrary, by the twofold task it sets itself: introducing [[desire]] into the [[mechanism]], and introducing [[production]] into desire.
[[AO21]]
If [[desire]] [[produce]]s, its [[product]] is [[real]]. If desires productive, it can be productive only in the real [[world]] and can produce only reality. Desire is the [[set]] of [[passive syntheses]] that engineer [[partial object]]s, [[flow]]s, and [[body]]s, and that [[function]] as [[units of production]]. The real is the end product, the result of the passive syntheses of desire as [[autoproduction]] of the [[unconscious]]. Desire does not lack anything; it does not lack its object. It is, rather, the [[subject]] that is missing in desire, or desire that lacks a fixed subject; there is no fixed subject unless there is [[repression]]. Desire and its object are one and the same thing: the [[machine]], as a machine of a machine. Desire is a machine, and the object of desire is another machine [[connect]]ed to it. Hence the product is something [[remove]]d or [[deduct]]ed from the [[process]] of [[producing]]: between the act of producing and the product, something becomes [[detach]]ed, thus giving the vagabond, [[nomad]] subject a [[residuum]].
...[27] what is missing is not things a subject feels the lack of somewhere deep inside himself, but rather the objectivity of man, the objective being of man, for whom to desire is to produce, to produce within the realm of the real.
The real is not impossible; on the contrary, the real within everything is [[possible]]. Desire does not [[express]] a [[molar]] [[lack]] within the subject; rather, the molar [[organization]] deprives desire of its objective being.
[[AO22]]
The [[truth]] of the [[matter]] is that [[social production]] is purely and simply [[desiring-production]] itself under [[determinate]] [[condition]]s. We maintain that the social field is immediately [[invest]]ed by [[desire]], that it is the historically determined [[product]] of desire, and that [[libido]] has no need of any [[mediation]] or [[sublimation]], any psychic operation, any [[transform]]ation, in order to invade and [[invest]] the [[productive force]]]s and the [[relations of production]] There is only desire and the social, and nothing else.
[[AO26/27]]
...[[Oedipus]] presupposes a fantastic [[repression]] of [[desiring-machine]]s. And why are they repressed? To what end? is it really necessary or desirable to submit to such repression? And what means are to be used to accomplish this? What out to go inside the [[Oedipal]] [[triangle]], what sort of thing is required to [[construct]] it?... Aren't there more important [[question]]s than these, however? Given a certain [[effect]], what [[machine]] is capable of [[producing]] it? And given a certain machine, what can it be used for?...
What the [[schizo]]phrenic experiences... [is] [[nature]] as a [[process of production]].
[[AO2]]
It is not [[possible]] to [[attribute]] a special form of existence to [[desire]], a mental or psychic reality that is presumably different from the material reality of [[social production]]... [[fantasy]] is never individual: it is [[group]] fantasy...
[[AO29]]
...there is a strong [[tendency]] on the part of the [[force]]s of [[antiproduction]] to operate retroactively on productive [[form]]s and appropriate them... [[desiring-machine]]s,... continually break down as they run, and in fact only run when they are not functioning properly: the [[product]] is always an offshoot of [[production]], implanting itself upon it like a [[graft]], an at the same time the [[part]]s of the [[machine]] are the [[fuel]] that make it run.
[[AO30]]
[[desiring-machine]]s [[produce]] [[antiproduction]] al by themselves, whereas the antipro characteristic of technical machines takes place only within the extrinsic conditions of the reproduction of the [[process]]... That is why tech machines are not an economic [[category]] and always refer back to a [[socius]] or [[social machine]] that is quite distinct from these machines and that conditions this reproduction. A tech machine is therefore not a cause but merely an [[index]] of a general [[form]] of [[social production]]; [lists the three forms] Hence when we posited the socius as the analogue of a [[full body]] [[body without organs]] there was nonetheless one important difference. For d-m's are the fundamental category of the economy of [[desire]]; they [[produce]] a [[bwo]] all by themselves and make no [[distinction]] between [[agent]]s and their own [[part]]s, or between the relations of production their own relations, or between the social order and technology.D-m's are both social and [[technical]].
[[AO31]]
The prime function incumbent upon the [[socius]] has always been to [[codify]] the [[flow]]s of [[desire]], to [[inscribe]] them, to [[record]] them, to see to it that no flow exists that is not properly dammed up, [[channel]]ed, [[regulate]]d... But the [[capitalist machine]],... finds itself in a totally new situation: it is faced with the task of [[decoding]] and [[deterritorialize]]ing the flows... [[capitalism]] is in fact born of the encounter of two sorts of flows: the [[decoded]] flows of [[production]] in the form of [[money]]-[[capital]], and the decoded flows of [[labor]] in the [[form]] of the free worker. Hence, unlike previous [[social machine]]s, the capitalist machine is incapable of providing a code that will apply to the whole of the social field. By substituting [[money]] for the very notion of a [[code]], it has created an [[axiom]]atic of abstract quantities that keeps moving further and further in the direction of the deterr of the [[socius]]...
This through p35 is the first mention of their critique of [[capitalism]]
[[AO32]]
[[capitalism]] institutes or restores all sorts of [[residual]] and [[artificial]], imaginary, or symbolic [[territory]]alities, thereby attempting, as best it can, to [[recode]], to re[[channel]] persons who have been defined in terms of abstract quantities... As a corollary of this [[law]], there is the twofold movement of [[decoding]] or deterring [[flow]]s on the one hand, and their violent and artificial [[reterritorialize]]ation on the other. The more the [[capitalist machine]] [[deterritorialize]]s, decoding and [[axiom]]atizing flows in order to extract [[surplus value]] from them, the more its ancillary [[apparatus]]se, such as government bureaucracies... do their utmost to reterr, absorbing in the process a larger and larger share of surplus value.
[[AO33]]
A [[machine]] may be defined as a [[system]] of [[interrupt]]ions or [[break]]s. These breaks should in now way be considered as a separation from [[reality]]; rather, they [[operate]] along lines that vary according to whatever aspect of them we are considering. Every machine, in the first place, is related to a continual [[material]] [[flow]] ([[hyle]]) that it cuts into. It functions like a ham-slicing machine, removing [[portion]]s from the associative flow... Each associative flow must be seen as an ideal thing, an endless [[flux]], flowing from something not unlike the immense thigh of a pig... Far from being the opposite of [[continuity]], the break or interruption conditions this continuity: it presupposes or defines what it cuts into as an ideal continuity. This is because, as we have seen, every machine is a machine of a machine, [the first machine, the cut, presupposes a second machine, but behind that the first machine sees a 3rd machine as as ort of [[infinite]] flux]... That is why, at the [[limit]] [[point]] of [37] all the [[transverse]] or [[transfinite]] [[connect]]ions, the [[partial object]]s and the [[continuous]] [[flux]], the [[interrupt]]ion and the connection, fuse into one: everywhere there are break[flows out of which desire wells up, thereby constituting its [[productivity]] and continually [[graft]]ing the [[process of production]] onto the [[product]].
[[AO34/35]]
In the second place, every [[machine]] has s sort of [[code]] built into it, stored up inside it. This code is inseparable not only from the way in which it its [[record]]ed and [[transmit]]ted to each of the different [[region]]s of the [[body]], but also from the way in which the relations of each of the regions with all of others are recorded. An [[organ]] my have [[connect]]ions that associate it with several different [[flow]]s; it may waver between several functions and even take on the [[regime]] of another organ... All sorts of functional [[question]]s arise: What flow to break, where to [[interrupt]] it, how and by what means, what place should be left for other [[producer]]s or [[antiproducer]]s...
The [[data]], the [[bit]]s of [[information]], and their [[transmission]] form a [[grid]] of [[disjunction]]s of a type that differs from the previous [[connection]]s... this fertile [[domain]] of a [[code]] of the [[unconscious]], incorporating the entire [[chain]]-or several chains-of [[meaning]]: a discovery thus totally transforming [[analysis]]. But how very strange this domain seems, simply because of its [[multiplicity]]-a multiplicity so complex that we can scarcely speak of one chain or even one code of [[desire]]. The chains are called [[signifying]] chains because they are made up of [[sign]]s, but these signs are not themselves signifying. The code resembles njot so much a [[language]] as a [[jargon]], an open-ended [[polyvocal]] [[formation]]. The nature of the signs within it is not insignificant, as these signs have little or nothing to do with what supports them. Or rather isn't the support completely immaterial to these signs? The support is the [[body without organs]]/ These indifferent signs follow no plan, they function at all levels and enter into any every sort of [[connection]]; each one speaks its own language, and establishes [syntheses]] with others that are quite direct along [[transverse]] [[vector]]s, whereas the vectors between the basic [[element]]s that constitute them are quite indirect.
[[AO36]]
The [[disjunction]]s characteristic of these [[chain]]s still do not involve any [[exclusion]], however, since exclusions can arise only as a [[function]] of [[inhibit]]ers and [[repress]]ers that eventually [[determine]] the [[support]] and firmly define a specific, personal s[[subject]]. No chain is [[homogeneous]], all of them resemble, rather, a succession of characters from different alphabets... Each chain [[capture]]s [[fragment]]s of other chains from which it "[[extract]]s" a [[surplus value]]...the [[surplus value of the code]]... a close resemblance to a [[Markov chain]]. The [[recording]]s and [[transmission]]s that have come from the internal codes, from the outside world, from one [[region]] to another of the [[organism]], all [[intersect]], following the endlessly [[ramified]] paths of the great [[disjunctive synthesis]]. If this constitutes a [[system]] of [[writing]], it is a writing inscribed on the very [[surface]] of the [[Real]]: a strangely [[polyvocal]] kind of writing, never a [[biunivocal]]ized, [[linear]]ized one; a [[transcursive]] system of writing, never a [[discursive]] one; a writing that constitutes the entire domain of the real inorganization of the [[passive syntheses]], where we would search in vain for something that might be labeled the [[signifier]]-writing that ceaselessly [[compose]]s and decomposes the chains into signs that have nothing that impels them to become signifying. The one vocation of the [[sign]] is to [[produce]] [[desire]], engineering it in every [[direction]].
[[AO38]]
These[[ chain]]s are the locus of continual [[detachment]]s-[[schizz]]es on every hand that are valuable in and of themselves and above all must not be filled in. This is thus the second characteristic of the [[machine]]: [[break]]s that are a detachment, which must not be confused with breaks that are a [[slice]]ing off. The latter have to do with [[continuous]] [[flux]]es and are related to [[partial object]]s. Schizzes have to with heterogeneous [[chain]]s, and as their basic [[unit]] use detachable [[segment]]s or mobile [[stock]]s resembling building blocks [40] or flying bricks. We must conceive of each [[brick]] as having been launched from a distance and as being composed of heterogeneous elements... not only an [[inscription]] with [[sign]]s from different alphabets, but also...a corpse. Cutting into the [[flow]]s involves detachment of something from a chain; and the partial objects of [[production]] presuppose [[stock]]s of [[material]] or recording bricks within the coexistence and the interaction of all the [[syntheses]].
How could part of a flow be [[draw]]n off without a fragmentary detachment taking place within the code that comes to inform the flow?... Every composition and also every decomposition uses mobile bricks as the basic unit... These bricks or blocks are the essential [[part]]s of [[desiring-machine]]s from the [[point of view]] of the [[recording]] [[process]]: they are at once [[component]] parts and products of the process of decomposition that are spatially localized only at certain moments...
[[AO39]]
For the [[real]] [[truth]] of the [[matter]]-the glaring, [[sober]] truth that resides in [[delirium]]-is that there is no such thing as relatively independent [[sphere]]s of [[circuit]]s: [[production]] is immediately [[consumption]] and a [[record]]ing [[process]] ([[enregistrement]]), without any sort of [[mediation]], and the [[recording process]] and consumption directly [[determine]] production, though they do so within the production process itself. Hence everything is production: [[production of production]], of [[actions and passions]]; [[production of recording]] processes, of [[distribution]]s and of [[coordinate]]s that serve as [[point]]s of [[reference]]; [[production of consumption]]s, of [[sensual]] [[pleasure]]s, of [[anxiety]]s, of [[pain]]s. Everything is production, since the recording processes are immediately consumed, immediately [[consummated]], and these consumptions directly [[reproduce]]d. This is the first [[meaning]] of process as we use the [[term]]: incorporating [[recording]] and [[consumption]] within [[production]] itself, thus making them the productions of one and the same process.
[[AO3]]
Second, we make no [[distinction]] between [[man]] and [[nature]]:the [[human]] [[essence]] of nature and the natural essence of man [[become]] one within nature in the [[form]] of [[production]] or [[industry]], just as they do within the life of man as a species. Industry is then no longer considered from the extrinsic [[point of view]] of utility, but rather from the PoV of its fundamental [[identity]] with nature as [[production]] of man and by man...
This is the second [[meaning]] of [[process]] as we use the [[term]]: man and nature are not like two opposite [5] terms confronting each other-not even in the sense of bipolar opposites within a relationship of causation, ideation, or [[expression]] (cause and effect, subject and object, etc.); rather, they are one and the same essential [[reality]], the [[producer-product]]. Production as [[process]] overtakes all idealistic [[category]]s and constitutes a [[cycle]] whose relationship to [[desire]] is that of an [[immanent]] [[principle]]. This is why [[desiring-production]] is the principle concern of a materialist [[psychiatry]], which conceives of and deals with the [[schizo]] as [[homo natura]].
This will be the case, however, only on one condition, which in fact constitutes the third meaning of process as we use the term: it must not be viewed as a goal or an end in itself, nor must it be confused with an [[infinite]] perpetuation of itself. Putting an end to the process or prolonging it indefinitely-which, strictly speaking, is tantamount to ending it abruptly and prematurely- is what creates the [[artificial]] schizophrenic found in mental institutions... "the aim of any process is not the perpetuation of that process, but the completion thereof... The process should work to a completion, not to some horror of [[intensification]] and extremity wherein the [[soul]] and [[body]] ultimately perish." [DH [[Lawrence]] ]. Schizophrenia is like [[love]]: there is no specifically schizophrenic phenomenon or [[entity]]: schizophrenia is the universe of productive and reproductive [[desiring-machine]]s, universal primary production as "the essential reality of man and nature."
[[AO4]]
The third type of [[interrupt]]ion or [[break]] characteristic of the [[desiring-machine]] is the residual break or [[residuum]], which [[produce]]s a [[subject]] alongside the [[machine]], functioning as a [[part]] adjacent to the machine. And if this subject has no specific or personal [[identity]], if it traverse the [[body without organs]] without destroying its indifference, it is because it is not only a part that is peripheral to the machine, but also a part that is itself [[divide]]d into parts that correspond [41] to the [[detachment]]s from the [[chain]] and the removals from the [[flow]] brought about by the machine. Thus this subject [[consume]]s and [consummate]]s each of the states through which it passes, and is born of each of them anew, continuously emerging from them as a part made up of parts, each one of which completely fills up the Bwo in the [[space]] of an instant.
The desiring-machine is not a metaphor; it is what interrupts and is interrupted in accordance with these three [[mode]]s. The first mode has to do with the [[connective synthesis]], and mobilizes [[libido]] as withdrawal energy. The second has to do with the [[disjunctive synthesis]] and mobilizes [[Numen]] as [[detachment]] energy. The third has to do with the [[conjunctive synthesis]] and mobilizes [[Voluptas]] as residual energy.
It is these three aspects that make the [[process]] of [[desiring-production]] at once the [[production of production]], the [[production of recording]] and the [[production of consumption]]. To withdraw a part from the whole, to detach, to "have something left over," is to [[produce]], and to carry out real [[operation]]s of desire in the [[material]] [[world]].
[[AO39/40]]
In [[desiring-machine]]s, everything functions at the same time, but amid hiatuses and [[rupture]]s, [[breakdown]]s and failures, stalling and short circuits, [[distance]]s and [[fragment]]ations, within a sum that never succeeds in bringing its various [[part]]s together so as to form a [[whole]]. This is because the [[break]]s in the [[process]] are [[productive]], and are reassemblies in and of themselves. [[disjunction]]s, by the very fact that they are disjunctions, are [[inclusive]]. Even [[consumption]]s are processes of [[becoming]]s and [[return]]s... How to think about fragments whose relationship is sheer [[difference]]-fragments that are related to one another only in that each of them is different... [neither form a lost totality or of a new totality]
It is only the [[category]] of [[multiplicity]], used as a [[substantive]] and going beyond both the one and the many... that can account for [[desiring-production]]: d-p is pure multiplicity, that is to say, an [[affirmation]] that is irreducible to any sort of [[unity]].
We believe only in [[totality]]s that are [[peripheral]]. And if we discover such a totality alongside the various separate [[part]]s, it is a whole of these particular parts but does not totalize them; it is a [[unity]] of all these particular parts but does not unify them; rather, it is added to them as a new part fabricated separately.
[[AO40/41]]
...the whole itself is a [[product]], produced as nothing more than a [[part]] alongside other parts, which it neither unifies nor totalizes, though it has an effect on these other parts simply because it establishes [[aberrant]] paths of [[communication]] between noncommunicating [[vessel]]s, [[transverse]] unities between [[element]]s that retain all their [[difference]]s within their own [articular [[boundary]]s...
The [[body without organs]] is produced as a whole, but alongside the [[part]]s that it neither unifies nor totalizes. And when it [[operate]]s on them, when it turns back upon them. it rings about [[transverse]] communications, transfinite summarizations, [[polyvocal]] and [[transcursive]] [[inscription]]s on its own [[surface]], on which the functional breaks of [[partial object]]s are continually intersected by breaks inn the [[signifying chain]]s, and by [[break]]s effected by a [[subject]] that uses them as [[reference]] [[point]]s in order to locate itself. The whole not only [44] coexists with all the parts, it is contiguous to them, it exists as a product that is produced apart from them and yet at the same time is related to them.
[[AO42]]
[[partial object]]s are... really [[produce]]d by being [[draw]]n from a [[flow]] or nonpersonal [[hyle]], with which they re-establish contact by [[connect]]ing themselves to other [partial objects. The [[unconscious]] is totally unaware of [[person]]s as such. Partial objects are not representations of parental figures or of the basic patterns of [[family]] relations; they are [[part]]s of [[desiring-machine]]s, having to do with a [[process]] and with relations of [[production]] that are both irreducible to and prior to anything that may be made to conform to the [[Oedipal]] [[figure]].
[[AO43]]
A [[partial object]] is not [[representative]]]], even though it admittedly serves as a basis of relations and as a means of assigning [[agent]]s a place and a function; but these agents are not [[person]]s, anymore than these relations are [[intersubjective]]. They are relations of [[production]] as such, and agents of production and [[antiproduction]].
[[AO46]]
For the [[unconscious]] is an [[orphan]], and [[produce]]s itself within the [[identity]] of [[nature]] and [[man]]
[[AO47]]
[[desiring-machine]]s are [[binary machine]]s, obeying a [[binary]] [[law]], or a [[set]] of [[rule]]s [[govern]]ing [[association]]s: one [[machine]] is always [[couple]]d with another. The [[productive synthesis]], the [[production of production]], is inherently [[connect]]ive in [[nature]]: "and..." "and then..." This is because there is always a [[flow]]-producing machine, and another machine connected to it that [[interrupt]]s or [[draw]]s off [[part]] of this flow... And because this first machine is in turn connected to another whose flow it interrupts or [[part]]ially [[drain]]s off, the binary [[series]] is [[linear]] in every [[direction]]. [[desire]] constantly [[couple]]s [[continuous]] flows and [[partial object]]s that are by nature [[fragment]]are and fragmented. Desire causes the [[current]] to flow, itself flows in turn, and breaks the flows... flowing [[hair]]... [flow]s that are produced by partial objects and constantly [[cut]] off by other [6] partial objects which in turn [[produce]] other flows, interrupted by other partial objects.
Every "[[object]]" presupposes the continuity of a flow; every flow, the fragmentation of the object. Doubtless each [[organ-machine]] [[interpret]]s the entire [[world]] from the [[perspective]] of its own [[flux]], from the [[point of view]] of the [[energy]] that flows from it: the eye interprets everything-speaking, understanding, shitting, fucking,-in terms of seeing. But a connection with another machine is always established, along a [[transverse]] path, so that one machine interrupts the current of the other other or "sees" its own current interrupted.
[[AO4/5]]
For the [[unconscious]] itself]]... it engineers, it is [[machinic]]... it is the [[Real]] in itself, the "impossible real" and its [[production]].
[[AO49]]
[[castration]] is at once the common lot-that is, the prevalent and [[transcendent]] [[phallus]], and the [[exclusive]] [[distribution]] that presents itself in girls as [[desire]] for the penis, and in boys as fear of losing it or refusal of a passive attitude. This something in [[common]] must lay the foundation for the [[exclusive]] use of the [[disjunction]]s of the [[unconscious]]-and teach us [[resignation]]. Resignation to [[Oedipus]], to castration: for girls, renunciation of their desire for the penis; for boys, renunciation of male protest-in short, "assumption of one's sex." This [60] something in common... is purely mythical... it introduces [[lack]] into [[desire]] and causes exclusive series to [[emanate]], to which it [[attribute]]s a [[goal]], an [[origin]], and a path or resignation.
[[AO53]]
Hence the [[coupling]] that takes place within the [[partial object]]-[[flow]] [[connective synthesis]]also has another [[form]]: [[product/producing]]. [[producing]] is always something "[[graft]]ed" onto the [[product]] and for that reasing [[desiring-production]] is [[production of production]], just as every [[machine]] is a machine [[connect]]ed to another machine. We cannot accept the idealist [[category]] of [[expression]] as a satisfactory or [[sufficient]] explanation of this phenomenon. We cannot, we must not attempt to describe the [[schizo]]phrenic [[object]] without relating it to the [[process of production]]
[7] the schizophrenic is the universal [[producer]]. There is no need to [[distinguish]] here between producing and its product. We need merely not that the pure "thisness" [[haecceity]] of the object produced is carried over into a new act of producing. The [object] continues to "go about its business.".. The nondetermination of the [object] is a necessary consequence of its [[mode]] [schizo] of production... The [[rule]] of continually producing production, of grafting producing onto the product, is a characteristic of [[desiring-production]]: the [[production of production]].
[[bricolage]]
[[AO5/6]]
The contrary should be said: neither is there anything in [[common]] between the two [[sex]]es, nor do they cease [[communicate]]ing with each other in a [[transverse]] [[mode]] where each [[subject]] possesses both of them, but with the two of them partitioned off, and where each subject communicates with one sex or the other in another subject. Such is the [[law]] of [[partial object]]s. Nothing is [[lack]]ing, nothing can be defined as a lack; nor are the [[disjunction]]s in the [[unconscious]] ever [[exclusive]], but rather the [[object]] of a properly [[inclusive]] use that we must analyze.
Here we have a properly analytical fallacy (which will be found again, to a considerable degree, in the theory of the [[signifier]]) that consists in [[pass]]ing from the detachable [[partial object]] to the position of a complete object as the thing [[detach]]ed (phallus). This passage implies a [[subject]], defined as a fixed [[ego]] of one ex or the other, who necessarily experiences as a lack his subordination to the tyrannical complete object. This is perhaps no longer the vase when the partial object is posited for itself on the [[body without organs]], with-as its sole [[subject]]-not an 'ego' but the [[drive]] that [[form]]s the [[desiring-machine]] along with it, and enters into relationships of [[connect]]ion, [[disjunction]], and [[conjunction]] with other partial objects, at the core of the corresponding [[multiplicity]] whose every [[element]] can only be defined [[positive]]ly.
[[AO59]]
...all requirements of [[liberation]]: the [[force]] of the [[unconscious]] itself, the [[investment]] by [[desire]] of the social field, the disinvestment of [[repress]]ive [[structure]]s. [[AO60]]
the two kinds of [[fantasy]], or rather the two [[regime]]s, are therefore distinguished according to whether the social [[production]] of "goods" imposes its rule on [[desire]] through the [[intermediary]] of an [[ego]] whose fictional [[unity]]] is guaranteed by the goods themselves, or whether the [[desiring-production]] of [[affect]]s imposes its rule on [[institution]]s whose [[element]]s are no longer anything but [[drive]]s...
[[social production]] and [[relations of production]] are an institution of desire, and... [[affect]]s or [[drive]]s form part of the infrastructure itself. For they are part of it, they are present there in every way while creating within the economic forms their own [[repress]]ion, as well as the means for breaking this repression.
[[AO61]]
Given the [[syntheses]] of the [[unconscious]], the practical [[problem]] is that of their use, legitimate or not, and of the [[condition]]s that define a use of [[synthesis]] as legitimate or not...
inasmuch as [[reading]] itself has its [[degree]]s of humor, from black to white, with which it evaluates the coexisting degrees of what it reads, the sole problem is always one of [[allocation]] on a [[scale]] of [[intensity]]s that [[assign]]s the [[position]] and use of each thing, each being, or each scene. There is this and then that, and let's make do with it, too bad if it doesn't suit us.
[[AO63]]
[[molar]] and [[molecular]] are mentioned for the first time, alongside [[Proust]]. [[AO68]]
[[producing]], a [[product]]: a [[producing/product]] [[identity]]. It is this identity that constitutes a third term in the [[linear]] [[series]]: an enormous un[[differentiate]]d [[object]]. Everything stops [[dead]] for a moment, everything freezes in place-and then the whole [[process]] will begin all over again. From a certain [[point of view]] it would be much better if nothing worked, if nothing functioned... Will [7] the [[machine]]s run so badly, their [[component]] pieces fall apart to such a [[point]] that they will return to nothingness and thus allow us to return to nothingness? It would seem, however, that the [[flow]]s of [[energy]] are still too closely [[connect]]ed, the [[partial object]]s still too [[organic]], for this to happen. What would be required is a [[pure]] [[fluid]] in a free [[state]], [[flow]]ing without [[interrupt]]ion, [[stream]]ing over the [[surface]] of a [[full body]]. [[desiring-machine]]s make us an [[organism]].; but at the very heart of this [[production]], within the very [[production of production]] the [[body]] suffers from being [[organize]]d in this way, from not having some other sort of [[organization]], or no [[organ]]ization at all... The [[automata]] stop dead and set free the unorganized mass they once served to [[articulate]]. The full [[body without organs]] is the unproductive, the sterile, the unengendered, the unconsumable... The [[death instinct]], that is its name, and [[death]] is not without a model. For [[desire]] desires death also, because the full body of death is its [[motor]], just as it desires [[life]], because the organs of life are the working [[machine]]...
Desiring machines work only when they break down... The bwo is nonproductive; nonetheless it is produced, at a certain place and a certain time in the [[connective synthesis]], as the [[identity]] of [[producing]] and the [[product]]; the schizophrenic table is a bwo. The bwo is not the proof of an original nothingness, nor is it what remains of a [[lost]] [[total]]ity, Above all, it is not a [[projection]]; it has nothing whatsoever to do with the body itself, or with an [[[image]] of the body. It is the body without an image. This imageless, organless body, the nonproductive, exists right there where it is reinserted in the third [[stage]] of the [[binary]]-[[linear]] [[series]]. It is perpetually reinserted into the [[process of production]]... The full bwo belongs to the realm of [[antiproduction]]; but yet another characteristic of the the [[connective]] or [[productive synthesis]] is the fact that it [[couple]]s production with antiproduction, with an [[element]] of antiproduction.
[[AO6/7]]
...two uses of the [[connective synthesis]]: a [[global]] and [[specific]] use, and a [[partial]] and [[nonspecific]] [[use]]. In the first, [[desire]] at the same time receives a [[fixed]] [[subject]], an [[ego]] specified according to a given [[sex]], and complete [[object]]s defined as global persons.... It is first of all the [[synthesis of recording]] that in effect situates, on its [[surface of inscription]] within the conditions of [[Oedipus]], a definable and differentiatable ego in relation to parental [[image]]s serving as [[coordinate]]s (mother, father)... A strange sort of reasoning leads one to conclude that since IT is forbidden, that very thing is desired. In reality, global persons-even the very form of persons-do not exist prior to the [[prohibition]s that weigh on them and constitute them... desire receives its fist complete objects and is forbidden them at one and the same time
[[exclusive]]
[[AO69]]
We can therefore see the property the [[prohibition]] has of [[displace]]ing itself, since from the start it displaces desire. It displaces itself in the sense that the [[Oedipal]] [[inscription]] does not force its way into the [[synthesis of recording]] without reacting on the [[synthesis of production]], and profoundly changing the [[connect]]ions of this [[synthesis]] by introducing the new [[global]] [[person]]s.
Thus hte parental or familial use of the synth of record extends into a [[conjugal]] use or an [[alliance]] use, of the connec synth of prod: a [[regime]] for the pairing of people replaces the connection of [[partial object]]s. On the whole, the connections of [[organ-machine]]s suited to [[desiring-production]] give way to a [[pair]]ing of people under the rules of familial reproduction. Partial objects now seem to be taken from people, rather than from the [nonpersonal]] [[flow]]s that pass from one person to another. The reason is that persons are derived from [[abstract quantity]]s, instead of from flows. Instead of a connective appropriation, p-o's become the possessions of a person and, when required, the property of another person.
[[AO70]]
It is true that the [[connection]]s of [[desiring-production]] were found to comply with a [[binary]] [[rule]]: and we have seen that a third [[term]] intervened in this binarity, the [[body without organs]] that reinjects [[producing]] into the [[product]], extends the connections of [[machine]]s, and serves as a [[surface of recording]]. But here no [[biunivocal]] process]] is in fact produced that would fit this production into the [[mold]] of representatives' no [[triangulation]] appears at this [[level] ]that would refer [[object]]s of [[desire]] to [[global]] [[person]]s, or desire to specific [[subject]]. Th only subject is desire itself on the Bwo, inasmuch as it [[machine]]s [[partial object]]s and [[flow]]s, [[select]]ing and [[cut]]ting the one with the other, passing from one [[body]] to another, following connections and [[appropriation]]s that each time destroy the factitious [[unity]] of a [[possessive]] or proprietary [[ego]] ([[anoedipal]] [[sexuality]]).
Consequently, everything is played out from the start: everywhere we encounter the analytic [[process]] that consists in [[extrapolate]]ing a [[transcendent]] and [[common]] something, but that is a common-[[universal]] for the sole purpose of introducing [[lack]] into [[desire]], in situating and specifying [[person]]s and an [[ego]] under one aspect or another of its absence, and imposing an [[exclusive]] [[direction]] on the [[disjunction]] of the sexes.
[[AO71]]
It is as if the so-called [[signifying chain]], made up of [[element]]s that are themselves [[nonsignifying]]--of [[polyvocal]] [[writing]] and [[detach]]able [[fragment]]s-were the object of a special [[treatment]], a [[crush]]ing [[operation]] that extracted a [[detach]]ed [[object]] from the [[chain]], a [[despot]]ic [[signifier]] from whose [[law]] the entire [[chain]] seems consequently suspended, each link [[triangulate]]d. There we have a curious [[paralogism]] implying a [[transcendent]] use of the [[syntheses]] of the [[unconscious]]: we [[pass]] from [[detach]]able [[partial object]]s to the detached [[complete]] object, from which [[global]] [[person]]s derive by an [[assign]]ing of [[lack]].
[[asignifying]]
[[libidon]] as [[energy]] of [[select]]ion and detachment...
the [[projection]] of all [[break]]-[[flow]]s onto the same mythical locale, and all the [[nonsignifying]] [[sign]]s into the same [[major]] signifier.
[[Guattari]] [[abstraction]]
[[AO72]]
When [[Oedipus]] slips into the [[disjunctive synthesis]] of desiring-recodning, it imposes the ideal of a certain restrictive or [[exclusive]] use on them that becomes identical with the form of triangulation... "being parent or child" is also accompanied by two other [[differentiation]]s on the other sides of the [[triangle]], "being man or woman," and "being dead or alive"... The familial triangulation represents the minimum condition under which an "ego" takes on the [[coordinate]]s that differentiate it at one and the same time...
[[AO73]]
The action characteristic of [[Oedipal]] [[record]]ing is the introduction of an [[exclusive]], [[restrictive]], and [[negative]] use of the [[disjunctive synthesis]]... A disjunction that remains disjunctive and still [[affirm]]s the disjoined terms, that affirms them throughout their entire [[distance]], without restricting one by the other or excluding the other from the one, is perhaps the greatest [[paradox]]. "either...or...or," instead of "either/or."
..The [[schizo]] is dead or alive, not both at once, but each of the two as the [[terminal]] [[point]] of a [[distance]] over which he glides. He is child or parent, not both, but the one at the end of the other, like the two ends of stick in[[nondecomposable]] [[space]]. This is the [[meaning]] of the disjunctions... everything [[divide]]s, but into itself. Even the [[distance]]s are [[positive]], at the same time as the included disjunctions.
[[AO75]]
...for the [[exclusive]] and [[restrict]]ive use of the [[disjunctive synthesis]], he substitutes an [[affirmative]] use. He is and remains in [[disjuncition]]: he does not abolish disjunction by identifying the contradictory [[element]]s by means of elaboration; instead, he affirms it through a continuous overflight spanning an [[indivisible]] [[distance]]... [77] He does not reduce two contraries to an [[identity]] of the [[same]]; he [[]affirm]]s their distance as that which relates the two as [[different]]. He does not confine himself inside contradictions; on the contrary, he opens out and, like a [[spore]] case infected with spores, releases them as so many [[singularity]]s that he had improperly shut off, some of which he intended to [[exclude]], while retaining others, but which now become [[points-signs]], all affirmed by their new distance. The disjunction, being now inclusive, does not closet itself inside its own terms. On the contrary it is [[nonrestrictive]]... an [[event]] that will [[liberate]] a space where [names] no longer designate persons, but singularities flocking from all sides, evanescent [[agent]]s of [[production]]. This is [free]] disjunction: the [[differential]] positions persist in their entirety, they even take on a free [[quality]], but they are all inhabited by a faceless and transpositional subject. [[Schreber]] is man and women, parent and child, dead and alive: which is to say, he is situated wherever there is a singularity, in all the [[series]] and in all the [[branches]] marked by a [[singular]] [[point]], because he is himself this distance that [[transform]]s him into a woman.
...an inclusive disjunction that carries out the [[synthesis]] itself in [[drift]]ing from one term to another and following the distance between terms.
No [[problem]] of [[meaning]], [78] but only of usage. Nothing original ro derived, but a generalized [[drift]]. [[deterritorialize]]ation
[[AO76]]
..the [[schizo]] [[liberate]]s a raw [[genealogy]]cal [[material]], [[nonrestrictive]], where he can [[situate]] himself, [[record]], himself, and take his bearings in all the [[branch]]es at once, on all sides... Through [[graduate]]d relationships he performs [[absolute]] overflights spanning [[indivisible]] [[distance]]s... on the unengendered body [ [[body without organs]] ] the [[nondecomposable]] distances are necessarily surveyed, while the disjoined terms are all [[affirm]]ed.
In [[exclusive]] disjunctions, parental appellations no longer designate [[intensive]] [[state]]s through which the [[subject]] passes on the Bwo and in the [[unconscious]] remains an [[orphan]]: rather, they designate [[global]] [[person]]s who do not exist prior to the [[prohibition]]s that found them, and they [[differentiate]] among these [[global]] persons and in relation to the [[ego]].
[[AO76/77]]
[[summary]] [[review]] of the [[body without organs]],
...the [[distribution]] of [[field]]-[[gradient]]-[[threshold]]...
[85] ...if everything commingles in this fashion it does so in [[intensity]], with no confusion of [[space]]s and [[form]]s, since these indeed have been undone on behalf of a new [[order]]: the [[intense]] and [[intensive]] order.
...[[individuation]]s are [[produce]]d only within [[field]]s of [[force]]s [[express]]ly defined by [[intensive]] [[vibration]]s, and that animate cruel personages only in so far as they are [[induce]]d [[organ]]s, [[part]]s of [[desiring-machine]]s
[[AO79]]
prev page dicussess [[history]], [[proper name]]s and [[individuation]] on the [[body without organs]]
...now the [[real]] is a [[product]] that [[envelop]]s the [[distance]]s within [[intensive]] [[quantity]]s. THe [[indivisble]] is enveloped, and [[signify]]s that what envelops it does not [[divide]] without changing its [[nature]] or [[form]]. [[nondecomposable]] [[multiplicity]]s. The [[schizo]] has no [[principle]]s: he is something only be being something else.
[[AO84/85]]
There is no [[ego]] at the [[center]], any more thant here are [[person]]s [[distribute]]d on the [[periphery]]. Nothing but a [[series]] of [[singularity]]s in the [[disjunctive]] [[network]], or [[intensive]] [[state]]s in the [[conjunctive]] [[tissue]], and a transpositional [[subject]] moving full [[circle]], passing through all the states...
[[AO87]]
An apparent conflict arises between [[desiring-machine]]s and the [[body without organs]]. Every [[coupling]] of [[machine]]s, every [[production]] of a machine, every sound of a machine running, becomes unbearable to the bwo... to resist [[organ-machine]]s, the bwo presents its smooth, slippery, opaque, taut, [[surface]] as a [[barrier]]. In order to resist [[link]]ed, [[connect]]ed, and [[interrupt]]ed [[flow]]s, it sets up a counter flow of amorphous, [[undifferentiated]] [[fluid]]... [[primary repression]] means... this repulsion of desiring-machines by the bwo. This is the real meaning off the [[paranoiac machine]] [the above repulsion]...in and of itself the paranoiac machine is merely an [[avatar]] of the desiring machines; it is a result of the relationship between the desiring-machines and the bwo, and occurs when the latter can no longer tolerate these machines.
[[AO7/8]]
the [[parent]]al [[figure]]s are [[indifferent]] [[inductor]]s and that the true [[organizer]] is elsewhere-on the side of what is [[induced]], not on that of the [[inductor]].
[[network]] [[mediator]]
[[AO88]]
If the living being resembles the [[world]], this is true... insofar as it opens itself to the opening of the world; if it is a [[whole]], this is true to the extent that the whole, of the world as of the living being, is aways in the [[process]] of [[becoming]], [[develop]]ing, coming into being or advancing, and [[inscribe]]ing itself withing a [[temporal]] [[dimension]] that is irreducible and nonclosed.
[[AO92]]
This [[new barbarism]] as generalized consumerism and venality no longer takes any care of the world in which consumers and speculators must nevertheless live
[[AoD p25-1]]
It is impossible to live in a society without positive [[collective]] [[protention]]s, but the the latter are the outcome of [[intergenerational]] and [[transgenerational]] transmission. Such protentions-which belong to what the [[Greek]]s in the age of hesiod called [[elpis]] (EAnic), a word tha means expectation-are the boundaries and boundary markers of the care that must be taken of the [[world]] (KOOUOC)
Inhabited by this unsettling being that is th human, this KOOUC is always exposed to hubris (UBPIC), collective protentions of which open a 'general economy' in [[Bataille]]'s sense of the notion, conceived in a fundamental relationship to [[sacrifice]]-through being inscribed into [[calendarities]] and [[cardinalities]], each time specific...
[[AoD p9-1]]
[[digitalization]] as the [[convergence]] of telecommunications, the audiovisual and computing, a convergence that leads to [[reticulated]], [[automatic]] [[society]]
[[AoD p11-1]]
In a purely [[computational]] context, [[individual]] as well as [[collective]] [[protention]]s fade away... nobody seems capable of producing [[intergenerational]] and [[transgenerational]] collective protentions.
[[digital native]]s live among older generations rather than with, 'since to live, for a [[noetic]] soul, is to exist by sharing ends, that is, collectively projecting [[dream]]s, [[desire]]s, and [[will]]s.' We are all thrown into and thrown out by the [[epoch]] of the [[absence of epoch]]
[[AoD p11-2]]
[[epoch]], [[epokhe]] as 'an arrest, an interruption, a suspension of judgement, a state of doubt.' Is our constant changing, inability to be stopped in time, the [[absence of epoch]]?
[[AoD p12-1]]
A change in [[technical system]] disrupts the [[social system]]... the new [[epoch]] emerges... on the basis of precursors reconfiguring the [[retention]]s inherited from the earlier epoch into so many new kinds of [[protention]].
An epoch is always a specific configuration of the [[libidinal economy]], organized around the ensemble of [[tertiary retention]]s (the technical supports of [[collective retention]]) that form, through arrangement, a new technical system, which is always a retentional system. A libidinal economy is an economy of [[desire]] insofar as it is always both [[collective]] and [[individual]]. Desire is structured by a field of [[protention]]s that one inherits and then projects in a [[singular]] way, on the basis of collective [[retention]]s transmitted by the [[intergenerational]] [[play]] regulated by...
[[AoD p12-2]]
[[tertiary retention]]s are forgotten, like water for a fish. in [[intergenerational]] processes of transmission, they condition relations between psychic [[individual]]s and through them, between [[collective]] individuals. mother/child adult/adult, adolescent/social [[milieu]], us/new generations, between generations, etc.
Todays role of [[digital]] tertiary retentions in intergenerational (non)relations, and the (non)formation of collective [[retentions]] and [[protention]]s... is both perfectly obvious and escapes comprehension... Far from adjusting the [[social system]]s by reshaping them to suit a new [[epoch]], the [[technical system]] short-circuits them. and destroys them.
[[AoD p13/14-1]]
A new epoch brings new work-knowledge, savoir-faire and life-knowledge, savoir-vivre. This only happens after the technological [[epokhe]] has taken place.
An [[epoch]] always occurs through a [[doubly epokhal redoubling]]
Double because it always occurs in two stages-on the one hand, the technological epokhe; on the other, the epokhe of knowledge as forms of life and thought, the constitution of a new [[transindividuation]]
redoubling because, starting from already there forms of [[technic]]s and [[time]] that are constituted as the epoch, a new [[technical]] reality and a new historical reality ([[historial]]) redoubles and through that relegates to the past that which has engendered it, which seems precisely to be the past.
epokhal because it is only as an interruption inaugurating a recommencement and a new current present that this double redoubling occurs, eventually by firmly establishing itself as what we call an epoch.
[[Aod p14-1]]
The [[disruption]] that is the [[digital]] [[technical system]] is one such [[epokhe]], disruption is one such suspension of all previous ways of thinking... it gives absolutely no place to the second moment, nor therefore to any thinking: it gives rise only to an absolute emptiness of thought...
In the midst of disruption, the second stage of the [[doubly epokhal redoubling]] fails to occur: there is no [[transindividuation]]... behaviors as ways of living are being replaced by [[automatism]]s and [[addiction]]s. At hte same time, [[intergenerational]] and [[transgenerational]] relations are unravelling: transmission of knowledge has been prevented, and there are no [[protention]]s of [[desire]]s that would be capable of brining about a growth of transgenerational experience
[[AoD p14/15-1]]
An [[epoch]] is what enables [[collective protention]]s to be established through the constitution of new [[circuit]]s of [[transindividuation]]... Circuits emerge through [affect]]ive relations of various kinds...
[[AoD p15-1]]
Our past is not only our own... it is formed from [[collective]] [[secondary retention]]s
Our past is inscribed in the world... these collective retentions are made possible by [[tertiary retention]]s
[[AoD p15/16-1]]
The two retentions of the prior tiddler allow us to share, if not common [[dream]]s, then a common [[horizon]] of all dreaming, together..."Such sharing constitutes the background or the grounds of an [[epoch]]... [[digital]] [[tertiary retention]], however, which constitutes the [[digital]] [[technical system]], is disruptive of this sharing... societies of [[hyper-control]].
[[AoD p17/18-]]
...the current [[disruption]] produces... a diseconomy of sharing, that is, a destruction of those who share by the means of what they share.
[[AoD p18-1]]
Today there is an absence of that horizon, nothing expected of our [[becoming]] other than the end. "precisely no longer any future-a negative [[protention]] that is the absence of protention within an [[absence of epoch]] [[epoch]]
[[AoD p18-2]]
This deprivation of [[protention]] comes about from a deprivation of the possibilities of identification and idealization that precede it, and it participates directly in the [[new barbarism]] installed by the culture industries.... Canal J, a television network aimed at children, tries to eject parents and grandparents from the adolescent [[process]] of [[becoming]] adult.... the Baby First Channel, and television aimed at very young children, destroys transitional space and the processes of primary identification
[[AoD p19-1]]
[[disruption]] "is sending us mad-mad with sadness, mad with grief, mad with rage...
The liquidation of [[protention]]s occurs in a structural way [p7], [[psychic]] and [[collective protention]]s are being replaced by purely [[computational]] [[automatic]] [[protention]]]s, eliminating the unhoped for... attenuating every form of [[desire]] (if desire... is always desire for the [[singular]], for the unexpected but awaited improbable.)
This liquidation equally attenuates every kind of [[will]], that is, all power to [[bifurcate]] on the basis of knowledge derived from previous bifurcations.
inasmuch as it always calls for an inscription into a more broadly shared [[protention]], protention is always bound to a structure which is that of a promise, and as such to a mutual engagement that infinitely exceeds the [[psychic]] [[individual]].
[[AoD p19-2]]
[[primary retention]] and [[secondary retention]]s are psychic realities, the first belonging to the present time of [[perception]] and the second to the past time of memory. [[tertiary retention]]s are artificial retentions, not [[psychic]] but [[technical]].
[[AoD p20-2]]
We live in the age of [[industrial temporal object]]s, and this page carries on looking at those and their effects
[[AoD p22-1]]
A discussion of how contemporary mass produced analogue [[tertiary retention]]s lead to a narrowing of [[secondary retention]], and thereby narrowing the opportunities for [[primary retention]]s. The [[question]] of this page: What happens to humans when you have billions of us watching the same [[television]], subject to the same [[marketing]], viewing the same massified [[media]]. It also shows how this all short-circuits [[collective protention]]s. A great page. [[summary]].
[[AoD p22-2]]
The analysis of the last tiddler leads to "the elimination of individual and collective [[protention]]s. These are replaced by [[automatic protention]]s derived from the [[automatic]] analysis of the [[retention]]s self-produced by [[internet]] users, and decomposed through a [[process]] of the automated [[dividuation]] of the digital [[trace]]s produced by everyone... the [[data economy]] comes to replace the industry of cultural goods." Unlike the mass production of analogue tertiary retentions, "psychic individuals are themselves the producers of digital [[tertiary retention]]s... reticulated digital tertiary retention, then, gives the [[appearance]] of being essentially participatory, collaborative, and contributory."
These are then worked over algorithmically, [p26 now] the [[disruption]] systematically explored and exploited by the new reticulation industry has in fact created a new, subtler stage of massification... of the [[absence of epoch]], giving rise to a [[new barbarism]], and doing so by creating a point of rupture, a breaking [[point]].
[[AoD p23-1]]
We should try to think... what is happening everywhere as so many abominable confirmations of the words, spoken by Florian...
We must pursue a deeper understanding of what occurs in a general way with the destruction of psychic and collective [[retention]]s and [[protention]]s... the desctruction of all diachronies, all [[singularity]]s, all [[desire]]s inasmuch as they constitute the [[negentropic]] capabilities of [[non-inhuman being]] qua [[Neganthropos]]."
In losing this we lose [[reason]], and we descend into [[madness]]
[[AoD 26-1]]
When we feel uneasy in front of a wasteland, a room in disarray, a depressed economic zone, what grips hold of us is [[anthropy]]. But it is a [[neganthropic]] promise that we feel when, crossing the threshold to enter a home, we encounter [[trace]]s of everydayness unlike any other.
[[AoD p27-1]]
A library is a collection of [[neganthropic]] [[potentiality]]
[[AoD p27-2]]
Because it is [[primordially]] [[exosaomatic]], [[organological]], and [[pharmacological]], [[Neganthropos]] bears within it the possibility of the [[inhuman] (which [[Heraclitus]] called injustice AOIKIA). as the condition of its being [[non-inhuman]]-the condition, in this sense, of its surpassing.
[[AoD p27-3]]
Another name for [[new barbarism]]: [[postmodernity]]
[[AoD p28-1]]
Social groups struck by [[collective]] [[disindividuation]] are, and will increasingly be, prone to losing every [[reason]] for living, hence to losing the very notion of reason qua [[convergence]] of [[protention]]s-and to losing the notion of the value of life itself...
this form of [[madness]]... is expressed above all by [[suicide]]
[[AoD p29-1]]
It is always possible for the [[primordial narcissism]] of the we to become pathological, and to generate [[collective]] [[neurotic]] or [[psychotic]] forms of [[regression]] or [[disintegration]]-which the [[ressentiment]] of the average man is often a harbinger.
[[AoD p29-2]]
"...what could have been going through the minds of these children and their parents deprived of just about everything, confronted with the [[image]]s of showbiz politics, with the omnipresent [[advertising]] and with the rapid rise of trash TV."
In our '[[epoch]]', which should be understood as the fulfillment of the [[new barbarism]] anticipated by [[Adorno]] and [[Horkheimer]], what is occurring amounts to a murderous [[dis-articulation]] of the [[I]] and the [[we]]... This epoch has shown itself for what it is the [[epoch]] of the [[absence]] of epoch...
[[AoD p4]]
the [[process]]es of [[psychic]] and [[collective individuation]] characteristic of the life of the mind and spirit have slowly but surely been wiped out by the [[culture industry]], now exclusively operating in the services of the market and the organization of [[consumption]].
[[Durn]], the mass shooter, had written of having 'lost the feeling of existing...' I argued that Durn had been stripped of his [[primordial narcissism]] by a [[process]] of the same kind as that implemented by the industry of cultural goods, which according to [[Adork]], destroys what [[Kant]] called the [[transcendental imagination]].
[[AoD p5-1]]
The destruction of [[primordial narcissism]] leads to [[madness]], that is, to the loss of [[reason]], and, more precisely, to the loss of this reason for living that creates and gives the feeling of existing...
inset quote: If we do not enact an ecological critique of the technologies and industries of the spirit, if we do not show that the unlimited exploitation of spirits as markets leads to a ruin comparably [to the exploitation of] territories or natural resources... we move ineluctably toward a global social explosion...
Today, this explosion is [[imminent]]. All of us now know and fear it, but also repress and deny it, and we do so in order to keep living with dignity. This is something that can no longer be repressed: in the stage we have now entered, this becomes, precisely, indignity, and literally cowardly.
[[AoD p5-2]]
A move from [[analogue]] to [[digital]] communications prepared the way for a [[reticular]] society. It introduces the concept of [[algorithmic governmentality]]. What is new is the systematic [[exploitation]] and physical [[reticulation]] of [[interindividual]] and [[transindividual]] relations-serving the [[data economy]], based on data-intensive computing, or [[big data]]. The full realization of [[Adork]]s [[new barbarism]]... they never imagined how far it would extend on the [[noetic]] plane
[[AoD p5/6-1]]
[[disruption]] as the [[process]] by which [[automatic]] power of [[reticulated]] [[disintegration]] that extends across the face of the earth. [[example]]s and [[schizo flows]] abound. an [[automatic nihilism]]
"individuals and groups are thus transformed into [[data]]-providers, de-formed and re-formed by social networks... they find themselves disindividuated... their own data, [[retention]]s, enables them to be dispossessed of their own [[protention]]s-that is, their own [[desire]]s, expectations, volitions, [[will]] and so on.
Footnotes. 2x: retentions are what one retains, as such they form memories
protentions are expectations in all their forms,. Algorithms enable psychic protentions to be shirt-circuited, and replaced with automatic protentions.
[[AoD p7]]
[[disruption]] moves quicker than any [[will]], whether [[individual]] or [[collective]]... [we] recognize this only after the fact: always too late. Disruption renders will... obsolete in advance... losing the very possibility of existing (for existence depends on being able to [[express]] [[will]]). we lose all reason for living, [[become]] literally [[mad]], despising all life, of ours and that of others.
[[AoD p7-2]]
...the end of all [[protention]], that is, the end of all [[dream]]s, and any possibiltiy fo realizing them... an absolute negative protention: the complete disappearance of mankind
[[AoD p8-1]]
[[terrorism]] [[universal]] and of course, [[impossible exchange]]
[[AoP p51-1]]
Absorbing the [[negative]] continues to be the problem. When the emancipated [[slave]] internalizes the [[master, the work of the negative is abolished. [[domination]] [[become]]s [[hegemony]]. [[power]] can show itself positively and overtly in good conscience and complete self-evidence. It is unquestionable and [[global]]. But the [[game]] is not over yet. For while the slave [[internal]]izes the master, power also internalizes the slave who denies it, and it denies itself in the [process]]. Negativity reemerges as [[irony]], mocking and auto-liquidation [[internal]] to power. This is how the slave devours and cannibalizes the Master from the inside. As power absorbs the negative, it is devoured by what it absorbs. There is justice in [[reversibility]].
[[AoP 55-1]]
Having lost its rational principle, the principle of [[value]], [[exchange]] becomes [[total]] just as [[reality]], having lost its reality principle, becomes [[total reality]]. It may be hte [[fatal]] destination of [[capital]] to go to the end of exchange-toward a [[consumption]] of reality. In any case, we are bound for this generalized exchange, this frenetic [[communication]] and [[information]] that is the [[sign]] of [[hegemony]].
[[AoP p60-2]]
[[pure]] [[code]] value [[represent]]s the face that [[structure]]s are [[decode]]d in [[relation]] to one another. [[flow]]s [[translate]] this decoding.
[[Anti Oedipus Papers]]
In order to grasp how [[global]]ization and global [[antagonism]] works, we should distinguish carefully between [[domination]] and [[hegemony]]. One could say hegemony is the ultimate [[stage]] of domination and its terminal [[phase]]. Domination is characterized by the master/slave [[relation]], which is still a [[dual]] relation with [[potential]] [[alienation]], a relationship of [[force]] and [[conflict]]s. It has a violent history of [[oppression]] and [[liberation]]. There are the dominators and the dominated-it remains a [[symbolic]] relationship. Everything changes with the emancipation of the slave and the internalization of the master by the emancipated slave. Hegemony begins here in the [[disappearance]] of the dual, personal, [[antagonistic]] domination for the sake of [[integral reality]]-the [[reality]] of the [[network]], of the [[virtual]] and [[total exchange]] where there are no longer dominators or dominated..
A [[hegemony]] of world [[power]] is no longer a [[dual]], personal or real [[form]] of [[domination]], but the [[domination]] of [[network]]s, of [[calculation]], and integral [[exchange]].
[[AoP p33-1]]
What other feature distinguishes [[hegemony]] from pure and simple [[domination]] is the coming of a fundamental [[event]]: [[simulacra]] and [[simulation]].
[[liquidation]]
[[AoP p34-1]]
[[domination]] and [[hegemony]] are separated by the [[liquidation]] of [[reality]], the super fast irruption of late, of a global principle of [[simulation]], a global hold by the [[virtual]]. Globalization is the hegemony of global power and can only occur in the framework of the virtual and the [[network]]s-with the homogeneity that comes from [[sign]]s emptied from their [[substance]].
The entire [[western]] [[masquerade]] relies on the [[cannibal]]ization of [[reality]] by [[sign]]s, or of a [[culture]] by itself. I use "cannibalize" here in the derivative sense of cannibalizing a car, using it a spare parts. Cannibalizing a culture, as we do it today, means tinkering with its [[value]]s like spare parts inasmuch as the entire [[system]] is out of order. This distinction [[between]] [[domination]] and [[hegemony]] is crucial... goes on to talk about potentials for resistance and [[evolution]]
[[AoP p35-1]]
Caught in a vast Stockholm syndrome, the alienated, the oppressed, the colonized are siding with the [[system]] that holds them [[hostage]]. They are now "annexed," in the literal sense, [[prison]]ers of the "nexus," of the [[network]], connected for better or worse.
[[AoP p36-1]]
There's a relationship between [[Baudrillard]] describing [[evil]] denouncing evil and its effects of unveiling an 'open [[secret]]', and [[Deleuze]] and [[Guattari]]'s idea of [[becoming-molecular]] and [[becoming-imperceptible]]
[[AoP p37-1]]
..a specific product of a disenchanted situation of loss where everything that [[disappear]]s is is [[artificial]]ly revived...
[[AoP p39/40-1]]
Three simultaneous [[dimension]]s form the [[passage]] from [[domination]] to [[hegemony]]. It is aperilous triple [[jump]], a three-part [[sacrifice]]:
1). [[capital]] surpases itself and turns against itself in the sacrifice of [[value]] (the economic [[illusion]]).
2). [[power]] tirns against itself in the sacrifice of [[representation]] (the democratic illusion).
3). The entire [[system]] turns gainst itself int he sacrifice of [[reality]] (the [[metaphysical]] illusion)
[[AoP p40-1]]
[[capital]] is both the total realization of [[value]] and its [[liquidation]]. [[power]] is now the final [[form]] of [[representation]]: it only [[represent]]s itself. The [[system]] is the total version of the [[real]] and at the same time its liquidation through the [[cirtual]]. This is the [[hegemonic]] [[form]].
[[AoP p41-1]]
Or do we consider that it is no longer [[capital]] at all but something radically different, an [[exchange]] that is not only [[general]] but [[total]]-completely freed from [[value]] and markets-an exchange that, having lost its rational principle, the principle of value, becomes [[integral]] just as [[reality]], [[become]]s [[integral reality]], from which there is no salvation?
[[AoP p42-1]]
Develops his idea of [[total exchange]] and has predictions for the future of [[hegemony]] and the [[internet]]
"It is all free, "liberally" deployed without economic constraints, beyond markets, in a frenzy of total [[communication]]. This is a [[virtual]] [[catastrophe... the [[ecstasy]] of (free, secular and obligatory) communication...
[[AoP p43-1]]
Not that a country or a people has the leaders it deserves but that the leaders are an emanation of [[global]] [[power]]. The political [[structure]]
of the [[United States]] is in direct [[correlation]] to its global [[domination]].
[[AoP p44-1]]
...(if the refusal to [[dominate]] had the same [[violence]] and the same [[energy]] as the refusal to be dominated, the dream of revolution would have disappeared long ago).
[[AoP p47-1]]
In [[simulation]] you move beyond true and false through [[parody]], [[masquerade]], derision to form an immense [[enterprise]] of [[deterrence]]. Deterrence from every historical reference, from all reality in the [[passage]] into signs This [[strategy]] of destabilization, of discrediting, of divestment from [[reality]] in the form of parody
[[AoP p47/48-1]]
The most serious forms of self-denial... is the denial of [[reality]]. This immense enterprise of [[deterrence]] from every historical [[reference]], this [[strategy]] of discrediting, of divesting from reality in the [[form]] of parody, mockery, or [[masquerade]], [[become]]s the very principle of government. The new strategy-and it is truly a [[mutation]]-is the self-immolation of value, of every [[system]] of value, of self-denial, indifferentiation, rejection and nullity as the triumphant command.
[[AoP p48-1]]
What does the [[universal]] mean in the eyes of [[immigrant]]s, populations left fallow, entire [[zone]]s left fallow, entire zones of fracture and [[exclusion]] in out own "overdeveloped" societies? And even in the privileged fringe, the high-tech globality, what does the universal mean for all the "corporate people," all the high performance groups or [[individual]s according to both a global and increasingly [[corporate]], isolationist, protectionist [[evolution]]?
[[AoP p50-1]]
After voluntary servitude, which was the [[secret]] key to exercising [[domination]], one could now speak instead of involuntary complicity, consensus and connivance with the World Order, by everything that seems to oppose it. [[image]]s, even radical-critical ones, are still a part of the [[crime]] they denounce, albeit an involuntary one...
all critical negativity, all the work of the negative is abolished, devoured by [[sign]]s and [[simulacra]]... this new [[hegemonic]] configuration (which is no longer the configuration of [[capitalism]] at all) has itself absorbed the [[negative]] and used it for a leap forward...
[[Baudrillard]] and his love of the excess of the [[good]], the overflow of positivity that damns us all
[[Mbembe]]
[[AoP 59-1]]
The [[absolute]] [[negative]] ([[terrorism]], internal [[deterrence]]) responds to the absolute [[positive]] of positivized [[power]]. When [[domination]] becomes [[hegemony]], negativity becomes terrorism.
[[AoP p60-1]]
It is the [[immanent]] [[justice]] of the [[media]]. You want the [[power]] of the [[image]]? Then you will [[die]] through [[replay]]. The [[carnival]] of the [[image]] is also (self) [[cannibal]]ization through the image.
[[AoP 63-1]]
This global [[masquerade]] of [[power]] passes through several phases... its quintessence relies on the hold of [[simulation]], an [[operation]]al simulation of every [[value]], of every [[culture]]-that is where [[hegemony]] today asserts itself.
[[AoP p64-1]]
...Western civilization also had a motive for [[revenge]]. It had to take revenge on others for the loss of its own [[value]]s (many people underestimate the fierce jealousy mixed with [[nostalgia]] of a [[disenchant]]ed [[culture]] for all [[singular]] cultures).And it continues to do so in the context of globalization which, at bottom, beyond its [[technical]] [[operation]], is a giant project meant to [[symbolic]]ally [[liquidate]] all values though consensus or force.
After the sacrifice of value, after the [[sacrifice]] of [[reality]], the [[west]] is now characterized by the deliberate sacrifice of everything through which a human being keeps some value in his or her eyes.
Replace last paragraph, the word west with [[control societies]]. Exportation of control societies/contemporary [[colonialism]] as an anger, a revenge of the simulated-cultures on the rest of the world. [[Mbembe]]? Him and [[Baudrillard]] would've gotten along quite well. They do in this theory.
[[AoP p66-1]]
The most we can say is that the [[State]] [[apparatus]] tends to increasingly identify with the [[abstract machine]] it [[effectuate]]s...
[[ATP p223-1]]
[[power]] [[apparatus]]es are essentially [[ramify]]ed [[arborescent]] [[structure]]s.
[[ATP10 p8-1]]
Footnote, discussion of [[thought]]
[[ARTAUD Complete Works]]
[[larval selves]] 'I picture a [[soul]], worn down and as if changed...
[[AR1 p59/60-1]]
All the terms I choose to think with are TERMS for me in the proper [[sense]] of the [[word]], true endings, [[border]]ing my mental ( ) and all the [[state]]s of [[mind]] to which I have [[subject]]ed my [[thought]]s. I am truly LOCALIZED by my terms and if I say I am LOCALIZED by my [[term]]s, it means I do not acknowledge them as valid in my thought. I am really paralyzed by my terms, by a succession of endings. And WHEREVER my thoughts may be at such times, I can only bring them out through these terms, however contradictory to it, lateral or equivocal they may be, or pay the penalty and stop thinking at such times.
[[AR1 p70-1]]
[[people]] who leave the [[realm]] of the [[obscure]] in [[order]] to [[define]] whatever is going on in their [[mind]]s, are trash.
[[AR1 p74-1]]
[[power]] [[apparatus]]es are essentially [[ramify]]ed [[arborescent]] [[structure]]s.
[[ATP10 p8-1]]
The first articulation chooses or deducts, from unstable [[particle]]-[[flow]]s, [[metastable]] [[molecular]] or [[quasi]]-molecular units ([[substance]]s) upon which it imposes a statistical order of connections and successions ([[form]]s)
The second articulation establishes compact, stable [[structure]]s (forms) and constructs the [[molar]] compounds in which these structures are simultaneously actualized (substances).
Substance->form
Form->substance
[[noetic]] [[consciousness]]... is constituted by [[primary retention]]s that consciousness [[select]]s (without being conscious of doing so) at the time the experience occurs, selections made on the basis of the [[secondary retention]]s this consciousness contains-and that thereby constitute the [[criteria]] for these selections. The primary retentions resulting from this selection en[[code]] individually lived experience, and are formed through the accumulation of past experience-becoming in their turn secondary retentions.
The [[play]] between primary and secondary retentions generations [[protention]]s that are themselves primary and [[secondary protention]]s... [[primary protention]]s are tied tot he object of lived experience, so that, through [[habit]], reasoning, physiological automatisms, or through the [[knowledge]] that the perceiving subject accumulates about the object of [[perception]], such 'primarily retained' [[trait]]s result in 'primarily protended' traits, that is, expected and [[anticipate]]d traits-whether consciously or otherwise...
When noetic individuals live the time of an experience in which they select traits as primary retentions on the basis of secondary retentions, they at the same time and in return interpret these secondary retentions insofar as they [[form]] ensembles.
These [[ensemble]]s are charged with protentions derived from previous experiences. Some of these protentions are [[transindividuate]]d and [[transform]]ed into a common rule, that is, into habits and [[convention]]s of all kinds, [[metastable]]ized between the [[psychic individual]]s and the [[collective individual]]s associated with these experiences... Others, however, continue to await [[transindividuation]], that is, [[expression]]s and [[inscription]]s that continue the development of already-existing [[circuit]]s of transindividuation. For a psychic individual to [[interpret]], during a present experience, the [[ensemble]]s of secondary retentions that constitute her past experience is to make actual the protentions that these ensembles contain as [[potential]]
[[AS1 p107-1]]
[[society]]s... produce their normativity without necessarily being [[conscious]] of it
[[AS1 p69-1]]
...a [[social]] [[group]] cannot be formed without '[[fiction]]ing' (that is, [[dream]]ing) its [[past]] and [[future]] [[unity]].
[[AS1 139/141-1]]
...the [[psychic individual]], who [[individuate]]s only through a co-[[individuation]] with other [[individual]]s, who with him or her [[form]]-by [[disparate]]ion-[[collective individual]]s, engenders the [[transindividual]], which [[metastable]]izes itself beyond this diversity of psychic and collective individuals, and does so as [[social]] [[system]]s of every kind.
[[AS1 p143-1]]
[[social]] [[system]]s... constitute a social [[milieu]] that, through a [[feedback]] [[loop]], for each [[psychic individual]] becomes the [[pre-individual]] [[fund]]s or [[ground]] of its [[psychic]] and [[collective]] [[individuation]]. In this way the [[transindividual]] becomes, for the psychosocial [[individual]], a [[pre-individual]] charged with [[potential]], that is, destined for [[interpretation]] qua the funds of [[collective retention]]s and [[protention]]s [[transindividuate]]d according to [[rule]]s that are also the [[associate]]d milieu of the psychosocial individual-on the frame of which she inscribes motives to [[exist]] that constitutes his or her own psychic retentions and protentions.
[[AS1 p145-1]]
...as [[noetic]] [[individual]]s we are, in the first place, knowing [[being]]s, and there is no [[form]] of [[knowledge]] that is reducible to the processing of [[information]]. We are formed and trained- that is, [[individuate]]d-by our knowledge (of how to live, do, and conceptualize) insofar as these processes of [[collective]] [[individuation]] are subject to public [[rule]]s and for [[circuit]]s of [[transindividuation]] through [[bifurcation]]s... that dis-[[automatize]] the implementation of existing rules... knowledge is always [[bifurcating]] [[knowledge]]...
[[AS1 p145/146-1]]
all [[knowledge]] contains the [[possible]] of being dis-[[automatize]]d through the [[act]] of knowing, where this knowing [[interiorize]]s the [[automatism]]s in which this knowledge also [[consist]]s.
[[AS1 p147-1]]
There are [[process]]es of [[collective individuation]] that produce the [[transindividual]] in the course of a process of [[transindividuation]] (which [[Simondon]] does not theorize as such). The process of transindividuation does not coincide with collective individuation: collective individuation is what results from [[circuit]]s of transindividuation that are synthesized in one or more processes of collective individuation and which can and must traverse these collective individuals... there is no collective [[individuation]] without transindividuation, but the transindividual does not remain enclosed within collective individuals...
The transindividual is not a [[dream]] to come; it is on the contrary what results from the [[process]] by which [[protention]]s ([[desire]]s and also dreams) are [[real]]ized and sometimes de-realized...
[[AS1 p148-1]]
[[machinic]] [[retention]] therefore amounts to [[knowledge]] materialized //for// production, but no longer //by// it... [[work]] is above all, in all its [[form]]s ('manual' or 'intellectual'), a [[producer]] of [[retention]], to p[[produce]] is always in one way or another to [[organize]] the [[inorganic]], or to contribute to its organization. It is thus to form [[tertiary retention]]s that support the [[collective]] [[secondary retention]]s forming the [[circuit]]s of [[transindividuation]] through which the [[transindividual]] is [[metastable]]ized.
[[AS1 p152/3-1]]
[[digital]] tracking [[technology]]s are the most advanced [[stage]] of a [[process]] of [[grammitization]] that began at the end of the Upper Paleolithic... These [[trace]]s constitute [[hypomnesic]] [[tertiary retention]]s. Having become [[digital]], they are today generated by [[interface]]s, [[sensor]]s and other [[device]]s, in the form of [[binary]] [[number]]s and hence as [[calculable]] [[data]] forming the base of an [[automatic]] [[society]] in which every [[dimension]] of life becomes a functional agent for an industrial economy that thereby becomes thoroughly [[hyper-industrial]]...[that] is fully accomplished as the automatization of existences
[[AS1 p9-1]]
[[desire]] and its destruction is fully explained, but hard to reproduce as a tiddler...
[[AS1 p19/20-1]]
[[proletarianization]] is what constitutes an [[exteriorization]] without return, that is, without [[interiorization]] in return... the apparent [[paradox]] being that [[knowledge]] can be constituted only through its [[exteriorization]].
Then, as all exteriorization is functionally controlled by the demands of the market, we find ourselves in crises. 3 types, bottom of page
proletarianization of the mind, theory, concepts in the 21st century. [[consistence]]
[[sensibility]] and [[affect]] in the 20th [[existence]]
[[gesture]]s of the worker in the 19th century. [[subsistence]]
[[AS1 p20/24-1]]
After [[Socrates]], we know that [[hypomnesic]] [[tertiary retention]], of which [[alphabet]]ic [[writing]] is a case, tends to always [[replace]] what it 'amplifies' by substituting itself. This amplification opens up new possibilities of [[individuation]], and de-[[proletarianization]], constituting a [[therapy]] or [[therapeutic]]s in the second moment of the [[doubly epokhal redoubling]], of which the technological shock is the first moment.
All this results from the [[technical]] [[exteriorization]] that lies at the origin of [[hominization]], of human [[evolution]]...
the [[technical system]]: the [[organological]] [[level]] wherein [[artificial]] [[organ]]s form a [[system]]. He then shows how the current technical system destroys the social system.
[[AS1 p28-1]]
the [[proletarianization]] of [[gesture]]s of [[work]] (of producing works) amounts to the [[proletarianization]] of the conditions of the workers [[subsistence]]
The [[proletarianization]] of [[sensibility]] and the [[affect]]s and through that, the [[proletarianization]] of [[social]] [[relation]]s-which is thus being replaced by [[condition]]ing-amounts to the [[proletarianization]] of the [[condition]]s of the [[citizen]]'s [[existence]].
The [[proletarianization]] of [[mind]]s and [[spirit]]s, that is, of the [[noetic]] [[faculty]]s enabling theorization and deliberation, is the [[proletarianization]] of the conditions of [[consistence]] of the life of the rational [[spirit]] in general and of [[scientific]] life in general...
[[AS1 p29-1]]
[[tertiary retention]], whatever its [[form]] or [[material]] may be, [[artificial]]ly [[retain]]s something through the material and [[spatial]] copying of a [[mnesic]] and [[temporal]] [[element]] and thereby modifies-in a general way, that is, for all human [[experience]]-the [[relation]]s between the [[psychic retention]]s of [[perception]] that [[Husserl]] referred to as [[primary retention]]s and the psychic retentions of [[memory]] that he called [[secondary retention]]s.
As consequences of the [[evolution]] of tertiary retention, these changes in the [[play]] between primary retentions and secondary retentions, and therefore between memory and perception, that is, between [[imagination]] and [[reality]], produce [[process]]es of [[transindividuation]] that are each time different, that is, specific [[epoch]]s of what [[Simondon]] called the [[transindividual]].
In the course of processes of transindividuation, founded on the successive epochs of tertiary retentions, meanings form that are shared by [[psychic]] [[individual]]s, thereby constituting [[collective individual]]s themselves forming [[society]]s. Shared by psychic individuals within collective individuals of all kinds, the meanings formed in the course of transindividuation processes constitute the transindividual as an [[ensemble]] of [[collective]] [[secondary retention]]s within which [[collective protention]]s form-which are the [[expectation]]s typical of an epoch.
[[AS1 p30/31-1]]
[a] [[pharmakon]] will have toxic effects, as long as new [[therapy]]s or [[therapeutic]]s are not prescribed-that is, as long as we do not take up our responsibilities... Any [[tertiary retention]] is a pharmakon in that, rather than creating new [[transindividual]] [[arrangement]]s between [[psychic]] and [[collective]] [[primary retention]]s and [[secondary retention]]s, and therefore between [[retention]]s and [[protention]]s-which constitute the [[expectation]]s through which [[object]]s of [[attention]] appear, objects that are as such the [[source]]s of [[desire]]-rather than creating new attentional [[form]]s by spawning new [[circuit]]s of [[transindividuation]], new meanings and new projective capabilities bearing those horizons of meaning that are [[consistence]]s, this pharmakon my on the contrary [[substitute]] itself for psychic and collective retentions.
[[AS1 p31/32-1]]
[[psychic]] and [[collective retention]]s, however, can [[produce]] [[mean]]ing and [[sense]] (that is, [[desire]] and [[hope]]) only as long as they are [[individuate]]d by all and hence shared by all on the basis of [[process]]es of [[psychic individuation]] that form, from out of relations of co-[[individuation]], [[social]] processes of [[transindividuation]], creating relationships of solidarity that are the basis for sustainable (and [[intergenerational]]) social [[system]]s.
[[AS1 p32-1]]
As [[tertiary retention]], the [[pharmakon]] is the [[condition]] of the [[production]] and [[metastable]]ization og those [[circuit]]s of [[transindividuation]] that enable [[psychic]] [[individual]]s to [[express]] themselves to each other, via [[psychic retention]]s and with this pharmakon, thereby forming [[collective individual]]s founded on these [[trace]]s and facilitations, that is, on the [[collective retention]]s and [[protention]]s emerging from this [[pharmacology]]. But when a new pharmakon appears, it may always [[short-circuit]], and always begin by short circuiting, the established circuit of transindividuation that had issued from a prior tertiary retention, pharmacology and [[organology]].... [[digital]] tertiary retention constitutes a new [[form]] of [[grammitization]]...
[[AS1 p33-1]]
The dis-[integration]] of [[psychic individual]]s and [[collective individual]]s begins with the exploitation of the [[drive]]s, when, the consumerist [[libidinal economy]] having destroyed the [[process]]es of [[idealization]] and [[identification]] by submitting all [[singularity]]s to [[calculation]] (...becoming-[[dividual]] of individuals), marketing was forced to directly solicit and exploit the drives-being incapable of [[capture]]ing [[desire]]s that no longer exist because, all their objects have been turned into ready-made [[commodity]]s, they no longer [[consist]].
[[AS1 p33-2]]
[[automatic society]] is now attempting to channel, control, and exploit these dangerous [[automatism]]s that are the [[drive]]s, by subordinating them to [[retention]]al [[system]]s that are themselves [[automatic]], which capture drive-based automatisms by outstripping and overtaking them... [a system] designed to [[capture]] and exploit the [[trace]]s generated by individual and [[collective]] [[behavior]]m [[reticular]] interactive automatisms are systems for capturing [[behavior]]al [[expression]]s.
[[AS1 p34-1]]
A [[behavior]]al [[expression]] is prompted by a [[field]] of [[primary retention]]s that, having been [[perceived]] in a [[present]] become [[past]], are internalized in the [[form]] of [[memory]]s, thereby becoming [[bound]] [[secondary retention]]s. The [[personality]] of a [[psychic individual]] is composed exclusively of such primary retentions that have become secondary, that is, bound to the secondary retentions that have preceded them.
R1 is bound to an R2 that precedes it, and thereby modifies R2? [[metastable]]
In the course of this becoming secondary of primary retentions, [[protention]]s [[form]]-that is, [[expectation]]s and [[attention]]s that more or less de-[[phase]] (and [affect]]) the psychic individual, in relation to itself and in [[relation]] to others: behavioral expressions are the protean [[exteriorization]]s (attitudes, [[gesture]]s, [[speech]], [[action]]s) of these expectations and these exteriorizations are produced when favorable circumstances arise.
Since at least the [[Upper Paleolithic]] age, the [[noetic]] [[soul]]s that are psychic individuals have expressed their expectations by tertiarizing them, that is, by [[project]]ing their [[retention]]s and their protentions outside themselves, between themselves, and other psychic individuals, and in the form of [[trace]]s through which they [[spatial]]ize what they are living through or have lived through [[temporal]]ly (temporally meaning psychically, in the past, [[present]], or future). These traces are the [[hypomnesic]] [[tertiary retention]]s with which and through which these psychic individuals [[transindividuate]] themselves according to specific [[mode]]alities-modalities specified by the characteristics of the tertiary retentions thereby engendered.
These expressive behaviors (like the much older production of [[tool]]s, [[organological]]ly [[augment]]ing and amplifying the organic capacity of noetic [[body]]s) are transformations of the sensorimotor [[loop]]s that Jacob von [[Uexkull]] described... including the famous tick...
[[AS1 p35-1]]
This [[psychic individual]].... his [[expression]]s participate in the formation of the [[transindividual]] by which this world holds... and through which life is worth the pain and effort of being lived.
[[AS1 p35-2]]
The automated treatment of personal [[data]]... has short-[[circuit]]ed all [[singularity]] that would [[form]] at the [[level]] of the [[collective individual]], a collective singularity that constitutes [[idiom]]atic [[differentiation]], which is the condition of any [[mean]]ing and any [[significance]]-and has transformed [[individual]] singularities into individual [[particular]]ities.
[[AS1 p36-1]]
[[consistence]] is experienced in [[desire]]: in the desire for any object in which this desire [[invest]]s by [[divert]]ing the [[drive]]s, on the basis of which this object is expected, and presents itself by projecting itself towards another [[plane]] that does not exist, but [[consist]]s. This consistence of the object is also its infinitization. The drive amount to [[archi]]-[[retention]]s that are also archi-protentions, that is, [[primordial]] sensorimotor [[schema]]s that [[Simondon]] described as driving tendencies, founded on a priori images and that the infinitization of their non-existent object diverts, effecting [[singular]] that is, [[negentropic]] [[bifurcation]]s.
...the [[libidinal economy]] lies in ruins... This [[liquidation]] of desire unbinds the [[drive]]s, which cease to be the dynamic source of the retentions (as that which is contained and retained) and [[protention]]s of ideality, becoming on the contrary the source of so many evils emerging from[[Pandora]]'s box... Far from controlling them, technological automatisms can on the contrary only exacerbate them-because they intensify their [[unbinding]] by disintegrating [[psychic]] and [[collective]] [[retention]]s and protentions. This is why hyper-[[control]] leads to a total loss of control...
[[AS1 p39-1]]
The [[integration]] of [[psychic individual]]s into standardized and [[grammitized]] [[routine]]s-and thereby into the [[technical system]] of which these individuals become a technical function as [[crowd]]s...in fact disintegrates them. The functional becoming of individuals in turn disintegrates social [[system]]s and [[collective individual]]s, because there can be no psychic [[individuation]] that does not participate in a collective individuation, and vice versa...
[[AS1 p44-1]]
The [[reciprocal]] [[participation]] of the [[psychic]] and [[collective]] is [[possible]] only on the [[condition]] that psychic [[individuation]] cannot be reducible to collective individuation, that is, on the condition that the [[singular]] cannot be reduced to the [[particular]] (to the [[calculable]]), that it cannot be short-[[circuit]]ed, pre-empted, and denied through the calculation of its [[trace]]s. Real individuation requires a [[dynamic]] tension between psychic individuation and collective individuation, a tension that is their mutual and [[transductive]] condition of individuation (through a transductive amplification).
It is precisely such a dissolution of the psychic into the collective that occurs with social networking technology, that is, in [[digital]] conventional [[crowd]]s.
[[AS1 p68-1]]
the [[Anthropocene]] era is that of [[industrial]] [[capitalism]], as an era in which [[calculation]] prevails over every other criteria of decision-making...
...the [[artifact]] is the mainspring of [[hominization]]...
[[AS1 p8-1]]
The [[Signifier]] is the [[despotic]] agency that substitutes itself for [[asignifying]] [[proper name]]s and replaces [[multiplicity]]s with the dismal unity of an object declared lost
crushing everything into a miserable pulp of general equivalency
[[lack]]
[[global]]
[[ATP p28-1]]
Why assume that [[bands]] and their type of companionship [[represent]] a more rudimentary evolutionary [[state]] than [[group]] societies or societies of [[conjugality]]?
Even "mannerisms (all bands have them) are specific to the [[micro]][[multiplicity]]s and distinct from social manners or customs.
[[question]]
[[ATP p34-1]]
[[investment]]s and counterinvestments of the [[libido]] have everything to do with [[mass]] disturbances, [[pack]] movements, [[collective]] [[sign]]s, and [[particle]]s of [[desire]]
[[ATP p34-4]]
I get the [[image]] of [[symbol]]s (the [[deterritorialize]]d [[sign]]s of the [[signifying regime]]) swarming onto the [[face]] like flies, and that is how they [[reterritorialize]] on the face qua [[icon]], that is how the imparting/reimparting and radiance of the face works: Swarm the face, radiate out in circles, then, from varying circles, and at varying moments, they come back to swarm the face and reterritorialize.
Deterritorialize, reterritorialize. Inhale, exhale. A veritable regime of respiration. The face exhales signs, and in inhaling covers itself anew; the expressions both draw in old signs and recharge them, and converts the [[faciality]] [[trait]]s into new [[signifier]]s, new [[signifiance]]. Each [[expression]] of the face may wear new signs, or be a new expression that imparts or reimparts itself to a given signifier. Always moving, always breathing, always coming to face different directions, inhale from the right, exhale to the left, rotate, rotate, rotate.
[[ATP p116/117-1]]
A of the [[relationship]] of the [[multiplicity]]s here and their existence on the [[body without organs]] to the [[desiring-machine]]s and the body without organs of the [[AO unconscious]].
If these multiplicities are also the packs that people and populate the bwo are we now collapsing the desiring-machines, the disjunctive, synthesis, and the conjunctive synthesis into one? Is the old model entirely done away with in favor of a new viewpoint here? of course!
It seems now that the packs and swarms that populate it are indivisible; in a similar sense, so too were [[partial-objects]] not divisible, and the enveloped [[intensive]] multiplicities of AO could also not be divided without changing nature. Much is the same here, but there are still differences; I believe the differences will prove to be less in the individual model here in ATP but moreso in the manner in which this model comes to be used with the rest of the book, as well as how the model of AO can come to interact with it
Cut up a [[swarm]]of bees and its a pack of soccer players, cut into the group of Tuareg and the gang of Deulh appear in place
[[ATP p30/31-1]]
What is the relationship between a [[multiplicity]] that crosses a [[threshold]] and a multiplicity that is cleaved or split apart? They both change it in nature; is it simply a difference in motion, in line? Threshold crossing as an idea of increase or decrease vs a split being effected?
[[question]]
[[ATP p31-2]]
The [[surface of stratification]] is this [[plane of consistency]] between two [[strata]]; this is also, from a different [[point of survey]], a [[machinic assemblage]]. One side of the machinic [[assemblage]] faces the strata, the other side faces the [[body without organs]].
If one strata is always a substratum, that means strata are always oriented in some direction, in some way
If the surface of stratification is between two strata and gives birth to a machinic assemblage; is that to say that every assemblage is born of at least two strata? Never one? Of course, otherwise what would it be assembling. [[question]]
The assemblage qua surface of stratification is between two strata, but the assemblage qua assemblage is between strata and the plane of consistency
[[ATP p40-4]]
This bottom part; linked to the [[collective assemblage]] of enunciation? What about the [[second articulation]], the articulation of [[expression]]? There is something here that links together (conceptually) the manner in which the [[first articulation]] is from a [[formation of power]] ([[content]]), and the second [[articulation]] is of the social-[[semiotic]] [[machine]] that preexists language. We have to have our speech acts first; do they have to be linked to the form of content? Must we presuppose an [[assemblage]] linking it to a formation of power before we can begin to understand, evaluate, [[classify]] and so on these various types of speech acts, these various postulates of [[linguistic]]s?
10/18/21
Instead I think this is showing the precondition for language as such to arise from the plane of expression
[[ATP p77/78-1]]
Is that to say that [[indirect discourse]] is primary over [[subjectification]] or [[subjectivization]]?
[[ATP p78/79-1]]
[[ATP p8-6]]
[[code]]
[[assemblage]]
[[rhizome]]
[[overcode]]
The function of overcoding is to force a unity onto an assemblage. Or is it rhizome? In this quote it is multiplicity, but in [[ATP p8-3]] it is a [[multiplicity]]
Wither way, it will effect a power take over, a crushing of the [[multiplicity]] of elements into a single unit, the unit through which the overcoding occurs.
Marxists see everything as...
the oedipalized see it all as...
[[subjectivity]] [[individuation]] and things like [[identity]] as a variable that shifts within a [[collective assemblage]] of enunciation; you only have so much identity in an [[assemblage]]; you never have full access to full identity, only what's necessary for the functioning of the various assemblages articulation, [[conjunct]]ing into each other one another
[[ATP p80-1]]
[[question]]: What is the effect that [[incorporeal transformation]]s have an [[actions and passions]]?
[[ATP p80/81-1]]
[[order-word]]s and the [[incorporeal transformation]]s in a [[collective assemblage]] they bring about seem to lay the groundwork for language to be [[effectuate]]d. The create a certain network (of [[disjunction]]s?) that allow for [[language]] qua [[rhizome]] qua creative evolution to take place.
[[ATP p85-1]]
[[ATP p9-1]]
[[model]]
[[rhizome]]
An example of the idea here being that a supplementary dimension may be that of some sort of pre-existing model that is used to explain away the phenomena at hand; whereas the rhizome is built anew for each and every situation to be encountered.
a [[multiplicity]]is not defined just by what's inside, nor just what's outside; but by the [[abstract line]] which allows them to change in nature and connect. Does connecting change us in nature? Bare minimum, it adds a dimension; if A connects to B, does A now fall prey to the [[strata]] of B, and vice versa? Is there a new [[body without organs]] to which both are connected as well as a third? If so, to connect is to proliferate.
[[question]]
[[ATP p9-3]]
[[question]]
The tensor is not the line drawn back by the phrase, but the cutting edge of deterritorialization that is the phrase that causes language to vary; the chain back is constituted by the tensor, but is not the tensor itself. The tensor itself is the role played by the phrase in relation to the set of constants and constant relations established in the [[collective assemblage]] of [[enunciation]]. See link below
[[ATP p99/100-1]]
[[question]]: Is there only one [[abstract machine]] per [[assemblage]]? I think so. Is there only one [[assemblage]] per abstract machine? I think not; I think that although they only exist within an assemblage, there can be a [[multiplicity]] of assemblages per one abstract machine. Alternatively, the one abstract machine of an assemblage may be assembled from a variety of abstract machines (from other assemblages) in order to [[effectuate]] the [[singular]] [[virtual-real]] but not [[actual]], [[abstract machine]] of that assemblage.
An assembled abstract machine effectuated in an assemblage. Neat.
[[constant]]s are necessary to determine the [[virtuality]]s through which the [[variable]]s move; is that to say constants are needed in order to be [[deterritorialize]]d by [[tensor]]s? As in, without constants (of a fashion; a constant [[pattern]] of [[continuous variation]] as a constant...) a tensor cannot be a [[cutting edge of deterritorialization]].
Variables as a something that can vary in their very [[identity]]; am [[intensive]], divisible ([[divisible]] within a certain [[threshold]],a certain [[metastability]]) [[multiplicity]] that travels [[nondecomposable]] [[distance]]s, and to divide it is to change it's nature...
[[ATP p100-1]]
[[ATP p9-5]]
The idea here is the refusal of a totality that is assumed to pre-exist; the idea of a [[multiplicity]] as being constitued with a lack that would bring it in line with an always-absent totality. The multiplicity is always full to its boundaries, up to its dimensions; [[treatment]] theory: never looking at someone as having at [[disorder]], but rather as a someone [[prouced]] by their [[desiring-machines]]. If someone is able to live a life, they are an [[operationally closed]] [[system]] that is carrying out [[autopoesis]]; they are not broken, they are not disordered; they are capable of producing a producting, consuming it, and making decisions with [[recursive]] functioning, the output of previous [[operations]] being used as the input for the next ones.
[[Luhmann]]
[[schizoanalysis]]
childrens crusades, marcel schwob
les portes du paradis (the gates of paradise) andrzejewski
Book on the fourth crusade, armand farrachi
Virginia woolf
lenz
buchner
kleist
michaux
kafka
wasp-code + orchid-code = wasp-orchid code that now has it's own line of [[becoming]], a veritable [[line of flight]] that sweeps away the two [[lines]] of wasp and orchid along with it on its path
the idea of the wasp/orchid as "a parallelism between two [[strata]] such that a plant organization on one imitates an animal organization on the other.
[[ATP p11-1]]
[[surplus value of the code]]
[[code]]
[[wasp and orchid]]
[[becoming]]
Some believe that these [[variation]]s do not [[express]] the usual labor of creation in [[language]] and remain [[margin]]al, confined to the [[poet]]s, [[children]], and [[lunatic]]s. That is because they wish to define the [[abstract machine]] by [[constant]]s that can be [[modified]] only secondarily, by a cumulative [[effect]] or syntagmatic [[mutation]]. But the abstract machine of [[language]] is not [[universal]], or even general, but [[singular]]; it is not [[actual]] but [[virtual-real]]; it has, not [[invariable]] or obligatory rules, but [[optional]] rules that ceaselessly [[vary]] with the [[variation]] itself, as in a [[game]] in which each move changes the rules. That is why [[abstract machine]]s and [[collective assemblage]]s of [[enunciation]] are [[complementary]], and present in each other.
The abstract machine is like the [[diagram]] of an [[assemblage]]. It draws [[line]]s of [[continuous variation]], while the concrete assemblage [[treat]]s [[variable]]s and organizes their highly diverse relations as a [[function]] of those [[line]]s. The assemblage [[negotiate]]s variables at this or that [[level]] of [[variation]], according to this or that [[degree]] of [[deterritorialize]]ation, and determines which variables will enter into [[constant]] relations or obey obligatory rules and which will serve instead as a [[fluid]] [[matter]] for variation.
We should not conclude from this that the assemblage brings only a certain resistance or inertia to bear against the abstract machine; for even "constants" are essential to the determination of the [[virtuality]]s through which the variation passes, they are themselves optionally chosen. There is indeed braking and resistance at a certain level, but at another level of the assemblage there is nothing but a come-and-go between different types of variables, and [[corridor of passage]]s ([[component of passage]]) traveled in both directions: the variables [[effectuate]] the [[machine]] in unison, in the sum of their relations (is this the [[diagram]]?). There is therefore no basis for a [[distinction]] between a constant and a collective language, and variable and individual [[speech act]]s. The abstract machine is always singular, designated by the proper name of a group of individual, whole the assemblage of enunciation is always [[collective]], in the individual as in the group. Lenin abstract machine, Bolshevik collective... There is no primacy of the individual; there is instead an indissolubility of a [[singular]] [[abstract machine]] and a collective Concrete. The abstract machine does not exist independently of the assemblage, any more than the assemblage functions independently of the machine.
[[big boy]]
[[phrase]] see the bottom, Lenin and Bolshevik
[[ATP p99/100-1]]
Since [[language]] is a [[heterogenous]], [[variable]] [[reality]], why do [[linguists]] [[extract]] a [[set]] of [[constant]]s to make a scientific study possible? "It is a question of extracting a set of constants from the variables, or of determining constant relations between [[variable]]s... the scientific [[model]] taking language as an object of study is one with the [[political]] model by which language is [[homogenize]]d, centralized, standardized, [[becoming]] a language of [[power]], a : or dominant language. Linguistics can claim to be science, pure science-it wouldn't be the first time that the order of pure science was used to secure the requirements of another order. Grammaticality is a power marker before it is a syntactical marker, it establishes constant relations between power variables.
Forming grammatically correct sentences is for the normal individual the prerequisite for any submission to social laws. No one is supposed to be ignorant of grammaticality; those who are belong in special institutions. The unity of language is fundamentally political. There is no mother tongue, only a power takeover by a dominant language that at times advances along a broad front, and at times swoops down on diverse centers simultaneously. We can conceive of several ways for a language to homogenize, centralize ([[social media]] as a dominant language, a soft, subtle establishment of a language of power and grammaticality in hashtags and so on)... The scientific enterprise of extracting constants and constant relations is always [[couple]]d with the political enterprise of imposing them on speakers and [[transmitting]] [[order-word]]s.
[[ATP p100-1]]
Must a [[distinction]] then be made [[between]] two kinds of [[language]]s, "high" and "low," [[major]] and [[minor]]? The first would be defined precisely by the [[power]] ([[pouvoir]]) of [[constant]]s, the second by the power ([[puissance]]) of [[variation]]. We do not simply wish to make an opposition between the unity of a major language and the [[multiplicity]] of dialects. Rather, each dialect has a [[zone of transition]] and [[variation]]s; or better, each minor language has a properly [[dialectic]]al [[zone of variation]].
[[zone]]
[[ATP p100/101-1]]
The very notion of dialect is questionable. Moreover, it is [[relative]] because one needs to know in relation to what [[major]] language it exercises its function...
[[example]]s follow....
In short, the notion of dialect does not elucidate that of [[minor language]], but the other way around; it is the [[minor]] language that defines dialects through its own [[possibility]]s for [[variation]]...
The more a [[language]] has or acquires the characteristics of a [[major]] :, the more it is [[affect]]ed by [[continuous variation]]s that [[transpose]] it into a "[[minor]]" language. It is futile to criticize the worldwide imperialism of a language by denouncing the corruptions it introduces into other languages... For if a language such as british english or american english is major on a world scale, it is necessarily worked upon by all the [[minorities]] of the world, using very diverse [[procedure]]s of [[variation]].
[[question]]: is this like their [[process]] of [[becoming]]? Two poles, and the becoming is something that shoots off in-[[between]]? [[becoming-minor]]?
[[ATP p101-1]]
...stretch [[tensor]]s through all of [[language]]... (description of how to make a [[minor]] language out of a [[major]] language)
...a [[becoming-minor]] of the major language, The problem is not the [[distinction]] [[between]] major and minor language; it is one of a [[becoming]]. It is not a [[question]] of [[reterritorialie]]zing oneself on a dialect or a patois but of [[deterritorialize]]ing the major language.
[[ATP p102-1]]
Majority implies a [[constant]], of [[expression]] or [[content]], serving as a standard measure by which to evaluate it... Man holds the majority... That is because he appears twice, once in the constant and again in the [[variable]] from which the constant is extracted. Majority assumes the state of [[power]] and [[domination]], not the other way around.
Not all choices are [[minoritarian]]; election choices, the binary choice of them, still has us within the constant. The only majoritarian is Nobody-Ulysses-And everyone is minor.
[[ATP p104-1]]
The problem is never to acquire the majority, even in order to install a new [[constant]]. There is no becoming-majoritarian; majority is never [[becoming]]. All becoming is [[minoritarian]]. Women, regardless of their numbers, are a minority, definable as a [[state]] or subset; but they create only by making possible a becoming over which they do not have ownership, into which they themselves must enter; this is a [[becoming-woman]] [[affect]]ing all of humankind, men and women both. The same goes for [[minor]] languages...
[[ATP p105-1]]
Distinguish between major and minor languages, and [[becoming-minor]] of a major language.
...the essential thing in free [[indirect discourse]] is to be found neither in [[language]] a or b, but in language X, which is none other than language A in the [[actual]] [[process]] of [[becoming]] language B. There is a universal figure of minoritarian consciousness, as the [[becoming]] of everybody, and that becoming is creation.
an inspirational [[schizo flow]] at the bottom of this paragraph.
major and minor mode of language; extracting [[constant]]s or placing [[language]] in [[continuous variation]]
[[ATP p106-1]]
The [[order-word]] is a [[death]].... But the order word is also something else, inseparably connected; it is like a warning cry or a message to flee.
It is always by means of something [[incorporeal]] that a [[body]] separates and distinguishes itself from another. The [[figure]], insofar as it is the extremity of a body, is the [[noncorporeal]] [[attribute]] that [[limit]]s and completes that body: death is the Figure. It is through death that a body reaches completion not only in time but in space, and it is through death that its [[line]]s form or outline a shape. There are dead spaces just as there are dead times.
An excellent [[summary]] of the [[content]] and [[expression]] relation in [[language]].
There is a discussion of what I believe is the [[signifying regime]] of [[sign]]s on 107-108 related to this conceptualization of death.
[[ATP p106-2]]
For even at the moment when the two [[plane]]s are most distinct, as the [[regime]] of bodies and the [[regime of signs]] in an [[assemblage]], they are still in [[reciprocal presupposition]]. The [[incorporeal transformation]] is the [[expressed]] of [[order-word]]s, but also the [[attribute]] of bodies. Not only do [[linguistic]] [[variable]]s enter into relations of formal opposition or [[distinction]] favorable to the extraction of [[constant]]s; n[[nonlinguistic]] [[variable]]s of [[content]] do so also.
As [[Hjelmslev]] notes, an expression is divided, for example, into phonic units in the same way a content is divided into social, zoological or physical unites (Calf divides into young-boving-male). The network of [[binary]]s, or [[arborescent]]s, is applicable to both sides. There is no analytic resemblance, correspondence, or conformity between the two planes. But their independence does not preclude [[isomorphism]], the existence of the same kinf of constant relations on both sides. It is from this type of relations that linguistic and nonlinguistic [[element]]s are inseparable from the start, despite their absence of correspondence. The elements of content give the [[intermingling]]s of bodies clear contours at the same times as the elements of expression give the [[noncorporeal]] expresseds a power of sentencing or judgement.
These elements are all [[abstract]] of [[deterritorialize]]d to different [[degree]]s, but in each instance they effect a [[reterritorialize]]ation of the overall [[assemblage]] on certain order-words and [[contour]]s. Indeed, the significance of the doctrine of synthetic judgement is to have demonstrated that there is an a priori link (isomorphism) between sentence and [[figure]], [[form of expression]] and [[form of content]]
[[summary]]
[[ATP p107-1]]
Lets consider the other aspect of the [[order-word]], [[flight]] rather than [[death]].
[[variable]]s are in a new [[state]], [[continuous variation]]. An [[incorporeal transformation]] is still [[attribute]]d to bodies, but is is now a [[passage]] to the [[limit]]; that is the only way, not to eliminate [[death]], but to reduce it or make it a [[variation]] itself... A [[schizo flow]] with [[tensor]]s and the [[plane of consistency]] follows where its no longer about [[content]] vs [[expression]], but two forms in [[reciprocal presupposition]] with each other.
[[ATP p108-1]]
"[[transverse]]al communications between different [[lines]] scramble all the genealogical trees."
[[ATP p11-2]]
"Always look for the [[molecular]] or even submolecular [[particle]] with which we are allied."
[[ATP p11-3]]
"...the book is not an image of the world. It forms a [[rhizome]] with the world, there is an aparallel evolution of the book and the world;: the book assures the [[deterritorialize]]ation of the world, but the world effects a [[reterritorialize]]ation of the book, which in turn deterritorializes itself in the world, if it can."
Is this 3 distinct steps, as in deterr reterr, then deterr, or is it (deterr then reterr) and then that () is deterr'd?
[[question]]
similar to the [[wasp and orchid]] is the book and the world
This page expands on mimcry vs [[becoming]] (not written in this tiddler)
[[ATP p11-4]]
"the wisdom of the plants: even when they have roots, there is always an outside where they form a [[rhizome]] with something else,--with the wind, an animal, human beings (and there is also an aspect under which animals themselves form rhizomes, as do people, etc,.) "Drunkenness as an irruption of the plant in us.""
[[ATP p11-5]]
[[becoming]]
"Always follow the [[rhizome]] by [[rupture]]; lengthen, prolong, and relay the [[line of flight]]; make it vary, until you have produced the most abstract and torturous of [[lines]] of n dimensions and broken directions. [[conjugate]] [[deterritorialize]]d [[flow]]s. Follow the plants: you start by delimiting a first [[line]] consisting of circles of [[convergence]] around successive [[singularity]]s; then you see whether inside that line new circles of [[convergence]] establish themselves, with [[points]] located outside the [[limit]]s and in other directions. [[Write]], form a rhizome, increase your [[territory]] by deterritorialization, extend the line of flight to the point where it becomes an [[abstract machine]] covering the entire [[plane of consistency]]
[[ATP p11/12-1]]
[[treatment]]
[[ethics]]
"[[music]] has always sent out many a [[line of flight]], like so many "transformational [[multiplicity]]s,' even overturning the very [[code]]s that [[structure]] or arborify it; that is why musical [[form]], right down to its [[rupture]]s and [[proliferation]]s is comparable to a weed, a [[rhizome]]."
[[ATP p12-1]]
[[art]]
[[affect]]
[[arborescent]]
Actually, there is no [[question]], [[answer]]s are all one ever answers. To the answer already contained in a question (cross-examination, competition, plebiscite, etc.) one should respond with a question from another answer. One should bring forth the [[order-word]] of the order-word. In the order-word, life must answer the answer of [[death]], not by fleeing, but by making [[flight]] [[act]] and create. There are [[pass-word]]s beneath order-words. Words that [[pass]]. are [[component of passage]]s, whereas order-words mark stoppages or organized, [[stratified]] compositions. A single thing or word undoubtedly has this twofold nature; it is necessary to extract one from the other-to transform the compositions of order into a [[component of passage]]
[[schizo flow]] [[summary]] [[treatment]] [[ethics]]
[[ATP p108-2]]
We call any specific [[formalization of expression]] a [[regime of sign]]s, at least when the [[expression]] is [[linguistic]]. A regime of signs constitutes a [[semiotic]] system. But it appears difficult to analyze semiotic systems in themselves: there is always a [[form of content]] that is simultaneously inseparable from and independent of the [[form of expression]], and the two [[form]]s pertain to [[assemblage]]s that are not principally linguisitc. However, one can proceed as though the formalization of expression were autonomous and self- sufficient
[[ATP p110-1]]
There is a simple general formula for the [[signifying regime]] of the [[sign]] (the [[signifying]] sign): every sign refers to another sign, and only to another sign, ad infinitum.... at the [[limit]] one can forgo the notion othe sign, for what is retained is not principally the signs relation to a state of things it designates, or to an entity it signifies, but only the formal relation of sign to sign as it defines a so-called [[signifying chain]]. The limitlessness of [[signifiance]] replaces the sign.
[[ATP p111-1]]
When [[denotation]] (here it means [[designation]]+[[signification]]) is assumed to be part of [[connotation]], one is within this [[regime]].Not much attention is paid to [[index]]es, the [[territorial]] [[state]] of [[thing]]s constituting the [[designatable]]. Not much attention is paid to [[icon]]s, operations of [[reterritorialize]]ation constituting the [[signifiable]]. Thus the [[sign]] has already attained a high [[degree]] of relative [[deterritorialize]]ation; it is thought of as a [[symbol]] in a constant movement of referral from sign to sign. That question isn't what the sign signifies, but to which signs it refers, or which signs add themselves to it to form a network without beginning or end.
there is an [[amorphous continuum]] that glides beneath the network that the sign casts its shadow on, this plays the role of [[signified]], it continually glides beneath the signifier for which it only serves as a [[medium]] or [[wall]]. The specific [[form]]s of all [[content]]s dissolve in it. The mundanization or atmospherization of contents. Contents are abstracted.
its the "[[paranoid]] [[despot]]ic [[regime]]
[[ATP p112-1]]
Nothing is ever done and over with in a [[regime]] of this kind. It's made for that, its the tragic regime of infinite [[debt]], to which one is simultaneously [[debtor]] and [[creditor]]. The chain of the endless deference of the sign forms a circle, it returns in a circular fashion.
The [[statement]] survives its object, the name survives its owner,... the sign survives both its [[state]] of [[thing]]s and its signified]]... There is a whole [[regime]] of roving floating statements, suspended names, signs lying in wait to return and be propelled by the chain. The signifeir as the self-[[redundancy]] of the [[deterritorialize]]d sign...
But what counts is less the circularity of signs than the [[multiplicity]]of the [[circle]]s or [[chain]]s. The sign refers not only to other signs in the same circle, but to signs in other circles or spirals as well.
[[signifiance]] is mentioned 2x on this page, but not in these notes. Doesn't seem pertinent.
[[ATP p112-2]]
There is a distinction [[between]] circles because, although all [[sign]]s refer to each other only tot he extent that they are [[deterritorialize]]d, oriented toward the same [[center]] of [[signifiance]]m distributed throughout an amorphous [[continuum]], they have different [[speed]]s of deterritorialization attesting to a place of origin (temple, palace, house, street, village, bush, etc), and they have differential relations maintaining the distinction between circles or constituting [[threshold]]s in the atmosphere of the continuum (private and public, family incident and social disorder). Moreover, the distribution of these thresholds and circles changes according to the case. Deception is fundamental to the [[system]]. Jumping from circle to [[circle]], always moving the scene, playing it out somewhere else; such is the [[hysteric]] operation of the deceiver as [[subject]], answering to the paranoid operation of the [[despot]] installed in his center of signifiance
[[ATP p113-1]]
As the circles of [[signifiance]] radiate out, they are subject to entropy and decay. "Thus a secondary [[mechanism]] in the service of [[signifiance]] is necessary: [[interpretance]] or [[interpretation]]... The interpretive [[priest]], the seer, is one of the [[despot]]-gods bureaucrats...interpretation is carried to infinity and never encounters anything to interpret that is not already itself an interpretation." It only ever hits signifiers, never touching down...
"In truth, [[signifiance]] and [[interpretosis]] are the two diseases of the [[earth]] or the skin, in otherwords, humankind's fundamental [[neurosis]]
[[ATP p113/114-1]]
It comes to the same thing to say that the [[sign]] refers to other signs ad infinitum and that the infinite set of all signs refers to a supreme [[signifier]]. At any rate, this pure formal [[redundancy]] of the signifier could not even be conceptualized if it did not have its own [[substance of expression]], for which we must find a name [[faciality]].
Not only is [[language]] always accompanied by faciality [[trait]]s, but the [[face]] crystallizes all redundancies, it emits and receives, releases and recaptures [[signifying]] signs. It is a whole [[body]] unto itself; it is like the body of the center of [[signifiance]] to which all of their [[deterritorialize]]d signs affix themselves, and it [[mark]]s the [[limit]] of the deterritorialization. The [[voice]] emanates from the [[face]]; that is why, however fundamentally important the [[writing]] [[machine]] is in the [[imperial]] bureaucracy, what is written retains an oral or nonbook character.
The [[face]] is the [[icon]] proper to the [[signifying regime]], the [[reterritorialize]]ation internal to the system. The signifier reterritorializes on the face. The face is what gies the signifier substance; it is what fuels [[interpretation]], and it is what changes, changes [[trait]]s, when interpretation reimparts signifier to its substance, Look, his [[expression]] changed. The signifier is always [[facialized]]. Faciality reigns materially over that whole [[constellation]] of signifiances and interpretations. The [[despot]]-god has never hidden his face... The mask does not hide the face, it is the face...
When the face is effacted, when the faciality traits disappear, we can be sure that we have entered another [[regime]], other [[zone]]s infinitely muter and more [[imperceptible]] where [[subterranean]] [[becoming-animal]]s occur, [[becoming-molecular]]s, nocturnal deterritorializations overspilling the limits of the signifying system...
He looked at me queerly, he knitted his brow, what did I do to make him change expression? I have her picture in front of me, its as if she were watching me... [[surveillance]] by the face... [[overcoding]] by the signifier, irradation in all directions, unlocalized omnipresence.
[[ATP p114-1]]
the [[face]] or [[body]] of the [[despot]] or [[god]] has something like a counterbody; the body of the [[tortured]], or better, of the [[excluded. There is no question that these two bodies communicate, for the body of the despot is sometimes subjected to trials of humiliation or even torture, or of [[exile]] and [[exclusion]].
"At the opposite pole one might imagine placing the body of the [[condemned]] man; he too has his legal status; he gives rise to his own ceremonial... not in order to ground the [[surplus]] power possessed by the person of the [[sovereign]], but in order to [[code]] the lack of power with which those subjected to [[punishment]] are marked. In the darkest region of the political field the condemned man outlines the symmetrical, inverted [[figure]] of the [[king]]" (Quote from [[Discipline and Punish]] in ATP
The mention of the [[scapegoat]].
[[ATP p115-1]]
We are given our choice of [[summary]]:
The complete [[system]], then, consists of the [[paranoid]] [[face]] or [[body]] of the [[despot]]-[[god]] in the [[signifying]] [[center]] of the temple; the interpreting [[priest]]s who continually recharge the [[signified]] in the temple, transforming it into a [[signifier]]; the hysterical crowd of people outside, clumped in tight circles, who jump from one [[circle]] to another; the faceless, depressive [[scapegoat]] emanating from the center, chosen, treated, and adorned by the priests, cutting across the circles into [[headlong]] [[flight]] into the desert.
This excessively hasty overview is applicable not only to the [[imperial]] despotic [[regime]] but to all [[subjected]] [[arborescent]], hierarchical, centered [[group]]s: political parties, literary movements, psychoanalytic associations, families, conjugal unites, etc. The photo, [[faciality]], [[redundancy]], [[signifiance]], and [[interpretation]] are at work everywhere.... The signifier reigns over every domestic squabble, and in every [[State]] [[apparatus]].
Second [[summary]]:
The signifying [[regime of signs]] is defined by eight aspects or principles.
1. the [[sign]] refers to another sign, ad infinitum {the limitless of signifiance, which [[deterritorialize]]s the sign]]
2. The sign is brought back by other signs and never ceases to return (the circularity of the deterritorialized sign)
3. The sign jumps from circle to circle and constantly displaces the center at the same time as it ties into it (the [[metaphor]] or [[hysteria]] of signs)
4.The expansion of the circles is assured by the interpretations that impart signified and reimpart signifier. (the [[interpretosis]] of the priest)
5. The infinite set of signs refers to a supreme signifier presenting itself as both lack and ecess (the despotic signifier, the limit of the systems deterritorialization
6. The [[form]] of the signifier has a [[substance]], or the signifier has a body, namely the [[face]] (the principle of [[faciality]] [[trait]]s, which constitute a [[reterritorialize]]ation)
7. The systems [[line of flight]] is assigned a negative value, condemned as that which exceeds the signifying regime's power of deterritorialization (the principle of the [[scapegoat]])
8. The regime is one of universal deception, in its jumps, in the regulated circles, in the seer's regulation of [[interpretation]]s, in the publicness of the [[facialized]] center, and in the treatment of the line of flight.
[[ATP p115/116-1]]
the so-called [[primitive]] [[presignifying]] [[semiotic]], which is much closer to "natural" [[code]]ings operating without [[sign]]s. There is no reduction to [[faciality]] as the sole [[substance of expression]]: there is no elimination of different [[form of content]]s through the abstraction of the [[signified]]. To the extent that there is still an abstraction of [[content]] from a strictly semiotic point of view, it fosters a [[pluralism]] pr [[polyvocality]] of [[form of expression]]s that prevents a [[power]] takeover by the [[signifer]] and preserves expressive [[form]]s particular to [[content]]; this forms of [[corporeality]], gesturality, [[rhythm]], dance, and [[rite]] coexist heterogeneously with the vocal form.
A variety of [[form]]s and [[substance]]s of [[expression]] [[intersect]] and form [[relay]]s. It is a [[segmentary]] but [[plurilinear]], multidimensional semiotic that wards off any kind of [[signifying]] [[circularity]]. [[segmentarity]] is the [[law]] of [[lineage]]s.
Here, the [[sign]] owes its relative [[deterritorialization]] not to a perpetual referral to other signs but rather to a confrontation between [[territoriality]]s and compared [[segment]]s from which each sign is extracted (the camp, the bush, the moving of the camp). Not only is the [[polyvocality]] of [[statement]]s preserved, but it is possible to finish with a statement: a name that has been used up is abolished. [unlike the previously described regime]
The meaning of cannibalism in the presignifying regime is precisely this: eating the name, a [[semiography]] that is fully a part of a semiotic in spite of its relation to [[content]] (the relation is an [[expressive]] one)... it is animated by a keen presentiment of what is to come. It does not need to understand it to fight against it. It is wholly destined by its very [[segmentarity]] and polyvocality to avert the already present threat: universalizing abstraction, erection of the signifier, circularity of statements, and their correlates, the [[State]] [[apparatus]], the installment of the [[despot]], the [[scapegoat]], etc.
[[ATP p116/117-1]]
[[countersignifying]] [[semiotic]]
I don't get this one. [[nomad]]s [[number]]
"This time., the semiotic proceeds less by [[segmentarity]] than by [[arithmetic]] and [[numeration]]."
"A numerical [[sign]] that is not produced by something outside the system of marking it constitutes... arrives at arrangements rather than totals... a sign of this kind would belong to a nomad [[war machine]] directed against the [[State]] [[apparatus]]. The [[numbering number]].
In this countersignifying regime, the imperial [[despot]]ic [[line of flight]] is replaced by a [[line]] of [[abolition]] that turns back against the great empires, cuts across them and destroys them, or else conquers them or integrates with them to form a [[mixed semiotic]]" [[Moses]] and the [[Hebrews]] and the [[Mongols]] are mentioned, as is [[Kristeva]]
[[ATP p117/118-1]]
the [[postsignifying]] regime is opposed to [[signifiance]] and is defined by a unique procedure, that of [[subjectification]]
[[ATP p118-1]]
Tracings are what we are to avoid, they assume a pre-existent [[structure]] and that they are a recreation thereof; the [[Lacan]]ian [[unconscious]], grammar on the whole...
"The rhizome is altogether different, a map and not a tracing. Make a map, not a tracing. The orchid does not reproduce the tracing of the wasp, it forms a map with the wasp, in a rhizome. What distinguishes the map from the tracing is that it is entirely oriented to an [[experiment]]ation in contact with the real. The map does not reproduce an unconscious closed in upon itself, it constructs the unconscious. It fosters connections between fields, the removal of blockages on [[body without organs]], the maximum opening of Body Without Organs onto a [[plane of consistency]]. It is itself a part of the rhizome. The map is open and connectable in all of its dimensions; it is detachable, reversible, susceptible to constant modifications. It can be torn, reversed, adapted to any kind of mounting, reworked by an individual, group, or social formation. It can be drawn on a wall, conceived as a work of art, constructed as a political action or as a meditation. Perhaps one of the most important characteristics of the rhizome is that it has multiple entryways; in this sense the burrow is an animal rhizome, and sometimes maintains a clear distinction between the [[line of flight]] as passageway and storage or living [[strata]] (cf the muskrat). A map has multiple entryways, as opposed to the tracing which always comes back "to the same."
[[ATP p14-1]]
[[tracing]]
[[map]]
[[rhizome]]
[[wasp and orchid]]
[[plane of consistency]]
Discussion of the [[paranoid]] vs [[passional]] [[regime of signs]], aka the [[postsignifying]] vs the [[signifying]]. "In short, it operates by the [[linear]] and [[temporal]] succession of [[finite]] proceedings, rather than by the simultaneity of [[circle]]s in unlimited expansion"
the differences and their relation to social classes and psychiatry continue. The paranoid are mad but still functional, [[Schreber]] knew how to jump [[between]] his circles, but the passional don't seem [[mad]] then are set off like a bomb.
Seems to engage with [[Madness and Civilization]] at a point, claiming this split is the basis of psychiatry, rather than a specific . [[image]] of [[madness]]' which is how [[Foucault]] speaks in that book. I dunno
[[ATP p119-1]]
In the first place, a [[sign]] or [[packet]] of signs detaches from the irradiating circular network and sets to work on its own account, starts running a straight [[line]] as though swept into a narrow, open passage. Already the [[signifying]] system drew a [[line of flight]] oR [[deterritorialize]]ation exceeding the specific [[index]] of its deterritorialized signs, but the system gave that line a negative value and sent the [[scapegoat]] fleeing down it. Here, it seems that line receives a positive sign, as though it were effectively occupied and followed by a people who find in it their reason for being or destiny....
We are not doing [[history]] but saying...The map of a delusion, its [[coordinate]]s considered, may coincide with a map of a people, its coordinates considered. The paranoid [[Pharaoh]] and the passional [[Hebrew]].
Authoritarian subjectivities vs despotic [[signifiance]]... a [[linear]] proceeding and grievance against the irradiating circular network... [[Kafka]] [[example]]
[[ATP p120-1]]
[[faciality]] undergoes a profound transformation. The double averted face shows up.
[[ATP p121/122-1]]
Relation of the [[book]] to the [[postsignifying]] and [[signifying]] [[regime of signs]]
[[ATP p123-1]]
This is how things are in the passional regime [[[postsignifying]]], or the regime of [[subjectification]]. There is no longer a [[center]] of [[signifiance]] connected to expanding circles or an expanding spiral, but a [[point]] of [[subjectification]] constituting the point of departure of the [[line]].
There is no longer a [[signifier]] [[signified]] relation, but a [[subject of enunciation]] issuing from the point of subjectification and a [[subject of the statement]] in a determinable relation to the first subject. There is no longer [[sign]]-to-sign circularity, but a [[linear]] proceeding into which the sign is swept via subjects.
[[summary]]
[[ATP p126/127-1]]
In the course of a proceeding, while there is a [[linear]] movement the plural is often used, whereas there is a return to the [[singular]] as soon as there is a pause or stoppage [[mark]]ing the end of one movement before another begins. Fundamental [[segmentarity]]: one proceeding must end (and its termination must be marked) before another beings, to enable another to begin.
[[ATP p127-1]]
The [[point]] of [[subjectification]] is the origin of the passional [[line]] of the [[postsignifying]] regime. The point can be anything. It must only display the following characteristic [[trait]]s of the [[subjective]] [[semiotic]]: the double turning away, betrayal, and existence under reprieve.
The food of an anorexic, a dress or women's footwear for the fetishist.
[[ATP p128-1]]
The meaning of [[faciality]] has changed; it is no longer the [[body]] of the [[signifier]] but has become the [[point]] of departure for the [[deterritorialize]]ation that puts everything else to [[flight]]... a [[point]] of [[subjectification]] in the departure of a [[passional]] [[line]]...
Several points coexist in a given individual or group, which are always engaged in several distinct and not always compatible [[linear]] proceedings. The various forms of education or "normalization" imposed on an individual consist in making him change points of subjectification, always moving higher...
from the point of subjectification issues a [[subject of enunciation]], as a [[function]] of a mental reality determined by that point. Then from the subject of enunciation issues a [[subject of the statement]], in other words, a [[subject]] bound to statements in conformity with a dominant [[reality]] (of which the mental reality just mentioned is a part, even when it seems to oppose it) [the two subjects of enunc, state, also end up recoiling into each other, which is the important part of this regime]
[[signifiance]] brought about uniformity in the [[substance]] of [[enunciation]]; now [[subjectivity]] effects an [[individuation]], collective or particular. Substance has become the subject, as they say.
129/130
There is no longer even a need for a [[transcendent]] [[center]] of [[power]]; power is instead [[immanent]] and melds with the [[real]]...
A new form of [[slavery]] is invented, namely being [[slave]] to oneself...
[[ATP p129-1]]
[[psychoanalysis]] "...confines every [[desire]] and [[statement]] to a genetic axis or [[overcode]]ing [[structure]], and makes infinite, monotonous [[tracing]]s of the stages ib that axis or constituents of that structure."
[[ATP p13-2]]
"[[schizoanalysis]] rejects any idea of pretraced destiny, whatever name is given to it--divine [[anagogic]], historical, economic, structural, hereditary, or [[syntagmatic]]."
[[treatment]]
[[tracing]]
[[ethics]]
[[Althusser]] clearly brings out this constitution of social individuals as subjects; he calls it [[interpellation]] ("Hey, you over there!") and calls the [[point]] of [[subjectification]] the [[Absolute Subject]]...
[[ATP p129-2]]
...a curious [[linguistic]] personology that is very close to the [[cogito]]: the [[you]], which can doubtless designate the person one is addressing, but more importantly, a [[point]] of [[subjectification]] on the basis of which each of us is constituted as a [[subject]].
The [[I]] as [[subject of enunciation]]. designating the person that utters and reflects its own use in the [[statement]] ("the empty [[nonreferential]] [[sign]]"); this is the I appearing in propositions of the type "I believe, I think, I assume..." Finally, the I as [[subject of the statement]] indicating a state for which [[she]] or [[he]] could always be substituted "I suffer, I walk, I breathe, I feel..." This is not, however a question of a linguistic operation, for a subject is never the condition of possibility of [[language]] or the cause of the statement; there is no subject, only [[collective assemblage]]s of enunciation. [[subjectification]] is simply one such [[assemblage]] and designates a [[formalization of expression]] or a [[regime of signs]] or a [[form of expression]] rather than a condition internal to language. ...
Subjectification as a regime of signs or a form of expression is tied to an assemblage, in other words, an organization of [[power]] that is already fully functioning...
[[ATP p130-1]]
The idea of [[psychoanalysis]] as a demonstration of the [[repressive]] function of the [[postsignifying]] [[regime]]. Always stuck in the same [[linear]] proceedings, internalizing [[statement]]s, never learning to speak in my own [[proper name]], surrounded by a permanence of [[point]]s of [[subjectification]].
[[ATP p130-2]]
The two [[axes]] of the [[signifying]] [[regime]] and the two axes of the [[postsignifying]] regime.
[[consciousness]] as the [[subject of the enunciation]] and the [[subject of the statement]] becoming one.
[[ATP p130/131-1]]
There is a [[redundancy]] of consciousness and love that is not the same as the [[signifying]] redundancy of the other [[regime]]. In the signifying regime, redundancy is a phenomenon of objective [[frequency]] involving [[sign]]s or [[element]]s of signs (the [[phoneme]]s, letters, and groups of letters in a [[language]]); there is both a [[maximum frequency]] of the signifier in relation to each sign, and a [[comparative frequency]] of one sign in relation to another.
In any case, it could be said that this regime develops a kind of "[[wall]]" on which signs are inscribed, in relation to one another and in relation to the signifier. In the [[postsignifying]] regime, on the other hand, the redundancy is one of [[subjective resonance]] involving above all [[shifter]]s, [[personal pronoun]]s and above all [[proper name]]s. Here again we may distinguish between the [[maximum resonance]] of self-consciousness (Self=Self) and a [[comparative resonance]] of names (Tristan... Isolde...).
This time, however, there is no longer a wall upon which the frequency is tallied but instead a [[black hole]] attracting [[consciousness]] and [[passion]] and in which they [[resonate]]. Tristan calls Isolde, Isolde calls Tristan, both drawn toward the black hole of a self-consciousness, carried by the tide toward [[death]]. When the linguists distinguish between two forms of redundancy, frequency and resonance, they often ascribe the latter a merely derivative status. In fact, is is a question of two [[semiotic]]s that mix but retain their own distinct principles (similarly, one could define the other [[form of redundancy]]s, such as rhythmic, gestural, or numerical, relating to other regimes of signs.
[[ATP p131-1]]
The most essential distinction between the [[signifying]] regime and the [[subjective]] [[regime]] and their respective [[redundancy]]s is the [[movement of deterritorialization]] they [[effectuate]]. Since the signifying [[sign]] only refers to other signs, and the set of all signs to the signifier itself, the corresponding [[semiotic]] enjoys a high level of [[deterritorialize]]ation; but it is a deterritorialization that is still [[relative]], [[expressed]], as [[frequency]]. In this [[system]], the [[line of flight]] remains negative, it is assigned a negative sign.
As we have seen, the subjective regime proceeds entirely differently: precisely because the sign breaks its relation of [[signifiance]] with other signs and sets off racing down a positive line of flight, it attains an [[absolute]] deterritorialization expressed in the [[black hole]] of [[consciousness]] and [[passion]]. The absolute deterritorialization of the cogito. That is wh subjective [[redundancy]] seems both to [[graft]] itself onto signifying redundancy and to derive from it, as second-degree redundancy.
[[ATP p132/133-1]]
[[subjectification]] assigns the [[line of flight]] a positive signs, it carries [[deterritorialize]]ation to the [[absolute]], [[intensity]] to the highest [[degree]], [[redundancy]] to a reflexive form, etc. But it has its own way of repudiating the positivity it frees, or of relativizing the absoluteness it attains, without, however, falling back to the preceding [[regime]]. In this redundancy of [[resonance]], the absolute of consciousness is the absolute of impotence and the intensity of [[passion]], the heat of the void.
This is because subjectification essentially constitutes finite [[linear]] proceedings, one of which always ends before the next beings; thus the cogito is always recommenced, a passion or grievance is always recapitulated. Every consciousness pursues its own death, every love-passion its own end, attracted by a [[black hole]], and all the black holes [[resonate]] together.
Thus subjectification imposes on the [[line of flight]] a [[segmentarity]] that is forever repudiating that [[line]], and upon [[absolute]] deterritorialization a [[point]] of abolition that is forever blocking that deterritorialization or diverting it. The reason for this is simple; [[form of expression]]s and [[regime of signs]] are still [[strata]] (even considered in themselves, after abstracting [[form of content]]s [[stratum]]); subjectification is no less a [[stratum]] than [[signifiance]].
[[ATP p133-1]]
The principal [[strata]] binding human beings are the [[organism]], [[signifiance]] and [[interpretation]], and [[subjectification]] and [[subjection]]. These strata together are what separates us from the [[plane of consistency]], and the [[abstract machine]], where there is no longer any [[regime of signs]]... [[schizo flow]]
[[destratify]], open up to a new function, a [[diagrammatic]] function... Make the [[body without organs]]... Are there not [[diagram]]atic [[redundancy]]s distinct from both [[signifying]] or [[subjective]] redundancies? No longer are they knots of [[arborescence]] but resumptions and upsurges in a [[rhizome]]...
The [[three great strata]]
[[ATP p133/134-1]]
It seems necessary to distinguish between three types of [[deterritorialize]]ation; the first type is [[relative]], proper to the [[strata]], and culminates in [[signifiance]], the second is [[absolute]], but still negative and [[stratic]], and appears in [[subjectification]] (Ratio et Passio); finally, there is the possibility of positive absolute deterritorialization on the [[plane of consistency]] or the [[body without organs]]
[[ATP p134-1]]
[[summary]] section. Especially important to look at the [[overcode]]ing function of [[language]] as it appears on the next page.
The [[presignifying]] [[semiotic]], in which the overcoding marking the privileged status of language operates diffusely; [[enunciation]] is [[collective]]. [[statement]]s themselves are [[polyvocal]], and the [[substance of expression]] is multiple; relative [[deterritorialize]]ation is determined by the confrontation between the [[territoriality]]s and the [[segmentary]] [[lineage]]s that ward off the [[State]] [[apparatus]].
The [[signifying]] semiotic: overcoding is fully [[effectuate]]d by the [[signifier]] and by the State apparatus that emits it; there is uniformity of enunciation, unification of the [[substance]] of [[expression]]. and control over statements in a regime of circularity; [[relative]] deterritorialization is taken as far as it can go by a redundant and perpetual referral from [[sign]] to sign.
The [[countersignifying]] semiotic: Here, overcoding is assured by the [[Number]] as [[form of expression]] or enunciation, and by the [[War Machione]] upon which it depends; deterritorialization follows a line of active destruction or abolition.
The [[postsignifying]] semiotic: in which overcoding is assured by the [[redundancy]] of [[consciousness]]; a [[subjectification]] of enunciation occurs on a passional [[line]] that makes the organization of [[power]] ([[pouvoir]]) [[immanent]] and raises deterritorialization to the [[absolute]], although in a way that is still negative.
There's a [[diagram]] on this page in the text.
[[ATP p134-1]]
Every [[semiotic]] is [[mixed]] and only functions as such; each one necessarily captures [[fragment]]s of one or more other semiotics ([[surplus value of the code]]).
[[ATP p135-1]]
...the possibility of [[transforming]] one abstract or pure [[semiotic]] into another, by the virtue of translatability ensuing from [[overcode]]ing as the special characteristic of [[language]]. [[ATP p136-1]].... not a question of concrete mixed semiotics but of transformations of one abstract semiotic into another (even though that transformation is not itself abstract, in other words, effectively takes place without being performed by a "translator" in the role of pure knower).
All transformations taking a given semiotic into the [[presignifying]] regime may be called [[analogical]]; those that take it into the [[signifying]] regime are [[symbolic]]; into the [[countersignifying]] [[polemic]] or [[strategic]]; into the [[postsignifying]], [[consciousness-related]] or [[mimetic]]; finally transformations that blow apart semiotics [[system]]s or [[regime of signs]] on the [[plane of consistency]] of a positive absolute [[deterritorialize]]ation are called [[diagrammatic]].
[talks about what a transformation is not]
A transformational [[statement]] [[mark]]s the way in which a semiotic translates for its own purposes a statement originating elsewhere, and in so doing diverts it, leaving untransformable residues and actively resisting the inverse transformation. Furthermore they are not limited to this list. It is always through transformation that a new semiotic is created in its own right. Translations are creative. New pure regimes of sings are formed through transformation and [[translation]]. There is no general [[semiology]] but rather a transsemiotic.
Next page and a half have [example]s of all this. They bring up [[faciality]] [[individuation]] and [[subjectification]].
[[ATP p136-1]]
In each case we must judge whether what we see is an adaptation of an old [[semiotic]], a new variety of a particular mixed semiotic, or the [[process]] of creation of an as yet unknown [[regime]]...
A highly [[strata]]fied semiotic is difficult to get away from. Even a [[presignifying]] or [[countersignifying]], semiotic, even an [[asignifying]] [[diagram]], harbors knots of coincidence just waiting to form [[virtual]] centers of [[signifiance]] and [[point]]s of [[subjectification]]...
p139
Experiment, don't signify and interpret!.. Semiotize yourself instead of rooting around in your prefab childhood and western semiology... In short, a true semiotic [[transformation]] appeals to all kinds of [[variable]]s, not only external ones, but also variables implicit to [[language]], [[internal]] to [[statement]]s. AKA [[order-word]]s! great connection here.
[[ATP p137-1]]
[[pragmatic]]s then. already displays two [[component]]s. The first could be called [[generative]] since it shows how the various abstract regims form concrete mixed semiotics, with what [[variant]]s, how they combine, and which one is predominant. The second is the [[transformational]] component, which shows how these [[regime of signs]] are translated into each other, especially when there is a creation of a new [[regime]]. Generative pragmatics makes [[tracing]]s of mixed semiotics; transformational pragmatics makes [[map]]s of transformations.... All of these [[question]]s fall within the purview of pragmatics.
For [[language]] is a political affair before it is an affair for linguistics; even the evaluation of degrees of grammaticality is a political moment.
[[ATP p138/139-1]]
"You will be allowed to live and speak, but only after every outlet has been obstructed. Once a [[rhizome]] has been obstructed, arborified, it's all over, no [[desire]] stirs; for it is always by a rhizome that desire moves and produces." [[question]] of the relation to this and the [[disjunctive synthesis]]
"Wherever [[desire]] climbs a tree, internal repercussions trip it up and it falls to its death; the [[rhizome]], on the other hand, acts on desire by external, productive outgrowths."
[[ATP p14-2]]
"plug the [[tracing]]s back into the [[map]], connect the roots or trees back up with a [[rhizome]]
This page has [[example]]s of how to do this with [[Little Hans]] and his [[unconscious]]
[[ATP p15-1]]
[[treatment]]
[[ethics]]
[[summary]], then
[[presignifying]], [[signifying]], [[countersignifying]] and [[postsignifying]] correlate to [[segmentarity]], [[signifiance]] and [[interpretation]], [[Number]], and [[subjectification]].
[[ATP p139/140-1]]
Only one side of the [[assemblage]] has to do with [[enunciation]] or [[formalizes]] [[expression]]; on its other side, inseparable from the first, it formalizes [[content]]s. it is a [[machinic assemblage]] or an [[assemblage]] of bodies.... They have their own [[formalization]] and have no relation of [[symbolic]] correspondence or [[linear]] [[causality]] with the [[form of expression]]: the two [[form]]s are in [[reciprocal presupposition]], and they can be abstracted from each other only in a very [[relative]] way because they are two sides of a single assemblage.
[[summary]]
[[ATP p140-1]]
There is something in the [[assemblage]] "that is still more profound than these sides and can account for both of the [[form]]s in [[presupposition]], [[form of expression]] or [[regime of signs]] ([[semiotic]] systems) and [[form of content]] or [[regime]]s of bodies (physical [[system]]s). This is what we call the [[abstract machine]], which constitutes and [[conjugate]]s all of the assemblages [[cutting edge of deterritorialization]]s. We must say that the abstract machine is necessarily "much more" than [[language]].
[[ATP p140-2]]
A true [[abstract machine]] has no way of making a [[distinction]] within itself [[between]] a [[plane of expression]] and a [[plane of content]] because it draws a single [[plane of consistency]], which in turn [[formalize]]s [[content]]s and [[expression]]s according to [[strata]] and [[reterritorialize]]ations. The abstract machine in itself is [[destratified]], [[deterritorialize]]d; it has no [[form]] of its own (much less [[substance]]) and makes no distinction within itself
[[between]] content and expression, even though it presides over that distinction and distributes it in varied [[stratum]], domains and [[territory]]
An abstract machine in itself is not physical or [[corporeal]], any more than it is [[semiotic]]; it is [[diagrammatic]] (it knows nothing of the distinction between the artificial and the natural either). It operates by [[matter]], not by substance; by [[function]], not by form. Substances and forms are of expression "or" of content. But functions are not yet "[[semiotically]]" formed, and matters are not yet "physically" formed. The abstract machine is pure [[Matter-Function]]-a [[diagram]] independent of the forms and substances, expressions and contents it will distribute.
[[ATP p141-1]]
We define the [[abstract machine]] as the aspect or moment at which nothing but [[function]]s and [[matter]]s remain. A [[diagram]] has neither [[substance]] nor [[form]], neither [[content]] nor [[expression]]. Substance is a [[formed matter]], and matter is a substance that is unformed, either physically or [[semiotically]]. Whereas expression and content have distinct forms, are really distinct from each other, function has only [[trait]]s of content and of expression, [[between]] which it establishes a connection: it is no longer even possible to tell whether it is a [[particle]] or a [[sign]]. A [[matter-content]] having only [[degree]]s of [[intensity]], [[resistance]], [[conductivity]], [[heating]], [[stretching]], [[speed]], or [[tardiness]]; and a [[function-expression]] having only [[tensor]]s, as in a [[system]] or mathematical or musical [[writing]].
Writing now functions on the same level as the [[real]], and the real materially writes. The diagram retains the most [[deterritorialize]]d content and the most deterritorialized expression in order to [[conjugate]] them. Maximum deterritorialization sometimes starts from a [[trait of content]] and sometimes from a [[trait of expression]]; that trait is said to be "deterritorializing" in relation to the other precisely because it diagrams it, carries it off, raises it to its own power. The most deterritorialized element causes the other element to cross a [[threshold]] enabling a [[conjunction]] of their respective deterritorializations, a shared acceleration.
This is the abstract machine's [[absolute]] [[positive]] deterritorialization. That is why [[diagram]]s must by distinguished from [[index]]es, which are [[territorial]] [[sign]]s, but also from [[icon]]s, which pertain to [[reterritorialize]]ation, and from [[symbol]]s, which pertain to [[relative]] or [[negative]] deterritorialization. Defined [[diagrammatically]] this way, an abstract machine is neither an infrastructure or Eidos. Rather, it plays a piloting role.
The [[diagrammatic]] or abstract machine does not [[function]] to [[represent]], even something real, but rather constructs a real that is yet to come, a new type of reality. Thus when it constitutes [[point]]s of creation or [[potentiality]] it does not stand outside of [[history]] but is instead always "prior to" history. Everything escapes, everything creates-never alone, but through an abstract machine that produces [[continuum]]s of [[intensity]], effects [[conjunction]]s of deterritorialization, and extracts expressions and contents.
This [[Real-Abstract]] is totally different from the fictitious abstract of a supposedly pure [[machine]] of expression. It is an Absolute, but one that is neither [[undifferentiated]] or transcendent. Abstract machines thus have [[proper name]]s (as well as [[date]]s). which of course designate not persons or subjects but matters and functions....
It is always a question of a conjunction of Matter and Function... There is a diagram whenever a singular abstract machine functions directly in a matter.
[[ATP p141-2]]
The [[diagram]] knows only [[trait]]s and [[cutting edge of deterritorialization]]s that are still [[element]]s of [[content]] insofar as they have [[matter]] and of [[expression]] insofar as they are [[function]]al, but which draw one another along, form [[relay]]s, and meld in a shared [[deterritorialize]]ation; [[particles-signs]]
There is nothing surprising in this, for the [[real distinction]] [[between]] [[form of expression]] and [[form of content]] only appears with the [[strata]] and is different with each [[stratum]].
[[ATP p141/142-1]]
A quick [[summary]] of [[strata]], [[language]], [[stratum]], [[double articulation]], [[diagram]]s, [[diagrammaticism]], and [[diagrammatism]].
In short, the strata substantialize [[diagrammatic]] [[matter]]s and separate a formed [[plane of content]] from a formed [[plane of expression]]...
[[ATP p142-1]]
[[diagrammaticism]] should not be confused with an operation of the [[axiom]]atic type... The [[program]] of a [[stratum]] against the [[diagram]] of the [[plane of consistency]]. This does not, however, preclude the diagram's heading back down the road to [[escape]] and scattering new, [[singular]] [[abstract machine]]s...
[[ATP p143-1]]
[[politics]]s of an x, a science, a job, a life, a wife, a nation, has: [[madness]], [[police]], [[signifiance]], [[subjectification]], [[pole]]s, [[oscillation]]s, [[strata]], [[destratification]]s, [[line of flight]] and [[reordering]], the "more or less [[potential]] [[event]]s of its own politics"
[[ATP p143-2]]
[[axiom]]atics "possesses a deliberate [[will]] to halt or stabilize the [[diagram]], to take its place by lodging itself on a [[level]] of coagulated abstraction too large for the concrete but too small for the [[real]]. We will see in what sense this is the "[[capitalist]]" level.
[[ATP p144-1]]
Four [[component]]s of [[pragmatic]]s or [[schizoanalysis]]: The [[generative]], the [[transformational]], the [[diagrammatic]], and the [[machinic]]
[[ATP p144-2]]
[[pragmatic]]s as a whole would consist in this: making a [[tracing]] of the [[mixed semiotic]]s, under the [[generative]] [[component]];
making the [[transformational]] [[map]] of the [[regime]]s, with their possibilities for [[translation]] and [[creating]], for budding along the [[line]]s of the tracings;
Making the [[diagram]] of the [[abstract machine]]s that are in play in each case, either as [[potentiality]] or as effective [[emergence]]
outlining the [[program]] (is this the [[machinic]] component?) of the [[assemblage]]s that distribute everything and bring a circulation of movement with alternatives, jumps, and [[mutation]]s.
Then goes on to give an [[example]] of what that would look like...
[[treatment]]
[[ATP p145/146-1]]
[[brain]] and [[memory]] as being naturally a [[rhizome]] rather than [[arborescent]]
from the bottom paragraph
[[ATP p16-1]]
“Agents of production likewise alight on [[Schreber]]’s body and cling to it—the sunbeams, for instance, that he attracts, which contain thousands of tiny spermatozoids.”
“Sunbeams, birds, voices, nerves enter into changeable and genealogically complex relationships with God and forms of [[God]] derived from the godhead by division.[[[desiring machine]]s and their relationship to the [[miraculating machine]]] [[genealogy]]
But all this [desiring-production] happens and is all recorded on the [[surface]] of the body without organs: even the compilations of the agents, even the divisions of God, even the genealogies marking it off into the squares like a [[grid]], and their [[permutation]]s. The surface of this uncreated body swarms with them, as a lion’s man swarms with fleas.”
[[AO p15-3]]
Something will happen. Something is already happening. But what comes to pass on the [[body without organs]] is not exactly the same as how you make yourself one. However, one is included in the other. Hence the two phases... Why two clearly distinguished phases when the same thing is done in both cases..? One [[phase]] is for the fabrication of the BwO, the other to make something [[circulate]] on it or [[pass]] across it; the same procedures are nevertheless used in both phases, but they must be done over, done twice.
[[ATP p146/147-1]]
For each type of [[body without organs]], we must ask:
(1) What type is it, how is it fabricated, by what procedures and means (predetermining what will come to pass)?
(2) what are its [[mode]]s, what comes to pass, and with what [[variant]]s and what surprises, what is unexpected and what expected?
In short, there is a very special relation of [[synthesis]] and [[analysis]] [[between]] a given type of BwO and what happens on it; an a priori synthesis by which something will necessarily be produced in a given mode (but what it will be is not known) and an [[infinite]] analysis by which what is produced on the BwO is already part of that body's production, is already included in the body, is already on it (but at the price of an infinity of passages, divisions, and secondary productions). It is a very delicate [[experiment]]ation since there must not be any stagnation of the modes or slippage in type: the [[masochist]] and the drug user court these ever-present dangers that empty their BwO's instead of filling them.
[[ATP p152-1]]
You can fail twice, but it is the same failure, the same danger. Once at the level of the constitution of the [[body without organs]] and again at the level of what passes or does not pass across it. You think you have made yourself a good BwO, that you chose the right Place, Power [[pouvoir]], and Collectivity (there is always collectivity, even when you are alone), and then nothing passes, nothing [[circulate]]s, or something prevents things from moving... It is possible to locate this danger [[point]], a point of blockage, an outburst of delirium... To block, to be blocked ([[grammar]]), is that not still an [[intensity]]? In each case, we must define what comes to pass and what does not pass, what causes passage and prevents it
[[treatment]]
[[ATP p152-2]]
Door openers and trap closers, Malabars and Fierbras. The [[body]] is now nothing more than a set of valves, locks, floodgates, bowls, or communicating vessels, each with a [[proper name]]: a peopling of the [[body without organs]], a Metropolis that has to be managed with a whp. What peoples it, what passes across it, what does the blocking?
[[ATP p152-3]]
[[Spinoza]] and his book [[Ethic]]s and it's relationship to the [[body without organs]]
[[ATP p153-1]]
The [[body without organs]] is the [[field of immanence]] of [[desire]], the [[plane of consistency]] specific to desire (with desire defined as a [[process]] of production without reference to any exterior agency, whether it be a [[lack]] that hollows it our or a pleasure that fills it in).
[[ATP p153-2]]
There is in fact a [[joy]] that is [[immanent]] to [[desire]] as though desire were filled by itself and its contemplations, a joy that implies no [[lack]] or impossibility and is not measured by [[pelasure]] since it is what distributes [[intensity]]s of pleasure and prevents them from being suffused by [[anxiety]], [[shame]], and [[guilt]]. There is.... a way of constituting a [[body without organs]] and bringing forth a [[plane of consistency]] of desire,
[[ATP p154-1]]
The [[becoming-animal]] of the [[masochist]] and the whole [[assemblage]] of it is discussed. "It is a question of forces... it is less a destruction than an [[exchange]] and [[circulation]].
There are two [[series]], the horse's... and the masochist's... one series explodes into the other, forms a [[circuit]] with it... "at the mere thought of your boots... i will feel fear... it will no longer be women's legs that have an effect one me..." legs are still [organ]]s, but the boots are now only a [[zone]] of [[intensity]] as an imprint or a zone on a [[body without organs]]
An excellent [[summary]] of [[becoming]].
[[ATP p155-1]]
[[pleasure]] is an [[affect]]ion f a person or a [[subject]]; it is the only way for persons to "find themselves" in the [[process]] of [[desire]] that exceeds them; pleasures, even the most artificial, are [[reterritorialize]]ations...
[[singularity]]s that can no longer be said to be personal, [[intensity]]s that can no longer be said to be [[extensive]]. The [[field of immanence]] is not internal to the [[self]]... it is like the absolute Outside that knows no Selves because interior and exterior are equally a part of the [[immanence]] in which they have fused...Immanence, instead of a measure that [[interrupt]]s it...
[[ATP p155/156-1]]
[[Tao]] is mentioned.
[[plane of consistency]] as the totality of all [[body without organs]], "a pure [[multiplicity]] of [[immanence]]... each person takes and makes what they can, according to tastes they have succeeded in abstracting from a [[self]], according to a [[politic]]s or strategy successfully abstracted from a given formation, according to a given procedure abstracted from its origin.
[[ATP p156/157-1]]
We distinguish [[between]]: [[body without organs]] which are different types, genuses, or substantial [[attribute]]s... the cold of the drugged.. the pain of the masochist BwO. Each has its degree 0 as its principle of production ([[remissio]]).
What happens on each type, the [[mode]]s, the [[intensity]]s that are produced, the waves that pass ([[latitudo]]).
The potential totality of all BwO's, the [[plane of consistency]] ([[omnitudo]] sometimes called BwO)...
How to reach the plane of consistency?..
Are not [[assemblage]]s necessary to fabricate each BwO, is not a great [[abstract machine]] necessary to construct the [[plane of consistency]]?..
A [[plateau]] is a piece of [[immanence]]. Every BwO is made up of plateaus. Every BwO is itself a plateau in communication with other plateaus on the plane of consistency. The BwO is a [[component of passage]].
[[ATP p157-1]]
an excellent [[schizo flow]]
the [[three great strata]] are mentioned
the [[judgement of god]]
[[angle of signifiance]] and [[point of subjectification]] are mentioned. What do they mean?
[[ATP p157/158-1]]
To the [[strata]] as a whole, the [[body without organs]] opposes [[disarticulation]] (or n [[articulation]]s) as the property of the [[plane of consistency]], [[experiment]]ation as the [[operation]] on that [[plane]] (no [[signifier]], never [[interpret]]!) and [[nomad]]ism as the movement (Keep moving, even in place, never stop moving, motionless voyage, desubjectification). What does it mean to disarticulate, to cease to be an [[organism]]?
[[treatment]]
[[summary]] [[stratum]]
[[ethics]]
[[ATP p158/159-1]]
Short term [[memory]] as a [[rhizome]], a [[diagram]], dis[[continuity]], [[rupture]], [[multiplicity]] vs long term memory, [[arborescent]]
[[ATP p16-2]]
[[arborescent]] systems are hierarchical systems with centers of [[signifiance]] and [[subjectification]], central automata like organized memories. In the corresponding models, an element only receives information from a higher unit, and only receives a subjective [[affect]]ation along preestablished paths.
[[ATP p16-3]]
"the imagery of command trees' results in "accepting the primacy of hierarchical structures [which] amounts to giving [[arborescent]] structures privileged status...The arborescent form admits of topological explanation.... In a hierarchical system, an individual has only one active neighbor, his or her hierarchical superior... The channels of transmission are preestablished: the arborescent system preexists the individual, who is integrated into it at an allotted place" ([[signifiance]] and [[subjectification]])'
[[ATP p17-1]]
A great [[summary]]
[[cancerous tissue]] 63 the [[egg]] [[associated milieu]] [[milieu]] 164-166 could be memorized and understood
[[grammar]] [[indefinite article]] 164
the [[abstract machine]] [[draw]]s the [[body without organs]] 165
[[ATP p159-1]]
[[signifiance]] is never without a [[white wall]] upon which it inscribes its [[sign]]s and [[redundancy]]s. [[subjectification]] is never without a [[black hole]] in which it lodges its [[consciousness]], [[passion]], and redundancies. Since all [[semiotic]]s are mixed and [[strata]] come in at least twos, it should come as no surprise that a very special mechanism is situated at their [[intersection]]... it is a [[face]]: the [[white wall/black hole]] [[system]]... The face is not an [[envelope]] exterior to the person who speaks, thinks or feels. The [[form]] of the [[signifier]] would remain indeterminate if the potential listener did not use the face of the speaker to guide his or her choices... dialogic [[example]]
[[ATP p160/166-1]]
A [[child]], woman, [[mother]], man, father, boss, [[teacher]], [[police]] officer, does not speak a general [[language]] but one whose [[signifying]] [[trait]]s are [[index]]ed to specific [[faciality]] [[trait]]s. [[face]]s are basically not [[individual]]; the define [[zone]]s of [[frequency]] or [[probability]], delimit a [[field]] that neutralizes in advance any [[expression]]s or connections unamenable to the appropriate [[signification]]s.
Similarly, in the [[form]] of [[subjectivity]], whether [[consciousness]] or [[passion]], would remain absolutely empty if faces did not form loci of [[resonance]] that dominate reality. The face itself is [[redundancy]]. It is itself in redundancy with the redundancies of [[signifiance]] or [[frequency]], and those of [[resonance]] or subjectivity.
Then 3 [[example]]s/descriptions of the [[white wall/black hole]] [[system]].
face as white wall then black hole comes in, face takes shape on the wall, in the black hole, faces on the wall with their hole, in the whole, with their linearized, rolled up wall
edit to add [are these the three examples
"The face constructs the wall that the signifier needs in order to bounce off of; it constitutes the wall of the signifier, the frame or screen. The face digs the hole that subjectification needs in order to break through; it constitutes the black hole of subjectivity as consciousness or passion, the camera, the third eye. or should we say things differently? It is not exactly the face that constitutes the wall of the signifier or the hole of subjectivity. The face, at least the
concrete face, vaguely begins to take shape on the white wall. It vaguely
begins to appear in the black hole. "]
[[ATP p167-1]]
A psychologist once said that the face is a visual [[percept]]...
Concrete faces cannot be assumed to come ready-made. They are [[engendered]] by an [[abstract machine of faciality]], which produces them at the same time as it gives the [[signifier]] its [[white wall]] and [[subjectivity]] its [[black hole]]. Thus the [[black hole/white wall]] [[system]] is, to being with, not a [[face]] but the [[abstract machine]] that produces faces according to the changeable combinations of its cogwheels. Do not expect the abstract machine to resemble what it produces, or will produce. The abstract machine crops up where you least expect it...
[[ATP p168-1]]
Discussion of a [[Kafka]] text and a [[Debussy]]/[[Nijinsky]] ballet, then" There is nothing to explain, nothing to [[interpret]]. It is the pure [[abstract machine]] of a twilight state. [[black hole/white wall]]? But depending on the combinations it could just as well be black wall, and the hole white... They circulate in the white wall/black hole [[system]]. Nothing in this resembles a [[face]], yet throughout the system faces are distributed and [[faciality]] [[trait]]s organized. Nevertheless, the abstract machine can be [[effectuate]]d in other things besides face, but not in any order, and not without the necessary foundation ([[raison]]s).
[[ATP p168-2]]
the outcome of [[arborescent]] structures; "the structure of Power."
[[ATP p17-2]]
The authors of the quote in [[ATP p16-3]] compare their systems to "acentered systems, finite networks of automata in which communication runs from an neighbor to any other, the stems or channels do not preexist, and all individuals are interchangeable, defined only by their [[state]] at a given moment--such that the local operations are coordinated and the final, global result synchronized without a central agency."
[[ATP p17-3]]
"the solution without a [[despot]] is to be found in an [[decenter]]ed [[multiplicity]] possessing a finite number of [[state]]s with signals to indicate corresponding [[speed]]s... The authors even demonstrate that this kind of [[machinic]] multiplicity, [[assemblage]], or [[society]] rejects any kind of centralizing or unifying automaton as an "asocial intrusion."
[[ATP p18-1]]
The [[face]] is part of a [[surface]]-[[hole]]s, holey surface, [[system]]. This system should under no circumstances be confused with the volume-cavity system of the [[body]]. The [[head]] is included in the body, but the face is not. The face is a surface, [[facial]] [[trait]]s, [[line]]s, wrinkles... the face is a [[map]] even when it is applied to and wraps a volume, even when
it surrounds and borders cavities that are now no more than holes. The head even the human head, is not necessarily a face.
[[ATP p169-1]]
The [[face]] is produced only when the [[head]] ceases to be a part of the [[body]], when it ceases to be [[code]]d by the body, when it ceases to have a multidimensional, [[polyvocal]] [[corporeal]] code-when the body, head included, has been [[decode]]d and has to be [[overcode]]d by something we shall call the [[Face]]. This amounts to saying that the [[head]], all the volume-cavity [[element]]s of the head, have to be [[facialized]]. What accomplishes this is the [[screen]] with [[hole]]s, the [[black hole/white wall]], the [[abstract machine of faciality]]. But the operation does not end there: if the head and its elements are facialized, the entire body also can be facialized, comes to be facilized as part of an inevitable [[process]]. when the mouth and nose, but first the eyes, becomes a [[holey]] [[surface]], all the other volumes and cavities of the [[body]] follow.
[[fetish]]ism, [[erotomania]], etc, are inseparable from these processes of facialization. It is not at all a question of taking a part of a body and making it resemble a face, or making a dream-face dance in a cloud. No anthropomorphism here. Facialization operates not by resemblance but by an order of reasons [[[raison]]?]. It is a much more [[unconscious]] and [[machinic]] [[operation]] that [[draw]]s the entire body across the holey surface, and in which the role of the face is not as a [[model]] or [[image]], but as an [[overcode]]ing of all the [[decode]]d parts. Everything remains [[sexual]]; there is no [[sublimation]], but there are new [[coordinate]]s.
[[ATP p170-1]]
It is precisely because the [[face]] depends on an [[abstract machine of faciality]] that it is not content to cover the [[head]], but touches all parts of the [[body]], and even, if necessary, other objects without resemblance. The [[question]] then becomes what circumstances [[trigger]] the [[machine]] that produces the [[face]] and [[facialization]]. Although the head, even the human head, is not necessarily a face, the face is produced in humanity. But it is produced by a necessity that does not apply to human beings "in general." The face is not an [[animal]], but neither is it [[human]] in general; there is even something absolutely [[inhuman]] about the face. It would be an error to proceed as though the face became inhuman only beyond a certain [[threshold]]: close-up, extreme magnification, recondite [[expression]], etc.
[[ATP p170-2]]
The [[inhuman]] in [[human]] beings: that is what the [[face]] is from the start. It is by nature a close-up, with its inanimate [[white surface]]s, its shining [[black hole]]s, its emptiness and boredom. Bunker-face. To the [[point]] that if human beings have a destiny it is rather to [[escape]] the face, to [[dismantle]] the face and [[facialization]]s, to [[become]] [[imperceptible]], to become [[clandestine]], not by returning to [[animality]], nor even by returning to the [[head]], but by quite [[spiritual]] and special [[becoming-animal]]s, by strange true becomings that get past the [[wall]] and get out of [[black hole]]s, that make [[faciality trait]]s [[trait]] themselves finally [[elude]] the [[organization]] of the face-freckles dashing toward the [[horizon]], hair carried off by the wind, eyes you traverse instead of seeing yourself in or gazing in those glum face-to-face encounters [[between]] [[signifying]] [[subjectivity]]s.
"I no longer look into the eyes of the [[woman]] I hold in my arms but I [[swim]] through, head and arms and legs, and I see that behind the sockets of the eyes there is a region unexplored, the world of futurity, and here there is no [[logic]] whatsoever... I have broken the wall... My eyes are useless, for they render back only the [[image]] of the known. My whole body must become a constant beam of light, moving with an ever greater rapidity, never arrested, never looking back, never dwindling... therefore I close my ears, my eyes, my mouth." [[body without organs]]. Yes the face has a great [[future]], but only if it is destroyed, [[dismantle]]d. On the road to the [[asignifying]] and [[asubjective]]. But so far we have explored nothing of what we [[sense]].
[[ATP p170/171-1]]
The move from the [[body]]-[[head]] [[system]] to the [[face]] system has nothing to do with an evolution or genetic stages... Nor can there be any appeal to a preexisting [[subject]], or one brought into existence, except by the [[abstract machine of faciality]]... The [[gaze]] is but secondary in relation to the gazeless eyes, to the [[black hole]] of faciality. The [[mirror stage]] is but secondary in relation to the [[white wall]] of faciality..
[[ATP p171-1]]
Any approach based on stages in ontogenesis is arbitrary; it is thought that what is fastest is primary, or even serves as a foundation or springboard for what comes next... What we need to consider is not fundamentally [[organ]]s without bodies, or the fragmented [[body]]; it is the [[body without organs]], animated by various [[intensive]] movements that determine the nature and emplacement of the [[organ]]s in question and make that body an [[organism]], or even a [[system]] of [[strata]] of which the organism is only a part. It becomes apparent that the slowest of movements, or the last to occur, or arrive, is not the least [[intense]]. And the fastest may already have converged with it, connected with it, in the disequilibrium of a [[nonsynchronic]] [[development]] of strata that have different [[speed]]s and lack a sequence of [[stage]]s but are nevertheless [[simultaneous]]. The [[question]] of the [[body]] is not one of [[part-objects]] but of [[differential]] speeds.
[[ATP p171-2]]
These [[movement]]s are movements of [[deterritorialize]]ation. They are what make the [[body]] an [[animal]] or [[human]] [[organism]]. The prehensile hand implies a [[relative]] deterritorialization not only of the front paw but also of the locomotor hand. It has it's correlate, the use-object or [[tool]]: the club is a deterritorialized branch... each serves as a [[correlate]] of the other.
[[ATP p171/172-1]]
The [[human]] [[head]] also implies a [[deterritorialize]]ation in relation to the [[animal]] and has as its [[correlate]] the [[organization]] of a [[world]], in other words, a [[milieu]] that has itself been deterritorialized (the [[steppe]] is the first world in comparison to the [[forest]] milieu).
But the [[face]] represents a far more [[intense]], if [[slow]]er deterritorialization. We could say that it is an [[absolute]] deterritorialization: it is no longer relative because it removes the head from the [[stratum]] of the [[organism]], human or animal, and connects it to other [[strata]], such as [[signifiance]] and [[subjectification]].
Now the face has a [[correlate]] of great importance: the [[landscape]], which is not just a milieu but a deterritorialized [[world]]. There are a number of [[face-landscape]] correlations, on this "higher" [[level]]... [[schizo flow]] of [[art]] and [[Christianity]] [[film]]...
What face has not called upon the landscapes it amalgamated, sea and hill; what landscape has not evoked the face that would have completed it, providing an unexpected complement for its [[line]]s and [[trait]]s? Even when [[painting]] becomes [[abstract]], all it does is rediscover the [[black hole]] and [[white wall]]... Tearing, but also stretching of the canvas along an axis of [[escape]], at a vanishing [[point]] (escape+fuite, point de fuite is used here), along a diagonal, by a knife slice, slash, or hole: The [[abstract machine of faciality]] is already in place that always functions to produces faces and landscapes, however abstract.
...The [[redundancy]] specific to the face and the landscape...
[[ATP p172-1]]
Discussion of the [[genre]] of the [[novel]]...
There is a [[face]]-[[landscape]] [[aggregate]] proper to the novel, in which [[black hole]]s sometimes distribute themselves on a [[white wall]], and the white [[line]] of the [[horizon]] sometimes spins towards a [[black hole]], or both simultaneously.
[[ATP p172/173-1]]
[[theorem]]s of [[deterritorialize]]ation, or [[machinic]] [[proposition]]s.
First theorem: One never deterritorializes alone; there are always at least two terms, [[hand]]-use object, mouth-breast, [[face]]-[[landscape]]. And each of the two terms [[reterritorialize]]s on the other. Reterritorialization must not be confused with a return to a primitive or older territoriality: it necessarily implies a new set of [[artifice]]s by which one [[element]], itself deterritorialized, serves as a new [[territoriality]] for another, which has lost its territoriality as well. There is thus an entire [[system]] of [[horizontal]] and [[complementary]] reterritorializations, [[between]] hand and [[tool]], mouth and breast, face and landscape.
Second theorem: The [[fast]]est of two elements or movements of deterritorialization is not necessarily the most [[intense]] or most deterritorialized. [[intensity]] of deterritorialization must not be confused with [[speed]] of movement or [[development]]. The fastest can even [[connect]] its intensity to the [[slow]]est, which, as an intensity, does not come after the fastest but is simultaneously at work on a different [[stratum]] or [[plane]] (for [[example]], the way the breast-mouth relation is guided from the start by a [[plane]] of [[faciality]]).
Third theorem: It can even be concluded from this that the least deterritorialized reterritorializes on the most deterritorialized. This is where the second system of reterritorializations comes in, the [[vertical]] system running from bottom to top. This is the sense in which not only the mouth but also the breast, hand, the entire body, even the tool, are "[[facialized]]." As a general [[rule]], [[relative]] deterritorializations ([[transcode]]ing) reterritorialize on a deterritorialization that is that is in certain respects [[absolute]] ([[overcode]]ing). We have seen that the deterritorialization of the head into a face is absolute but remains [[negative]] in that it passes from one [[stratum]] to another, from the stratum of the [[organism]] to those of [[signifiance]] and [[subjectification]]. The hand and breast reterritorialize on the face and in the landscape: they are facialized at the same time as they are landscapified. Even a use-object may come to be facialized, you may say that a house... is watching me, not because it resembles a face, but because it is taken up in the [[white wall/black hole]] [[process]], because it connects to the [[abstract machine of faciality]]...
Fourth theorem: The [[abstract machine]] is therefore [[effectuate]]d not only in the faces that produce it but also to varying [[degree]]s in body parts, clothes, and objects that it facializes following an order of reasons ([[raison]]?) (rather than an organization of resemblances).
[[big boy]]
[[ATP p173/174-1]]
It is not the individuality of the [[face]] that counts but the efficacy of the [[cipher]]ing it makes possible, and in what cases it is possible. ..We are certainly not saying the face, the power of the face, engenders and explains social power. Certain [[assemblage]]s of [[power]] require the production of a face, others do not.
Discussion of the [[linear]] and [[segmentary]] functionings of the [[presignifying]] [[regime of signs]] that does not require a face.
[[ATP p174/175-1]]
The face is [[Christ]]... Thus the [[face]] is by nature an entirely specific idea, which did not preclude its acquiring and exercising the most general of [[function]]s: The function of [[biunivocalization]], or [[binarization]]. It has two aspects: The [[abstract machine of faciality]], insofar as it is composed by a [[black hole/white wall]] [[system]], functions in two ways, one of which concerns the [[unit]]s or [[element]]s, the other the [[choice]]s.
Under the first aspect, the [[black hole]] acts as a [[central]] [[computer]]. Christ, the third eye that moves across the [[white wall]] or the screen serving as general [[surface]] of [[reference]].. Regardless of the [[content]] one gives it, the [[machine]] constitutes a [[facial]] unit, an elementary face in [[biunivocal]] relation with another.
It is a man or a women, a rich person or a poor one, an adult or a child, a leader or a subject, "an x or a y." The movement of the [[black hole]] across the screen, the trajectory of the third eye over the [[surface of reference]], constitutes so many [[dichotomy]]s or [[arborescence]]s, like four-eye machines made of elementary faces linked together two by two. The face of a teach and a student, father and son, worker and boss, cop and citizen, accused and judge... concrete [[individual]]ized faces are produced and transformed on the basis of these units, these combinations of units... You don't so much have a face as slide into one
[[ATP p175-1]]
Under the second aspect, the [[abstract machine of faciality]] assumes a role of selective response, or choice: given a concrete [[face]], the [[machine]] judges whether it passes or not, whether it goes or not, on the basis of elementary [[facial]] [[unit]]s. This time, the [[binary]] relation is of the "yes-no" type. The empty eye or [[black hole]] absorbs or rejects, like a half-doddering [[despot]]. who can still give a signal of acquiescence or refusal. The face of a given teacher is contorted by tics and bathed in anxiety that makes it "no go," a defendant, a subject, displays an over[[affect]]ed submission that turns into insolence... At every moment the machine rejects faces that do not conform, or seem suspicious. But only at a given level of choice.
For it is necessary to produce successive divergence-types of deviance for everything that eludes [[biunivocal]] relationships, and to establish [[binary]] relations between what is accepted on first choice and what is only tolerated on second, third choice, etc. The [[white wall]] is always expanding, and the [[black hole]] functions repeatedly. The teacher has gone made, but [[madness]] is a face conforming to the nth choice... The binary relation is [[between] the no of the first category and the yes of the following category, which under certain conditions may just as easily mark a tolerance as indicate an enemy to be mowed down... At any rate, you've been recognized, the [[abstract machine]] has you inscribed in its overall [[grid]].
It is clear that in its now role as deviance detector the faciality machine does not restrict itself to individual cases but operates in just as general a fashion as it did in its first role, the [[computation]] of normalities... discussion of racism... The dividing line is not between inside and outside but rather is internal to simultaneous [[signifying]] [[chain]]s and successive [[subjective]] choices. Racism never detects the [[particle]]s of the [[other]],; it [[propagate]]s waves of [[sameness]] until those who resist identification have been wiped out (or those who only allow themselves to be identified at a given degree of [[divergence]]). Its [[cruelty]] is equaled only by its incompetence and naivete.
[[ATP p176/177-1]]
The problem is that all of this [[biunivocalization]] and [[binarization]]... assumes the deployment of a [[wall]] or [[screen]], the installation of a central computing hole... The [[black hole/white wall]] [[system]] must have already gridded all of space and outlined its [[arborescences]] or [[dichotomy]]s for those of [[signifier]] and [[subjectification]] even to be conceivable. The [[mixed]] [[semiotic]] of [[signifiance]] and subjectification has an exceptional need to be protected from any intrusion from the outside. In fact, there must not be any exterior: no [[nomad]] [[machine]], no primitive [[polyvocality]] must spring up, with there combinations of heterogenous [[substance of expression]]s.
[[translatability]] of any kind requires a single substance of [[expression]]. One can constitute signifying [[chain]]s operating with [[deterritorialize]]d, digitalized, discrete [[element]]s only if there is a semiological screen available, a wall to protect them.
One can make subjective choices between two chains or at each [[point]] in a chain only if no outside tempest sweeps away the chains and subjects. One can form a web of subjectivities only if one possesses a [[central]] eye, a [[black hole]] capturing everything that would exceed or transform either the assigned [[affect]]s or the dominant significations.
It is absurd to believe that language as such can convey a message. A [[language]] is always embedded in the faces that announce its [[statement]]s and ballast them in relation to the signifiers in progress and subjects concerned. Choices are guided by faces, [[element]]s are organized around faces: a common [[grammar]] is never separable from a facial education. The face is a veritable megaphone. Thus not only must the [[abstract machine of faciality]] provide a protective screen and a computing black hole; in addition, the faces it produces draw all kinds of arborescences and dichotomies without which the signifying and subjective would not be able to make the arbo's and dicho's function that fall within their purview in language.
[[ATP p177/178-1]]
Doubtless, the binarities and biunivocalities of the [[face]] are not the same as those of [[language]], of its [[element]]s and subjects. There is no resemblance between them. But the former subtend the latter. When the [[abstract machine of faciality]] translates formed [[content]]s of whatever kind into a single [[substance of expression]], it already subjugates them to the exclusive [[form]] of [[signifying]] and [[subjective]] [[expression]].
It carries out the prior gridding that makes it possible for the signifying elements to become [[discernible]], and for the subjective choices to be implemented. The [[faciality machine]] is not an annex to the signifier and the subject; rather, it is subjacent to them and is their condition of possibility. Facial [[biunivocality]]s and binarities double the others; facial redundancies are in [[redundancy]] with the [[signifying]] and subjective redundancies. It is precisely because the face depends on an [[abstract machine]] that it does not assume a preexistent subject or signifier; but it is subjacent to them and provides the [[substance]] necessary to them... it is the figure which programs the signifiers.
[[ATP p179-1]]
"[[schizoanalysis]]... treats the [[unconscious]] as a [[decenter]]ed system, in others words, as a [[machinic]] network of finite automata (a [[rhizome]]), and thus arrives at an entirely different state of the unconscious."
[[ATP p18-2]]
"For both [[statement]]s and [[desire]]s, the issue is never to reduce the [[unconscious]] or to interpret it or to make it [[signify]] according to an [[arborescent]] model. The issue is to [[produce]] the [[unconscious]], and with it new statements, different desires; the [[rhizome]] is precisely this [[production]] of the unconscious."
[[ATP p19-1]]
[[treatment]]
Whatever the differences between [[signifiance]] and [[subjectification]]... they have it in common to crush all [[polyvocality]], set up [[language]] as a [[form]] of exclusive [[expression]], and operate by [[signifying]] [[biunivocalization]] and [[subjective]] [[binarization]]... [[linguistic]]s can tolerate no polyvocality or [[rhizome]] [[trait]]s.
[[ATP p179/180-1]]
Very specific [[assemblage]]s of [[power]] impose [[signifiance]] and [[subjectification]] as their determinate [[form of expression]], in [[reciprocal presupposition]] with new [[content]]s: there is no signifiance without a [[despot]]ic assemblage, now subjectification without an [[authoritarian]] assemblage, and no mixture between the two without [[assemblages of power]] that act through [[signifier]]s and act upon souls and subjects. It is these assemblages... that give the new [[semiotic]] [[system]] the means of its imperialism... the means to crush the other [[semiotic]]s and protect itself against any threat from outside.
[[ATP p180-1]]
A concerted effort is made to do away with the [[body]] and [[corporeal]] [[coordinate]]s through which the multidimensional or [[polyvocal]] [[semiotic]]s operated. Bodies are disciplined, corporeality dismantled, [[becoming-animal]]s hounded out... a single [[substance of expression]] is produced.
[[ATP p180/181-1]]
[[mask]] and [[head]] vs mask and [[face]].
The inhumanity of the face. Never does the face assume a prior [[signifier]] or [[subject]]. The order is totally different: [[despot]]ic and [[authoritarian]] concrete [[assemblages of power]]->triggering of the [[abstract machine of faciality]], [[black hole/white wall]]->Installation of the new semiotic of [[signifiance]] and [[subjectification]] on that holey surface.
Justification of why "the face is a [[politic]]s."
[[ATP p181-1]]
We have already seen that [[signifiance]] and [[subjectification]] are semiotic systems that are entirely distinct in their principles and have different [[regime]]s (circular irradiation versus [[segmentary]] [[linear]]ity) and different [[apparatus of power]]s (despotic generalized slavery versus [[authoritarian]] contract-proceeding.)
[[ATP p181-2]]
However different these [[semiotic]]s are... their common endeavor is to crush all other semiotics. There is no [[signifiance]] that does not harbor the seeds of [[subjectivity]]; there is no [[subjectification]] that does not draw with it the remnants of a signifier. If the signifier above all bounces off a wall, if subjectivity spins towards a [[black hole]], then we must say that the wall of the signifier already includes holes and the black hole of subjectivity already carries scraps of wall...
The semiotic of [[capitalism]] has attained this state of mixture in which signifiance and subjectification effectively [[interpenetrate]]. thus it is in this semiotic that [[faciality]]... assumes its full scope.
[[ATP p181/182-1]]
The two types of [[limit-faces]], one of [[signifiance]], one of [[subjectification]]
[[ATP p182-1]]
The [[white wall]] becomes populous, the [[black hole]]s are arrayed. This entire [[mechanism]] of [[signifiance]], with its referral of [[interpretation]]s, prepares the way for the second, passional subjective, moment...
[[ATP p182/185-1]]
a veritable [[schizo-flow]], Cross the [[wall]], the Chinese perhaps, but at what price? At the price of a [[becoming-animal]], a [[becoming-flower]] or rock, and beyond that a strange [[becoming-imperceptible]], a [[becoming-hard]] now one with loving. It is a question of [[speed]] even if the movement is in place...
Of course, this requires all the resources of [[art]], and art of the highest kind... active [[escape]]s that do not consist in fleeing into art, taking refuge in art... but instead sweep it away with them toward the realms of the [[asignifying]], [[asubjective]], and [[faceless]].
[[ATP p186-1]]
The [[organization]] of the [[face]] is a strong one. We could say that the face holds within its rectangle or circle a whole set of [[trait]]s, [[faciality trait]]s, which is tubsumes and places at the service of [[signifiance]] and [[subjectification]]... If the face is a [[politic]]s, dismantling the face is also a politics involving [[real]] [[becoming]]s, an entire [[becoming-clandestine]]. Dismantling the face is the same as breaking through the [[wall]] of the [[signifier]] and getting out of the black hole of [[subjectivity]].
Here, the program, the slogan, of [[schizoanalysis]] is: Find your black holes and [[white wall]]s, know them, know your faces; it is the only way you will be able to dismantle them and draw your [[line of flight]]s...
it is never [[question]] of a return to... [pa89] "He stuck to his ideal guns. I abandon mine. I say, let the old guns rot. Get new ones, and shoot straight." -Lawrence
[[treatment]]
[[ATP p187-1]]
"the weed exists only to fill the waste spaces left by cultivated areas. It grows [[between]], among other things... the weed is ranks growth...:it points [at] a moral."
[[ATP p20-1]]
[[rhizome]]
[[ethics]]
[[assemblage]]
In truth there are only inhumanities, humans are made exclusively of inhumanities, but very different ones, of very different natures and [[speed]]s. Primitive [[inhumanity]], prefacial inhumanity, has all the [[polyvocality]] of a [[semiotic]] in which the [[head]] is a part of the [[body]], a body that is already [[deterritorialize]]d [[relative]]ly and plugged into [[becoming-spiritual]]s/[[becoming-animal]]s. Beyond the [[face]] lies an altogether different inhumanity... Must we leave it at that, three states, and no more: primitive heads, Christ-face, and probe-heads?
[[ATP p188-1]]
[the novella]] evolves in the [[element]] of "What happened" because it places us in a relation with something unknowable and [[imperceptible]] (and not the other way around: it is not because it speaks of a past about which it can no longer provide us knowledge). It may even be that nothing has happened, but it is precisely that nothing that makes us say, Whatever could have happened to make me forget where I put my keys, or whether I mailed that letter? What little blood vessel in my brain could have ruptured? What is this nothing that makes something happen? The novella has a fundamental relation to [[secrecy]] (not with a [[secret]] matter or object to be discovered, but with the [[form]] of the secret, which remains impenetrable), whereas the tale has a relation to [[discovery]] (the [[form]] of discovery, independent of what can be discovered.)
[[ATP p190/191-1]]
...there is also a specific way in which the novel treats a universal [[matter]]. For we are made of [[line]]s. We are not only referring to lines of [[writing]]. Lines of writing [[conjugate]] with other lines, life lines... liens that are [[between]] the lines of writing... We would like to demonstrate that the npvella is defined by living lines, flesh lines, about which it brings a special [[revolution]].
[[ATP p193-1]]
Here... there is a [[line]] of [[rigid]] [[segmentarity]] on which everything seems calculable and foreseen, the beginning and end of a [[segment]], the [[passage]] from one segment to another. Not only are the great [[molar]] [[aggregate]]s segmented (States, institutions, classes) but so are people as [[element]]s of an aggregate, as are feelings or relations [[between]] people; they are segmented, not in such a way as to disturb or disperse, but on the contrary to ensure and [[control]] the [[identity]] of each agency, including personal identity. The fiance can say to the young woman, Evne though there are differences between our segments, we have the same tastes and we are alike, I am a man, you are a woman; you are a telegraphist, I am a grocer...
[[Conjugation]] A whole interplay of well determined, well planned [[territory]]s. They have a [[future]] but no [[becoming]]. This is the first life line, the molar or rigid line of segmentarity.
[[question]]: how does this relate to [[faciality]], the [[face]], the [[abstract machine of faciality]]? It seems to need the face to exist
[[ATP p194/195-1]]
...the existence of another life: [[code]]d, multiple telegrams, signed with pseudonyms. It is hard to tell who is who anymore, or what anything means. Instead of a [[rigid]] [[line]] composed of well-determined [[segment]]s, telegraphy now [[form]]s a [[supple]] [[flow]] [[mark]]ed by [[quanta]] that are like so many [[segmentation]]s-in-progress grasped at the moment of their birth, as on a moonbeam, or an [[intensive]] [[scale]]... The young woman grasps that the man has a [[secret]]...
Now what counts is the [[form]] of the secret; the [[matter]] no longer even has to be discovered (We never find out... there is an objective indetermination, a kind of [[molecular]]ization of the secret). In relation to this man, directly with him, the young telegraphist develops a strange [[passion]]al complicity, a whole [[intense]] molecular life that does not even enter into [[rival]]ry with the life she leads with her fiance. What has happened, whatever could have happened?
There are two [[politic]]s involved, a [[macropolitic]]s and a [[micropolitic]]s that do not envision classes, sexes, people, or feelings in at all the same way. Or again, there are two very different types of relations: intrinsic relations of [[couple]]s involving well-determined [[aggregate]]s or [[element]]s (social classes, men or women, this or that particular person), and less localizable relations that are always external to themselves and concern [[flow]]s and [[particle]]s eluding those classes, sexes, and persons. Why are the latter relations of [[double]]s rather than of couples?..
In any case, this [[line]] is very different from the previous one; it is a line of molecular or [[supple]] [[segmentation]] the segments of which are like [[quanta]] of [[deterritorialize]]ation. It is on this line that a [[present]] is defined whose very form is the form of something that has already happened, however close you might be to it, since the ungraspable matter of that something is entirely molecularized, traveling at [[speed]]s beyond the ordinary [[threshold]] of [[perception]]..
[[ATP p195-1]]
There is no question that the two [[line]]s are constantly interfering, reacting upon each other, introducing into each other either a [[current]] of [[supple]]ness or a [[point]] of [[rigid]]ity...
these [[molecular]] lines, simultaneously [[present]] and [[imperceptible]]...
the breaks of a fixed [[segmentarity]], with vast movements of regulated distribution... but also that they are run through and swept up by [[micromovement]]s, fine [[segment]]ations distributed in an entirely different way, unfindable [[particle]]s of an anonymous [[matter]], tiny cracks and [[posture]]s operating by different agencies even in the [[unconscious]], [[secret]] lines of disorientation or [[deterritorialize]]ation...
[[ATP p195/196-1]]
Then James' heroine reaches a sort of [[maximum]] [[quantum]] in her [[supple]] [[segmentarity]], or [[line of flow]] beyond which she cannot go (even if she wanted to, there is no going further). There is a danger that these [[vibration]]s traversing us may be aggravated beyond our endurance... The [[molecular]] relation dissolved in the [[form]] of the [[secret]]... Each of them is propelled toward a [[rigid]] segmentarity...
And yet everything has changed. She has reach something like a new line, a third type, a kind of [[line of flight]] that is just as [[real]] as the others even if it occurs in place; this line no linger tolerates [[segment]]s; rather, it is like an exploding of the two segmentary [[series]].
She has broken through the [[wall]], she has gotten out of the [[black hole]]s. She has attained a kind of [[absolute]] [[deterritorialize]]ation... But on this third line there is no longer even any form-nothing but a pure [[abstract line]]. It is because we no longer have anything to hade that we can no longer be apprehended. To [[becoming-imperceptible]] oneself.. to have dismantled one's [[self]] in order to finally be alone and meet the true [[double]] at the other end of the line. A [[clandestine]] passenger on a motionless voyage. To become like everybody else, but this, precisely, is a [[becoming]] only for one who knows how to be nobody, to no longer be anybody. ... he constantly produces or reproduces [[finite]] segments, yet he is already moving on a line no one even suspects.
[[ATP p196-1]]
There are at least three of them: a [[line]] of [[rigid]] and clear-cut [[segmentarity]]; a line of [[molecular]] segmentarity; and an [[abstract line]], a [[line of flight]] no less deadly and no less alive than the others. On the first line, there are many words and conversations, questions and answers, interminable explanations, precisions; the second line is made up of silences, allusions, and hasty innuendos inviting [[interpretation]]. But if the third line flashes, if the line of flight is like a train in motion, it is because one jumps [[linear]]ly on it, one can finally speak "literally" of anything at all, a blade of grass, a catastrophe or [[sensation]], calmly accepting that which occurs when it is no longer possible for anything to stand for anything at all. The three lines, however, continually [[intermingle]].
[[ATP p197-1]]
This [[molecular]] [[line]]... brings everything into play, but on a different scale and in different [[form]]s, with [[segment]]ations of a different nature, [[rhizome]]atic instead of [[arborescent]]. A [[micropolitic]]s...
[on the [[line of flight]]] My [[territory]]s are out of grasp, not because they are [[imaginary]], but the opposite: because I am in the [[process]] of [[draw]]ing them...
[[ATP p197/198-1]]
"...there is no [[capitalism]] in itself, capitalism is at the crossroads of all kinds of formations, it is neocapitalism by nature. It invents its eastern and western face, and reshapes them both--all for the worst."
[[ATP p20-2]]
"There are knots of the [[arborescent]] in [[rhizome]]s, and rhizomatic offshoots in roots. Moreover, there are [[despotic]] formations of [[immanence]] and channelization specific to rhizomes, just as there are anarchic [[deformation]]s in the [[transcendent]] system of trees..."
[[ATP p20-3]]
"the important point is that the [[arborescent]] and the [[rhizome]] are not two opposed models; the first operates as a [[transcendence]] model and [[tracing]], even if it engenders its own [[line of flight]] (escapes in the text); the second operates as a [[process]] of immanence that overturns the model and outlines a [[map]], even if it constitutes its own hierarchies, even if it gives rise to a [[despotic]] channel..."
[[ATP p20-4]]
"No, this is not a dualism. The problem of [[writing]]: in order to designate something exactly, inexact expressions are utterly unavoidable...this is no way an approximation... it is the exact passage of that which is under way. We employ a dualism of models only in order to arrive at a [[process]] that challenges all models. Each time, mental correctives are necessary to undo the dualisms we had no wish but to construct but through which we pass. Arrive at the magic formula we all seek--PLURALISM=MONISM--via all the dualisms that are the enemy, an entirely necessary enemy, the furniture we are forever rearranging."
[[ATP p21-1]]
[[caps lock]]
One has painted the world on oneself, not oneself on the world.
[[ATP p199-1]]
We said that we are [[compose]]d of three [[line]]s, of three kinds of lines. Or rather, of bundles of lines, for each kind is multiple.
[[ATP p200-1]]
[[summary]] pf the [[plateau]].
There is a [[line of flight]], which is already [[complex]] since it has [[singularity]]s; and there is a customary or [[molar]] line with [[segment]]s; and [[between]] the two (?), there is a [[molecular]] line with [[quanta]] that cause it to tip to one side or the other.
[[ATP p202-1]]
We are [[segment]]ed in a [[binary]] fashion, following the great major dualist oppositions: social classes, but also men-women, adults-children, and so on. We are segmented in a [[circular]] fashion, in ever larger circles, ever wider disks or coronas... my affairs, my neighborhood's affairs, my city's, my country's, the world's... We are segmented in a [[linear]] fashion, along a straight [[line]] or a number of straight lines, of which each segment represents an episode or [[proceeding]]: as soon as we finish one proceeding we being another... in the family, in school, in the army, on the job... Sometimes the various segments belong to different individuals or groups, and sometimes the individual or group passes from one segment to another. But these [[figure]]s of [[segmentarity]]m the binary, circular, and linear, are bound up with one another, even cross over into each other, changing as according to the [[point]] of view. [[point of survey]]?
[[ATP p195/196-1]]
"the [[rhizome]] brings into play very different [[regime of signs]] and even nonsign [[state]]s"
[[ATP p21-2]]
The [[rhizome]] has neither beginning or end, but always a [[middle]] ([[milieu]]) from which it grows and which it overspills... When a [[multiplicity]] of this kind changes dimension ,it necessarily changes in nature as well, undergoes a [[metamorphosis]].
[[ATP p21-3]]
Unlike a [[structure]] which is defined by a set of [[point]]s and [[position]]s, with [[binary]] relations between the points and [[biunivocal]] relationships between the positions, the [[rhizome]] is made only of [[line]]s: lines of [[segmentarity]], and [[strata]]fication as its dimensions, and the [[line of flight]] as or [[deterritorialize]]ation as the maximum dimension after which the [[multiplicity]] undergoes [[metamorphosis]], changes in nature. These lines, or [[lineage]]s should not be confused with lineages of the [[arborescent]] type, which merely localize linkages between points and positions."
[[ATP p21-4]]
[[reread]]
"The [[rhizome]] operates by [[variation]], expansion, conquest, capture, offshoots... the rhizome pertains to a [[map]] that must be [[produced]], constructed, a map that is always detachable, connectible, reversible, modifiable, and has multiple entryways and exists and its own [[line of flight]]."
[[ATP p21-5]]
"it is [[tracing]]s that must be put on the [[map]], not the opposite... the [[rhizome]] is a [[decenter]]ed, nonhierarchical, [[nonsignifying]] system without a [[despot]], and without an organizing [[memory]] or central automaton, defined solely by a [[circulation]] of [[state]]s."
[[ATP p21-6]]
"What is at question in the [[rhizome]] is a relation to [[sexuality]]--but also to the [[animal]], the [[vegetal]], the world, politics, the book, things natural and artificial--that is totally different from the [[arborescent]] relation: all manner of "[[becoming]]s"
[[ATP p21-7]]
"A [[plateau]] is in the [[middle]], not at the beginning or end. A [[rhizome]] is made up of plateaus."
[[ATP p21/22-1]]
[[Gregory Bateson]] uses the word [[plateau]] to designate something very special; a continuous, self-vibrating region of [[intensity]]s whose development avoids any orientation toward a culmination [[point]] or an end."
Plateaus are a "bizarre [[intensive ]]stabilization."
[[ATP p22-1]]
it is a particularity of modern societies, or rather [[State]] societies, to bring into their own [[dual]]ity [[machine]]s that function as such, and proceed simultaneously by [[biunivocal]] relationships and successively by [[binarized]] choices. Classes and sexes come in twos, and phenomena of tripartition result from a transposition of the dual, not the reverse. We have already encountered this in the [[abstract machine of faciality]]... It seems that modern societies elevated dual [[segmentarity]] to the level of a self-sufficient [[organization]].
The [[question]], therefore, is not whether the status of women, or those on the bottom, is better or worse, but the type of organization from which that status results.
[[ATP p208/209-1]]
...in primitive societies [[circular]] [[segmentarity]] does not necessarily imply that the circles are concentric, or have the same center. In a [[supple]] [[regime]], centers already act as so many knots, eyes, or [[black hole]]s; but they do not [[resonate]] together, they do not fall on the same [[point]], they do not [[converge]] in the same black hole. There is a [[multiplicity]] of animal eyes... Each black hole is occupied by a different animal eye. Doubtless we see operations of rigidification and centralization take shape here and there: all of the centers must collect on a single circle, which itself has a single center... This is the birth of a centralized power with an [[arborescent]] [[system]] to discipline the outgrowths of the primitive [[rhizome]]... The power of the shaman is still entirely localized, strictly dependent upon a particular [[segment]] contingent upon drugs, and each point continues to emit independent sequences
The same cannot be said of modern societies, or even of [[State]]s. Of course, the centralized is not opposed to the segmentary, and the circles remain distinct. But they become concentric, definitively arborified. The segmentarity becomes [[rigid]], to the extent that all centers [[resonate]] in, and all black holes fall on, a single point of [[accumulation]] that is like a point of [[intersection]] somewhere behind the eyes. The [[face]] of the father, teacher, colonel, boss, enter into [[redundancy]], refer back to a center of [[signifiance]] that moves across the various circles and passes back over all the segments.
The [[supple]] microheads with [[animal]] [[facialization]]s are replaced by a macroface whose center is everywhere and circumference nowhere. There are no longer n eyes in the sky, or in [[becoming-animal]]s and [[becoming-vegetable]], but a central computing eye scanning all of the radii. The central State is constituted not by the abolition of circular segmentarity but by a concentricity of distinct circles, or the [[organization]] of a [[resonance]] among centers. There are already just as many power centers in primitive societies; or, if one prefers, there are still just as many in State societies. The latter, however, behaves as [[apparatus]]es of resonance; they organize resonance, whereas the former inhibit it.
[[ATP p210-1]]
In the case of [[linear]] [[segmentarity]], we would say that each [[segment]] is underscored, rectified, and homogenized in its own right, but also win relation to the others. Not only does each have its own [[unit]] of measure, but there is an equivalence and [[translatability]] [[between]] units. The central eye has as its [[correlate]] a space through which it moves, but it itself remains [[invariant]] in relation to its movements. [[example]] of a state that [[overcode]]s lineal segments, and that distinct focal [[point]]s appear as centers of [[resonance]], as a common denominator.
[[ATP p210/211-1]]
Paul [[Virilio]] shows that after the Greek city-state, the Roman Empire imposes a geometrical or [[linear]] reason of [[State]] including a general outline of camps and fortifications, a universal art of "marking boundaries by [[line]]s," a laying-out of [[territory]]s, a substitution of space for places and territorialities, and a transformation of the world into the [[city]]; in short, and increasingly [[rigid]] [[segmentarity]]. The [[segment]]s, once underscored or [[overcode]]d, seem to lose their ability to bud, they seem to lose their dynamic relation to segmentations-in-progress, or in the act of coming together of coming apart.
If there exists a primitive "geometry" (a protogeometry), it is an operative geometry in which [[figure]]s are never separable from the [[affect]]ations befalling them, the lines of their [[becoming]], the segments of their segmentation; there is "roundness" but no circle, "alignments" but no straight line, etc.
On the contrary, State geometry, or rather the bond between the state and geometry, manifests itself in the primacy of the [[theorem]]-[[element]], which substitutes fixed or ideal [[essence]]s for [[supple]] morphological formations, properties for affects, predetermined segments for segmentations-in-progress. Geometry and arithmetic take on the [[power]] of the scalpel. Private property implies a space that has been overcoded and [[grid]]ded by surveying. Not only does each line have segments, but the segments of one line correspond to those of another; for example, the wage [[regime]] establishes a correspondence between monetary segments, productive segments, and consumable-goods segments.
[[ATP p210-1]]
[[summary page]] In the [[rigid]] [[mode]], [[binary]] [[segmentarity]] stands on its own, and is governed by great [[machine]]s of direct [[binarization]], whereas in the other mode, [[binarities]] result from the [[multiplicity]]s of n dimensions. Second, [[circular]] segmentarity tends to become concentric, in other words, causes all of its focal [[point]]s to coincide in a single center that is in constant movement but remains in[[variant]] through its movements, and is a part of a machine of [[resonance]].
Finally, [[linear]] segmentarity feeds into a machine of [[overcode]]ing that constitutes 'more geometrico' homogenous space and extracts segments that are determinate as to their [[substance]], [[form]], and relations... The Tree.. is the [[structure]] or network [[grid]]ing the [[possible]]. The opposition between arborified and rhizomatic segmentarity is not just meant to indicate two states of a single [[process]]...
[[State]] societies... have replaced the declining [[code]]s with a [[univocal]] [[overcode]]ing, and the lost [[territory]]s with a specific [[reterritorialize]]ation (which takes place in an overcoded geometrical space). Segmentarity is always the result of an [[abstract machine]], but different abstract machines operate in the rigid and the supple.
[[ATP p212-1]]
discussion of [[fascism]], then "Only [[microfascism]] provides an answer to the [[global]] [[question]]. Why does [[desire]] desire its own [[repression]], how can it desire its own repression?.. Desire is never separable from complex [[assemblage]]s that necessarily tie into [[molecular]] levels, from microformations already shaping [[posture]]s, attitudes, perceptions, expectations, [[semiotic]] systems, etc. Desire is never an [[undifferentiated]] instinctual energy, but itself results from a highly developed, engineered setup rich in interactions: a hole [[supple]] [[segmentarity]] that [[process]]es molecular energies and potentially gives desire a fascist determination.
[[ATP p212/213-1]]
From the point of view of [[micropolitic]]s, a society is defined by its [[line of flight]]s, which are [[molecular]]. There is always something that [[flow]]s or [[flee]]s, that escapes the [binary]] [[organization]]s, the [[resonance]] [[apparatus]], and the [[overcode]]ing [[machine]].
[[ATP p215-1]]
[[molar]] and [[molecular]] are distinguished not by size, scale, or dimension but by the nature of the [[system]] of [[reference]] envisioned. Perhaps, then, the words "[[line]]" and "[[segment]]" should be reserved for molar [[organization]], and other, more suitable, words should be sought for [[molecular]] [[composition]]. And in fact, whenever we can identify a well-defined segmented line, we notice that it continues in another [[form]], as a [[quantum]] [[flow]]. And in every instance, we can locate a "[[power center]]" at the [[border]] [[between]] the two, defined not by an [[absolute]] exercise of [[power]] within its domain but by the [[relative]] adaptations and conversions it effects between the line and the flow... example of [[money]] and [[bank]]s...
Yet there is always a correlation between the two aspects since linearization and segmentation are where flows run dry, but are also their [[point]] of departure for a new creation... That is why [[power center]]s are defined much more by what escapes them or by their impotence than by their [[zone]] of power.
In short, the molecular, or microeconomics, or micropolitics, is defined not by the smallness of its elements but by the nature of its "[[mass]]"-the quantum flow as opposed to the molar segmented line. The task of making the segments correspond to the quanta, of adjusting the segments to the quanta, implies hit-or-miss changes in [[rhythm]] and [[mode]] rather than any omnipotence. Something always escapes.
[[ATP p216-1]]
We may say of the pure [[flow]] that it is [[abstract]] yet [[real]]; ideal yet effective; [[absolute]] yet "[[differentiate]]d." It is true that the flow and [[quanta]] can be grasped only by virtue of [[index]]es on the [[segment]]ed [[line]], but conversely, that line and those indexes exist only by virtur of the flow [[suffuse]]ing them. In every case, it is evident that the segmented line ([[macropolitic]]s) is immersed in and prolonged by [[quantum]] flows ([[micropolitic]]s) that continually reshuffle and stir up its segments.
[[ATP p217-1]]
[[Tarde]] was interested in the world of detail, or the infinitesimal: the little [[imitation]]s, [[opposition]]s, and [[invention]]s constituting an entire realm of [[subrepresentative]] [[matter]]. Tarde's best work was his analysis of a minuscule bureaucratic [[innovation]], or a [[linguistic]] innovation, etc. Durkheimians answered that what Tarde did was not psychology or interpsychology but sociology. But that is true only in [[appearance]], as first approximation: a microimitation does seem to occur [[between]] two [[individual]]s.
But at the same time, and at a deeper level, it has to do not with an individual but with a [[flow]] or a [[wave]]. [[imitation]] is the [[propagation]] of a flow; [[opposition]] is [[binarization]], the making [[binary]] of flows; [[invention]] is a [[conjugation]] or connection of different flows.
What, according to Tarde, is a flow? It is [[belief]] or [[desire]]. Beliefs and desires are the basis of every society, because they are flows and as such are "quantifiable"; they are veritable social quantities, whereas [[sensation]]s are qualitative and [[representation]]s are simple resultants.
Infinitesimal imitation, opposition, and invention are therefore like flow [[quanta]] marking a propagation, binarization, or conjugation of beliefs and desires. .. For in the end... flows are neither attributable to individuals nor [[overcode]]able by collective [[signifier]]s. Representations already define large-scale [[aggregate]]s, or determine [[segment]]s on a [[line]]; beliefs and desires, on the other hand, are flows marked by quanta, flows that are created, exhausted, or transformed, added to one another, subtracted or combined...
[[ATP p218-1]]
This is how you tell the difference [[between]] the [[segment]]ed [[line]] and the [[quantum]] flow. A [[mutant]] flow always implies something tending to elude or [[escape]] the [[code]]s; [[quanta]] are precisely [[sign]]s or [[degree]]s of [[deterritorialize]]ation in the decoded flow. The [[rigid]] line, on the other hand, implies an [[overcode]]ing that substitutes itself for the faltering codes; its segments are like [[reterritorialize]]ations on the overcoding or overcoded line... and [[example]] follows
Now the two [[system]]s of [[reference]] are in inverse relation to each other, in the sense that the first eludes the second, or the second arrests the first, prevents it from [[flow]]ing further; but at the same time, they are strictly complementary and coexistent, because one exists only as a [[function]] of the other; yet they are different and in direct relation to each other, although corresponding term by term, because the second only effectively arrests the first on a "plane" that is not the [[plane]] specific to the first, while the momentum of the first continues on its own plane.
[[ATP p219-1]]
"We call a [[plateau]] any [[multiplicity]] connected to other multiplicities by superficial underground steams in such a way as to form or extend a [[rhizome]]"
RHIZOMATICS=SCHIZOANALYSIS=STRATOANALYSIS=PRAGMATICS=MICROPOLITICS
" These words are [[concept]]s but concepts are [[line]]s, which is to say, [[number]] systems attached to a particular dimension of the [[multiplicity]]s (strata, [[molecular]] chains, [[line of flight]] or [[rupture]], circles of [[convergence]] etc)"
[[ATP p22-1]]
[[caps lock]]
[[pragmatic]]
[[schizoanalysis]]
[[strata]]
[[micropolitics]]
[[rhizome]]
Nowhere do we claim for our [[concept]]s the title of a [[science]]. We are no more familiar with science than we are with [[ideology]]; all we know are [[assemblage]]s. And the only assemblages are [[machinic assemblage]]s of desire and [[collective assemblage]]s of enunciation. No [[signifiance]] no [[subjectification]]; [[writing]] to the nth power (all [[individuated]] [[enunciation]] remains trapped within the dominant [[significations]], all [[signifying]] [[desire]] is associated with dominated subjects.)"
[[ATP p23-1]]
[[ATP p22-2]]
"All [[assemblage]], in its [[multiplicity]], necessarily acts on [[semiotic]] [[flow]]s, material flows, and social flows simultaneously (independently of any [[recapitulation]] that may be made in a scientific or theoretical corpus.)"
[[ATP p22-3]]
...we must introduce a [[distinction]] [[between]] the two notions of [[connection]] and [[conjugation]] of [[flow]]s. Connection indicates the way in which de[[code]]d and [[deterritorialize]]d flows boost one another, accelerate their shared [[escape]], and augment or stoke their [[quanta]]; the conjugation of these same flows, on the other hand, indicates their relative stoppage, like a [[point]] of accumulation that plugs or seals the [[line of flight]]s, performs a general [[reterritorialize]]ation, and brings the flows under the dominance of a single flow capable of [[overcode]]ing them.
But it is precisely the most deterritorialized flow, under the first aspect, that always brings about the accumulation or conjunction of the [[process]]es, determines the overcoding, and serves as the basis for reterritorialization under the second aspect. (we have already encountered a [[theorem]] according to which it is always on the most deterritorialized [[element]] that reterritorialization takes place). For [[example]]...
[[ATP p219/220-1]]
...coexistence or simultaneity of these two movements (de[[code]]ing-[[deterritorialize]]ation and [[overcode]]ing-[[reterritorialize]]ation). For the [[duration]] of this period, one distinguishes [[between[[ the [[molecular]] aspect and the [[molar]] aspect...
[[mass]]=molecular, class=molar
[[ATP p220/221-1]]
Problems are always like this. Good or bad, [[politic]]s and its judgments are always [[molar]], but it is the [[molecular]] and its assessment that makes it or breaks it.
[[ATP p221-1]]
There are not just two kinds of [[line]]s but three. First, a relatively [[supple]] line of [[interlaced]] [[code]]s and [[territoriality]]s; that is why we started with so-called primitive [[segmentarity]], in which the social space is constituted by territorial and [[lineal]] [[segmentation]]s.
Second, a [[rigid]] line, which brings about a dualist [[organization]] of [[segment]]s, a concentricity of circles in [[resonance]], and generalized [[overcode]]ing; here the social space implies a [[State]] [[apparatus]]. This [[system]] is different from the primitive system precisely because overcoding is not a stronger code, but a specific procedure different from that of codes, Similarly, [[reterritorialize]]ation is not an added [[territory]], but takes place in a different space than that of territories, namely overcoded [[geometrical]] space.
Third, one or several [[line of flight]]s, marked by [[quanta]], and defined by de[[code]]ing and [[deterritorialize]]ation (there is always something like a [[war machine]] functioning on this lines...
This is not an evolution...
...codes are never separate from the movement of decoding, nor are territories from the [[vector]]s of deterritorialization traversing them. And overcoding and reterritorialization do not come after. It would be more accurate to say that there is a space in which three kinds of closely [[intermingle]]d lines coexist, tribes, empires, and war machines. We could also put it this way: Lines of flight are primary, or the already-rigid segments are, and supple segmentations swing between the two.
A Roman [[example]] follows
[[ATP p222-1]]
There is on one hand an [[abstract machine of overcoding]]: it define a [[rigid]] [[segmentarity]]... laying out a divisible, homogenous space [[striate]]d in all directions, This kind of [[abstract machine]] is linked to the [[State]] [[apparatus]]. We do not, however, equate it with the State apparatus itself... The most we can say is that the [[State]] [[apparatus]] tends to increasingly identify with the [[abstract machine]] it [[effectuate]]s...
[[ATP p222-2]]
On the other hand, at the other [[pole]], there is an [[abstract machine of mutation]], which operates by de[[code]]ing and [[deterritorialize]]ation. It is what [[draw]]s the [[line of flight]]; it steers the [[quantum]] [[flow]]s, assures the connection-creation of flows, and emits new [[quanta]], It is itself in a state of flight, and erects [[war machine]]s on its [[line]]s.
[[abstract machine]]
[[ATP p223-1]]
What is a [[power center]] or focal [[point]] of power? Answering this [[question]] will illustrate the entanglement of the [[line]]s...
Power centers obviously involve [[rigid]] [[segment]]s. Each [[molar]] segment has one or more centers. It might be objected that the segments themselves presuppose a power center, as what distinguishes and unites them, sets them in opposition and makes them [[resonate]]. But there is no contradiction [[between]] the segmentary parts and the centralized [[apparatus]]. On the other hand, the most rigid of segmentarities does not preclude centralization: this is because the common central point is not where all the other points melt together, but instead acts as a [[point of resonance]] on the [[horizon]], behind all the other points.
The [[State]] is not a point taking all the others upon itself, but a [[resonance]] chamber for them all. Even when the state is totalitarian, its function as a [[resonator]] for distinct centers and chambers remains unchanged: the only difference is that it takes place under closed-vessel conditions that increase its internal reach, or couples "resonance" with a "forced movement".
On the other hand, and conversely, the strictest of centralizations does not eradicate the distinctiveness of the centers, segments, and [[circle]]s. When the [[overcode]]ing line is [[draw]]n, it assures the prevalence if one segment over the others (in the case of [[binary]] segmentarity), gives a certain power of [[relative]] resonance over the others (in the case of circular segmentarity), and underscores the dominant segment through which it itself passes (in the case of [[linear]] segmentarity). Thus centralization is always [[hierarchical]], but [[hierarchy]] is always segmentary.
Each power center is also molecular and exercises its power on a micrological [[fabric]] in which it exists only as [[diffuse]], dispersed, geared down, miniaturized, perpetually displaced, acting by fine segmentation, working in detail and in the details of detail. [[Foucault]]'s fine [[example]]...
[[ATP p223-2]]
...the [[molar]] [[segment]]s are necessarily immersed in the [[molecular]] soup that nourishes them and makes their outlines waver. And every [[power center]] has this microtexture. The microtextures-not masochism-are what explain how the [[oppressed]] can take an active role in [[oppression]]: the workers of the rich nations actively participate in the exploitation of the Third World, the arming of the dictatorships, and the pollution of the atmosphere.
This is not surprising since the texture lies [[between]] the line of [[overcode]]ing with [[rigid]] [[segment]]s and the ultimate [[quantum]] line. It continually swings between the two, now channeling the quantum line back into the segmented line, now causing [[flow]]s and [[quanta]] to escape from the segmented line. This is the third aspect of power centers, or their [[limit]]. For the only purpose these centers have is to [[translate]] as best as they can flow quanta into line segments (only segments are totalizable, in way or another). But this is their principle of power and the basis of their [[impotence]]. Fare from being opposites, power and impotence complement each other...
mention then of [[pilot-sign]]s and [[particle-sign]]s
[[ATP p224-1]]
But there is no [[power]] regulating the [[flow]]s themselves... If an [[image]] of the [[master]] or an idea of the [[State]] is projected outward to the [[limit]] of the universe, as if something had [[domination]] over flows as well as [[segment]]s, and in the same manner, the result is a fictitious and ridiculous [[representation]]... [[power center]]s function at the [[point]]s where flows are converted into [[segment]]s: they are [[exchange]]rs, [[convert]]ers, [[oscillator]]s.
Not that the segments themselves are governed by a decision-making power. We have seen, on the contrary, that segments... [[form]] at the [[conjunction]] of [[mass]]es and [[deterritorialize]]d flows and that the most deterritorialized flow determines the [[dominant]] segment..
Segments, then, are governed by an [[abstract machine]]. But what power centers govern are the [[assemblage]]s that [[effectuate]] the abstract machine, in other words, that continually adapt [[variation]]s in the mass and flow to the segments of the rigid line, as a function of a dominant segment and [[dominated]] segments. Much perverse invention can enter into the adaptations.
[[ATP p225-1]]
Every [[power center]]?? has three asspects or [[zone]]s: It's zone of power, relating to the [[segment]]s of a solid [[rigid]] [[line]]?
It's [[zone of indiscernibility]], relating to its diffusion throughout a microphysical [[fabric]].
It's zone of [[impotence]], relating to the [[flow]]s and [[quanta]] it can only convert without being able to control or define. It is always from the depths of its impotence that each power center draws its [[power]]...
The first zone of the power center is always defined by the [[State]] [[apparatus]], which is the [[assemblage]] that [[effectuate]]s the [[abstract machine]] of [[molar]] [[overcode]]ing; the second is defined in the molecular fabric immersing this assemblage; the third by the [[abstract machine of mutation]], flows, and quanta.
[[mutant]]
[[ATP p226-1]]
"There is no longer a tripartite division between a field of reality (the world), and a [[field]] of [[representation]] (the book) and a field of [[subjectivity]] (the author).
Rather, an [[assemblage]] establishes connections between certain [[multiplicity]]s drawn from each of these orders, so that a book has no sequel nor the world as its object nor one or several authors as its subject. In short, we think that one cannot write sufficiently in the name of an outside.
The outside has no [[image]], no [[signification]], no [[subjectivity]]. The book as assemblage with the outside, against the book as image of the world. A [[rhizome]]-book...
Never send down roots or plant them, however difficult it may be to avoid reverting to the old procedures.. [[meta-modelization]]
[[ATP p23-2]]
[[ATP p22/23-1]]
"Those things which occur to me occur to me not from the root up but rather from somewhere about their [[middle]]."
"Why is this so difficult? The [[question]] is directly one of perceptual [[semiotic]]s. It's not easy to see things in the middle, rather than looking down on them from above or up at them from below, or from left to right or right to left: try it, you'll see that everything changes. It's not easy to see the grass in words (similarly, [[Nietzsche]] said that an [[aphorism]] had to be "ruminated"; never in a [[plateau]] seperable from the cows that populate it, which are also the clouds in the sky)
[[reread]] the clouds in the sky bit
[[ATP p23-3]]
[[ATP p23-1]]
"[[history]] is always written from the [[sedentary]] point of view and in the name of a unitary [[State]] [[apparatus]]."
[[ATP p23-2]]
"What is important is not whether the [[flow]]s are one or multiple--we're past that point; there is a [[collective assemblage]] of enunciation, a [[machinic assemblage]] of [[desire]], one inside the other, and both plugged into an immense outside that is a [[multiplicity]] in any case."
[[ATP p23-3]]
Paragraph 2 of the [[plateau]] offers a [[summary]]
[[ATP p226/227-1]]
Seems to state that ideas are [[expression]], an [[incorporeal]], not [[content]], a [[corporeal]].
[[ATP p233-1]]
We believe in the existence of very special [[becoming-animal]]s traversing human beings and sweeping them away, [[affect]]ing the [[animal]] no less than the [[human]]... A [[becoming]] is not a correspondence between relations. But neither is it a [[resemblance]], an [[imitation]], or, at the [[limit]], an [[identification]].
[[ATP p235-1]]
Above all, [[becoming]] does not occur in the [[imagination]]... [[becoming-animal]]s are neither dreams nor phantasies. They are perfectly [[real]]. But which reality is at issue? For if becoming animal does not consist in playing [[animal]], or imitating an animal, it is clear that the human does not "really" become an animal any more than the animal "really" becomes something else. Becoming produces nothing other than itself. We fall into a false alternative if we say that either you imitate or you are.
What is real is the becoming itself, the [[block of becoming]], not the supposedly fixed terms through which that which becomes passes. Becoming can and should be qualified as [[becoming-animal]] even in the [[absence]] of a term that would be the animal become.
The becoming-animal of the human being is real, even if the animal the human being becomes is not; and the [[becoming-other]] of the [[animal]] is real, even if that something other it becomes is not. This is the point to clarify; that a becoming lacks a subject distinct from itself; but also that is has no term, since its term in turn exists only as taken up in another becoming of which it is the subject, and which coexists, forms a [[block]], with the first. This is the principle according to which there is a [[reality]] specific to becoming (the [[Bergson]]ian idea of a coexistence of very different "[[duration]]s", superior or inferior to "ours", all of them in communication.
[[ATP p237-1]]
[[becoming]]... concerns [[alliance]]... some [[example]]s... Accordingly, the term we would prefer for this [[form]] of evolution between heterogenous terms is [[involution]], on the condition that involution is in no way confused with regression. Becoming is involutionary, involution is [[creative]]. To regress is to move in the direction of something less differentiated. But to involve is to form a [[block]] that runs its own [[line]] [[between]] the terms in play and beneath assignable relations.
[[ATP p238-1]]
[[neoevolution]]ism seems important for two reasons: The [[animal]] is defined not by characteristics (specific, generic, etc.,) but by populations that vary from [[milieu]] to milieu or within the same milieu; movement occurs not only, or not primarily, by filiative productions but also by [[transversal]] communications [[between]] heterogenous populations. [[becoming]] is a [[rhizome]], not a classificatory or genealogical [[tree]]. Becoming is certainly not imitating, or identifying with something; neither is it regressing-progressing; neither is it corresponding, establishing corresponding relations; neither is it producing, producing a filiation or producing through filiation.
Becoming is a very with a [[consistency]] all its own; it does not reduce to, or lead back to appearing, being, equaling, or producing.
[[ATP p238/239-1]]
A [[becoming-animal]] always involves a [[pack]], a [[band]], a population, a peopling, in short, a [[multiplicity]]... We are not interested in characteristics; what interests us are [[mode]]s of expansion, propagation, occupation, contagion, peopling. I am legion. The [[Wolf-Man]] fascinated by several wolves watching him. What would a lone wolf be?.. The wolf is not fundamentally a characteristic or a certain number of characteristics; it is a wolfing. The louse if a lousing, and so on. What is a cry independent of the population it appeals to or takes as its witness?..
What we are saying is that every [[animal]] is fundamentally a band, a pack. That it has pack modes, rather that characteristics, even if further distinctions within these modes are called for. It is at this [[point]] that the [[human]] being encounters the animal. We do not [[become]] animal without a fascination for the pack, for [[multiplicity]]. A fascination for the outside? Or is the multiplicity that fascinates us already related to a multiplicity dwelling within us?
This trailed to 240. Oops.
[[ATP p239-1]]
[[writing]] weds a [[war machine]] and some [[line of flight]], abandoning the [[strata]], [[segmentarity]]s, sedentarity, the [[State]] [[apparatus]]...Is there a need for a more profound nomadism... The nomadism of those who only assemble."
[[assemblage]]
[[ATP p23-3]]
RHIZOMATICS=POP ANALYSIS
[[rhizome]]
[[caps lock]]
[[ATP p24-1]]
the [[nomad]]s invent a [[war machine]] in opposition to the [[State]] apparatus... The state's pretension to be a world order, and to root man.
[[ATP p24-2]]
"Don't be one or multiple, be [[multiplicity]]s! Run [[line]]s, never plot a [[point]]! [[speed]] turns the point into a line! Be quick, even when standing still. Line of chance, [[line of flight]], line of hips. Don't have just ideas, just have an idea. [[Godard]].
A [[rhizome]] has no beginning or end; it is always in the [[middle]], [[between]] things, [[interbeing]], [[intermezzo]]. The tree is [[filiations]] but the rhizome is [[alliance]], uniquely alliance. The tree imposes the [[verb]] "[[to be]]," but the fabric of the [[rhizome]] is the [[conjunction]], "and,...and...and..." This conjunction carries enough force to shake and uproot the verb "to be."
[[schizo flow]]
[[ATP p24-3]]
[[Lovecraft]] [[example]], then,
Not pity, but unnatural participation. Then a strange imperative wells up in him: either stop writing, or write like a rat. If the writer is a sorcerer, it is because [[writing]] is a [[becoming]], writing is traversed by strange becomings that are not [[becoming-writer]] but [[becoming-rat]], [[becoming-insect]], [[becoming-wolf]], etc. We will have to explain why..
they experience the [[animal]] as the only population before which they are responsible in principle. The German preromantic Karl Philipp [[Moritz]] feels responsible not for the calves that die but before the calves that die and give him the incredible feeling of an unknown [[Nature]]-[[affect]].
For the affect is not a personal feeling, nor is it a characteristic; it is the [[effectuate]]ion of a [[power]] of the [[pack]] that throws the [[self]] into upheaval and makes it reel. Who has not known the violence of these animal sequences, which uproot one from humanity, if only for an instant, making one scrape at one's bread like a rodent, or giving one the yellow eyes of a feline? A fearsome [[involution]] calling us toward unheard-of [[becoming]]s. These are not regressions, although fragments of regressions, sequences of regression may enter in.
[[ATP p239-2]]
Three types of animals, pets/[[individuate]]d, [[State]] animals which are classified ([[striate]]d?),
Finally, there are more demonic [[animal]]s, [[pack]] or [[affect]] animals that [[form]] a [[multiplicity]], a [[becoming]] a [[population]], a [[tale]]. Or once again, cannot any animal be treated in all three ways?.. Yes, any animal can be a pack, but to varying [[degree]]s of vocation that make it easier or harder to discover the [[multiplicity]], or multiplicity-grade, an animal contains ([[actual]]y or [[virtual]]ly according to the case). Schools, [[band]]s, herds, populations are not inferior social forms; they are [[affect]]s and [[power]]s, [[involution]]s that grip every animal in a [[becoming]] just as powerful as that of the human being with the animal,
[[ATP p240-1]]
How can [becoming be conceived without reproduction?
We oppose epidemic to filiation, c[[contagion]] to heredity; peopleing by [[contagion]] to sexual reproduction... Unnatrual participations or nuptials are the true Nature spanning the kingdoms of nature... The difference is that contagion, epidemic, involves terms that are entirely heterogenous...
The Universe does not function by filiation. All we are saying is that animals are [[pack]]s and packs form, develop, and are transformed by contagion.
[[ATP p241-1]]
These [[multiplicity]]'s with heterogenous terms, cofunctioning by [[contagion]], enter certain [[assemblage]]s; it is there that human beings effect their [[becoming-animal]]. Don't confuse this with the institution of the family and the [[State]] [[apparatus]].
[[ATP p241/242-1]]
Our first principle was [[pack]] and [[contagion]], the contagion of the pack, such is the path [[becoming-animal]] takes, But a second principle... There is always a [[pact]] with a demon; the demon sometimes appears as the head of the [[band]], sometimes as the Loner on the sidelines of the pack, and sometimes as the highest Power of the [[band]]. The exceptional individual has many possible positions... Josephine, the mouse singer, sometimes holds a privileged position in the pack, sometimes a position outside the pack, and sometimes slips into and is lost in the anonymity of the [[collective]] [[statement]]s of the pack... Let us clarify; every [[animal]] swept up in its ack or [[multiplicity]] has its anomalous,,,
A bit on [[grammar]] of the word Anomalous,
[[ATP p242-1]]
[[grammar]]
an-omalie, a Greek [[noun]] that has lost its [[adjective]], designates the unequal, the coarse, the rough, the [[cutting edge of deterritorialization]]. The abnormal can be defined only in terms of characteristics, specific or generic [State]; but the anomalous is a position or set of positions in relation to a [[multiplicity]].
[[State]].
[[ATP p243-1]]
It is clear that the anomalous is not simply an exceptional [[individual]]; that would be to equate it to the family animal or pet... [it] has nothing to do with the preferred, domestic, and psychoanalytic [[individual]].. A list of what it is not... it has only [[affect]]s... Human tenderness is as foreign to it as [[human]] classifications... the Thing, which arrives and passes at the [[edge]], which is [[linear]] yet multiple, "teeming, seething, swelling, foaming, spreading like an infectious disease, this nameless horror." [[Lovecraft]]
[[ATP p244-1]]
the anomalous is... a phenomenon of bordering. This is our hypothesis: a [[multiplicity]] is not defined by the [[element]]s that compose it in extension, not by the characteristics that compose it in comprehension, but by the [[line]]s and [[dimension]]s it encompasses in [[intension]]. If you change dimensions, if you add or subtract one, you change multiplicity. Thus there is a [[borderline]] for each multiplicity; it is in no way a center but rather the enveloping line or farthest dimension, as a function of which it is possible to count all the others, all those lines or dimensions constitute the pack at a given moment (beyond the borderline the multiplicity changes in nature)...
That the anomalous is the borderline makes it easier for us to understand the various positions it occupies in relation to the pack or the multiplicity it borders, and the various positions occupied by a fascinated self,
[[ATP p244/245-1]]
The pack has a borderline and an anomalous position, whenever in a given space an animal is on the [[line]] or in the act of [[draw]]ing the line in relation to which all the other members of the pack will fall into one of two halves, left or right: a peripheral position, such that it is impossible to tell if the anomalous is still in the [[band]], already outside the band, or at the shifting boundary of the band. Sometimes each and every animal reaches this line or occupies this dynamic position...
[[ATP p245-1]]
[[pack]]s as being undermined by the [[State]], the family, etc, and having centers/[[black hole]]s established in them.
[[ATP p245-2]]
In order to produce werewolves in your own family it is not enough to resemble a wolf, or to live like a wolf: the [[pact]] with the devil must be coupled with an alliance with another family, and it is the return of this alliance to the first family, the reaction of this alliance on the first family, that produces werewolves by [[feedback]] effect.
[[ATP p246-1]]
[[alliance]] or the [[pact]] is the [[form of expression]] for an infection or epidemic constituting the [[form of content]]. In sorcery, blood is of the order of contagion and alliance. It can be said that [[becoming-animal]] is an affair of sorcery because
(1) it implies an initial relation of alliance with a demon
(2) the demon functions as the [[borderline]] of an [[animal]] [[pack]], into which the human being passes or in which his or her [[becoming]] takes place, by [[contagion]].
(3) this becoming itself implies a second alliance, with another human group
(4) this new borderline [[between]] the two groups guides the contagion of animal and human being within the pack.
There is an entire [[politic]]s of becomings-animal, as well as a politics of sorcery which is elaborated in [[assemblage]]s that are neither those of the family nor religion nor of the [[State]]. Instead, they [[express]] [[minoritarian]] groups... on the fringe of recognized institutions...
It is accompanied, at its origin as in its undertaking, by a rupture with the central institutions that have established themsleves or seek to become established.
[[ATP p246-2]]
A list of different types of [[becoming]] and a discussion of [[music]]
[[ATP p247-1]]
All so-called initiatory journeys include these [[threshold]]s and doors where [[becoming]] itself becomes, and where one changes becoming depending on the hour of the world, the circles of hell...
Thus [[pack]]s, or [[multiplicity]]s, continually transform themselves into each other, cross over into each other. Werewolves become vampires when they die. This is not surprising, since becoming and multiplicity are the same thing. A multiplicity is not defined by its [[element]]s, nor by a center of unification or comprehension. It is defined by the number of [[dimension]]s it has; it is not divisible, it cannot lose or gain a dimensions without changing its nature.
Since its [[variation]]s and dimenesions are [[immanent]] to it, it amounts to the same thing to say that each multiplicity is already composed of heterogenous terms in symbiosis, and that a multiplicity is continually transforming itself into a string of other multiplicities, according to its [[threshold]]s and doors.
[[ATP p248-1]]
...all these heterogenous [[element]]s compose "the" [[multiplicity]] of [[symbiosis]] and [[becoming]]. If we imagine the positions of a fascinated [[self]], it was because the multiplicity toward which it leans, stretching to the breaking point, is the continuation of another [[multiplicity]] that works it and strains it from the inside. In fact, the self is only a [[threshold]], a door, a continuous [[line]] of [[borderline]]s ([[fiber]]) following which the multiplicity changes.
And at each threshold or door, a new [[pact]]? a fiber stretches from human.... and so on to the [[imperceptible]]. Every fiber is a universe fiber. A fiber strung across borderlines constitutes a [[line of flight]] or of [[deterritorialize]]ation.
The [[anomalous]] is the [[white wall]] bordering the pack, but also the demonic term of the alliance.
[[ATP p249-1]]
Where are you going? Where are you coming from? What are you heading for? These are totally useless [[question]]s. Making a clean slate, starting or beginning again from ground zero, seeking a beginning or foundation--all imply a false conception of voyage and movement (a conception that is methodical, pedagogical, [[initiatory]], [[symbolic]]...)
But Kleist, Lenz, and Buchner have another way of traveling and moving: proceeding from the middle, coming and going rather than starting and finishing....they know how to move between things, establish a logic of the [[and]], overthrow ontology, do away with foundations, nullify endings and beginnings. The know how to practice [[pragmatic]]s.
[[schizo flow]]
[[ATP p24/25-1]]
The [[middle]] is by no means an average, on the contrary, it is where things pick up [[speed]]. [[between]] things does not designate a [[localizable]] relation going from one thing to the other and back again (wouldn't that just be [[biunivocal]] rather than a [[rhizome]] ?), but a [[perpendicular]] [[direction]], a [[transverse]]al [[movement]] that [[sweeps]] one [[and]] the other away, a stream without beginning or end that undermines its banks and picks up speed in the middle.
[[schizo flow]]
Last note in the [[Rhizome Plateau]]
[[ATP p25-1]]
A good [[example]] [[fiber]]
[[ATP p249-2]]
[[schizoanalysis]] or [[pragmatic]]s, has no other meaning: Make a [[rhizome]]. But you don't know what you can make a rhizome with, you don't know which subterranean stem is effectively going to make a rhizome, or enter a [[becoming]], people your desert. So [[experiment]].
The idea of laying out all [[multiplicity]]'s [[borderline]]'s out on the flat [[plane of consistency]].
This was mentioned somewhere in the first 2 plateaus, Rhizome or One or Several
[[ATP p250-1]]
the problem of [[accidental form]]s, distinct from both [[essential form]]s and determined [[subject]]s. For accidental forms are susceptible to more and less: more or less charitable, but also more or less white, more or less warm. A [[degree]] of heat is a perfectly [[individuated]] warmth distinct from the [[substance]] or the subject that receives it. A degree of heat can enter into [[composition]] with a degree of whiteness, or with another degree of heat, to form a third unique [[individuality]] distinct from that of the subject.
What is the [[individuality]] of a day, a season, an [[event]]? A shorter day and a longer day are not, strictly speaking, [[extension]]s but degrees proper to extension, just as there are degrees proper to heat, color, etc. An accidental form therefore has a "[[latitude]]" constituted by a certain number of [[composable]] [[individuation]]s. A degree, an [[intensity]], is an [[individual]], a [[haecceity]] that enters into composition with other degrees, other intensities, to form another individual. Can latitude be explained by the fact that the subject participates more or less in the accidental form? But do these degrees of participation not imply a flutter, a [[vibration]] in the [[form]] itself that is not reducible to the properties of a subject?
Moreover, if intensities of heat are not composed by the addition, it is because one must add their respective subjects; it is the subjects that prevent the heat of the whole from increasing. All the more reason to effect distributions of intensity, to establish latitudes that are "deformedly deformed," [[speed]]s, slownesses, and degrees of all kinds corresponding to a b[[body]] or set of bodies taken as [[longitude]]: a [[cartography]].
In sort, [[between]] [[substantial form]]s and determined subjects, between the two, there is not only a whole operation of demonic local transports but a natural play of haecceities, degrees, intensities, events, and accidents that compose individuations totally different from those of the well-formed subjects that receive them.
[[ATP p251-1]]
the [[organ]] is exactly what its [[element]]s make it according to their relation of movement or rest, and the way in which this relation combines with or splits off from that of neighboring elements... We call the [[longitude]] of a [[body]] the [[particle]] [[aggregate]]s belonging to that body in a given relation; these aggregates are p[art of each other depending on the composition of the relation that defines the [[individuate]]d [assemblage]] of the body.
To every relation of movement and rest, speed and slowness, there corresponds a [[degree]] of power. To the relations composing, decomposing, or modifying an [[individual]] there correspond [[intensity]]s that [[affect]] it, augmenting or diminishing its [[power]] to act; these intensities come from external parts or from the individuals own parts. Affects are [[becoming]]s. [[Spinoza]] asks: What can a body do? We call the [[latitude]] of a body the [[affect]]s of which it is capable at a given degree of power, or rather within the [[limit]]s of that degree.
Latitude is made up of [[intensive]] partsfalling under a capacity, and longitude of extensive parts falling under a relation.
[[ATP p253-1]]
We know nothing about a [[body]] until we know what it can do, in other words, what its [[affect]]s are, how they can or cannot enter into [[composition]] with other affects, with the affects of another body, either to destroy that body or be destroyed by it, either to [[exchange]] [[actions and passions]] with it or join with it in composing a more powerful body.
[[ATP p256/257-1]]
Once again, we turn to children. Note how they talk about [[animal]]s, and are moved by them. They make a list of [[affect]]s. [[Little Hans]]'s horse is not [[representative]] but [[affective]]. It is not a member of a species but an [[element]] or [[individual]] in a [[machinic assemblage]]: draft horse-omnibus-street. It is defined by a list of passive and active affects in the context of the [[individuate]]d [[assemblage]] it is a part of...
These affects circulate and are transformed within the assemblage: what a horse "can do." They indeed have an optimal [[limit]] at the summit of horsepower, but also a pessimal [[threshold]]...
[[ATP p257-1]]
The [[question]] is whether [[Little Hans]] can endow his own [[element]]s with the relations of movement and rest, the [[affect]]s, that would make it [[become]] horse, [[form]]s and [[subject]]s aside. Is there yet an unknown [[assemblage]] that would be neither Han's nor the horse's, but that of the [[becoming-horse]] of Hans? An [[assemblage]], for example, in which the horse would bare its teeth and Hans might show something else... And in what way would that ameliorate Hans' problem, to what extent would it open a way out that had been previously blocked?
When [[Hofmannsthall]] contemplates the death throes of a rat, it is in him that the animal "bares his teeth at monstrous fate." This is not a feeling of pity... still less an identification. It is a [[composition]] of speeds and affects involving entirely different individuals, a symbiosis; it makes the rat become a thought, a feverish thought in the man, at the same times as the man becomes a rat gnashing its teeth in its death throes. The rat and the man are in no way the same thing, but [[Being]] expresses them both in a single meaning in a [[language]] that is no longer that of words, in a [[matter]] that is no longer that of [[form]]s, in an [[affectability]] that is no longer that of subjects. Unnatural participation. But the [[plane of composition]], the [[plane]] of Nature, is precisely for participations of this kind, and continually makes and unmakes their assemblages, employing every artifice.
This is not an analogy, or a product of the imagination, but a composition of speeds and affects on the [[plane of consistency]], a [[plan(e)]], a [[program]], or rather a [[diagram]], a problem, a question-machine.
[[ATP p257-2]]
there is a way in which the failure of the [[plane(e)]] is part of the plane(e) itself; the plane(e) is infinite, you can start it in a thousand different ways; you will always find something that comes too late or too early, forcing you to recompose all your relations of speed and slowness, all of your [[affect]]s, and to rearrange the overall [[assemblage]]. An infinite undertaking. But there is another way in which the plane(e) fails; this time, it is because another plane(e) returns full force, breaking the [[becoming-animal]], folding the animal back onto the animal and the person onto the person, recognizing only [[resemblance]]s between elements and analogies [[between]] relations.
[[ATP p258-1]]
"...he knew that he was in the [[process]] of acquiring a veritable [[proper name]], the [[Wolf-Man]], a name more properly his than his own, since it attained the highest [[degree]] of [[singularity]] in the instantaneous apprehension of a generic [[multiplicity]]: wolves.
critique of [[psychoanalysis]] and its relation to [[becoming]], then, But to break the [[becoming-animal]] all that is needed is to extract a [[segment]] from it, to abstract one of its moments, to fail to take into account its internal speeds and slownesses, to arrest the circulation of [[affect]]s. Then nothing remains but imaginary resemblances between the terms, or symbolic analogies between relations... There is always the danger of finding yourself "playing" the [[animal]]... Becomings-animal continually run these dangers.
[[ATP p259-1]]
A [[body]] is not defined by the [[form]] that determines it nor as a determinate [[substance]] or subject nor by the [[organ]]s it possesses or the functions it fulfills. On the [[plane of consistency]], a body is defined only by a [[longitude]] and a [[latitude]]' in other words the sum total of the material [[element]]s belonging to it under given relations of movement and rest, [[speed]] and slowness (longitude): the sum total of the [[intensive]] [[affect]]s it is capable of at a given [[power]] or [[degree]] of [[potential]] (latitude). Nothing but affects and local movements, differential speeds.
The credit goes to [[Spinoza]] for calling attention to these two [[dimension]]s of the Body and for having defined the [[plane]] of Nature as pure longitude and latitude. Latitude and longitude are the two elements of a [[cartography]].
[[ATP p260-1]]
This plateau seems to start with knots, then it slowly unravels them. [[haecceity]] and [[aion]] and [[chronos]] appear here.
"Even when times are abstractly equal, the [[individuation]] of a life is not the same as the individuation of the [[subject]] that leads it or serves as its support.It is not the same [[plane]]; in the first case, it is the [[plane of consistency]], or [[plane of composition]] of haecceities, which knows only [[speed]]s and [[affect]]s; and in the second case, it is the altogether different plane of [[form]]s, [[substance]]s, and [[subject]]s. And it is not the same time..."
[[ATP p260/261-1]]
It is the entire [[assemblage]] in its [[individuate]]d [[aggregate]] that is a [[haecceity]]; it is this assemblage that is defined by a [[longitude]] and a [[latitude]], by [[speed]]s and [[affect]]s, independently of [[form]]s and [[subject]]s, which belong to another [[plane]]... At most we may distinguish assemblage haecceities (a body considered only as longitude and latitude) and [[interassemblage]] haecceities, which also mark the [[potentiality]]s of [[becoming]] within each assemblage (the [[milieu]] of [[intersection]] of the longitudes and latitudes.) But the two are strictly inseparable. Climate, wind, season, hour are not of another nature than the things, animals, or people that populate them, follow them, sleep and awaken within them.
[[ATP p261/262-1]]
This should be read without a pause: the animal-stalks-at-five-o'clock. The [[becoming-evening]], [[becoming-night]] of an [[animal]], blood nuptials. Five o'clock is the animal! This animal is this place. "The thin dog is running in the road, this dog is the road," cries Virginia [[Woolf]]. This is how we need to feel. Spatiotemporal relations, determinations, are not [[predicate]]s of the thing, but [[dimension]]s of [[multiplicity]]s.... The [[plane of consistency]] contains only [[haecceity]]s, along intersecting [[line]]s. [[form]]s and [[subject]]s are not of that world... Haecceity, fog, glare. A haecceity has neither beginning nor end, origin nor destination; it is always in the [[middle]]. It is not made of [[point]]s, only of lines. It is a rhizome.
[[grammar]]
[[ATP p262/263-1]]
And it is not the same [[language]], at least not the same usage of language. For if the [[plane of consistency]] only has [[haecceity]]s for [[content]], it also has its own particular [[semiotic]] to serve as [[expression]]. A [[plane of content]] and a [[plane of expression]]. This semiotic is composed above all of [[proper name]]s, [[verb]]s in the [[infinitive]] and [[indefinite article]]s or [[pronoun]]s.
Indefinite article + proper name + infinitive verb constitutes the basic [[chain]] of expression, correlative to the least [[form]]alized contents, from the standpoint of a semiotic that has freed itself from both formal [[signifiance]]s and personal [[subjectification]]s. In the first place, the verb in the infinitive is in no way indeterminate with respect to [[time]]; it expresses the floating, nonpulsed time proper to [[Aion]], in other words, the time of the pure [[event]]. or of [[becoming]] which articulates [[relative]] [[speed]]s and slownesses independently of the chronometric or chronological values that time assumes in the other [[mode]]s.
[[ATP p263-1]]
There is good reason to oppose the infinitive as [[mode]] and [[tense]] of becoming to all of the other modes and tenses, which pertain to [[Chronos]] since they form pulsations or values of being (the verb "[[to be]]" is precisely the only one that has no infinitive, or rather the infinitive of which is only an indeterminate, empty [[expression]], taken abstractly to designate the sum total of definite modes and tenses).
Second, the proper name is in no way the indicator of a [[subject]]...The [[proper name]] fundamentally designates something that is of the order of [[event]], of [[becoming]] or of the [[haecceity]]... The proper name is not subject of a [[tense]] but agent of an [[infinitive]]. It marks a [[longitude]] and a [[latitude]].... they are not so by virtue of specific and generic denominations that characterize them but of the [[speeds ]]that compose them and the [[affect]]s that fill them; it is by virtue of the event that they are in themselves and in the [[assemblage]]s.
[[ATP p263-2]]
the [[indefinite article]] and the [[indefinite]] [[pronoun]]... lack nothing when they introduce [[haecceity]]s, [[event]]s, the [[individuation]] of which does not pass into a [[form]] and is not effected by a [[subject]]... Here, the [[element]]s in play find their individuation in the [[assemblage]] of which they are a part, independent of the form of their [[concept]] and the [[subjectivity]] of their [[person]].
[[children]] and their [[language]] is discussed alongside [[psychoanalysis]]
[[ATP p263/264-1]]
it [the indefinite pronoun] ties the [[statement]] to a [[collective assemblage]], as its necessary condition, rather than to a [[subject]] of the [[enunciation]]... do away with the any subject in favor of an [[assemblage]] of the [[haecceity]] type that carries or brings out the [[event]] insofar as it is un[[form]]ed and incapable of being [[effectuate]]d by persons. ("something happens to them that they can only get a grip on again by letting go of their ability to say "I").
[it] does not [[represent]] a [[subject]] but rather a [[diagram]] of an assemblage. It does not [[overcode]] statements, it does not transcend them as do the first two persons; on the contrary, it prevents them from falling under the [[tyranny]] of [[subjective]] of [[signifying]] constellations, under the [[regime]] of empty [[redundancy]]s. The [[content]]s of the [[chain]] of [[expression]] it articulates are those that can be assembled for a maximum number of occurrences and [[becoming]]s. "They arrive like fate... where dot hey come from, how have they pushed this far..?" He or one, indefinite article, proper name, infinitive verb: A HANS TO BECOME HORSE, A PACK NAMED WOLF TO LOOK AT HE, ONE TO DIE, WASP TO MEET ORCHID, THEY ARRIVE HUNS.
[[caps lock]] [[grammar]]
[[ATP p264-1]]
Nathalie [[Sarraute]], for her part, proposes a clear distinction [[between]] two [[plane]]s of writing, a transcendent plan(e) that organizes and develops [[form]]s (genres, themes, motifs) and assigns and develops [[subject]]s (personage, characters, feelings); and an altogether different plane that liberates the [[particle]]s of an anonymous [[matter]]. allowing them to communicate through the "envelope" of forms and subjects, retaining between them only relations of movement and rest, [[speed]] and slowness, floating [[affect]]s so that the plane itself is perceived at the same time as it allows us to perceive the [[imperceptible]] (the microplane, the [[molecular]] plane).
[[A Thousand Plateaus]]
It seems to us that fragmentary [[writing]] is not so much the issue in [[Nietzsche]]. It is instead [[speed]]s and slownesses: not writing slowly or rapidly, but rather writing, and everything else besides, as a production of speeds and slownesses [[between]] [[particle]]s. No [[form]] will resist that, no character or [[subject]] will survive it.
[[ATP p267-1]]
"[[Freud]] says that [[hysteric]]s or [[obsessive]]s are people capable of making a [[global]] comparison between a sock and a [[vagina]], a scar and [[castration]], ets., Doubtless, it is at one and the same time that they apprehend the object globally and perceive it as lost."
Connection here to [[AO]], [[partial-objects]] vs [[global objects]]
"Yet it would never occur to a [[neurotic]] to grasp the skin erotically as a [[multiplicity]] of pores, little spots, little scars, or [[black holes]], or to grasp the sock erotically as a multiplicity of stitches. The [[psychotic]] can: "we should expect the multiplicity of these little cavities to prevent him from using them as substitutes for the female genital."
Comparing a sock to a vagina is OK, it's done all the time, but you'd have to be [[insane]] to compare a pure [[aggregate]] of stitches to a field of vaginas" that's what Freud says. This represents an important clinical discovery: a whole difference in style between [[neurosis and ]]psychosis. For Example, [[Salvador Dali]], in an attempt to reproduce his [[delusion]]s, may go on at length about THE rhinoceros horn; he has not for all of that left neurotic discourse behind.
But when he starts comparing goosebumps to a [[field]] of tiny rhinoceros horns, we get the feeling that the atmosphere has changed and we are now in the presence of [[madness]].
Is it still a [[question]] of comparison at all? It is, rather, a pure multiplicity that changes elements, becomes. [[becoming]]. On the micrological level, the little bumps "become" horns, and the horns, little penises.
[[big boy]]
[[ATP p26/7-1]]
No sooner does [[Freud]] discover the greatest [[art]] of the [[unconscious]], this art of [[molecular]] [[multiplicity]]s than we find him tirelessly at work, bringing back [[molar]] unities, reverting to his familiar themes of The father, The penis... On the verge of discovering a [[rhizome]] Freud always returns to mere roots.
[[ATP p27-1]]
[[Ravel]] and [[Debussy]] retain just enough [[form]] to shatter it, [[affect]] it, modify it through [[speed]]s and slownesses... this allows one to produce extremely complex dynamic relations on the basis of intrinsically simple formal relations... It is as though an immense [[plane of consistency]] at [[variable]] speed were forever sweeping up [[form]]s and [[function]]s, forms and [[subject]]s, extracting from them [[particle]]s and affects.
[[ATP p269-1]]
A girl is late on account of her [[speed]]: she did too many things, crossed too many spaces in relation to the [[relative]] [[time]] of the person waiting for her. Thus her apparent [[slowness]] is transformed to the breakneck [[speed]] of our waiting.
[[Proust]]
[[ATP p270/271-1]]
A kind of [[order]] or [[progression]] can be established for the [[segment]]s of [[becoming]] in which we find ourselves; [[becoming-woman]], [[becoming-child]]; [[becoming-animal]]. [[becoming-vegetable]], or [[becoming-mineral]]; [[becoming-molecular]] of all kinds, [[becoming-particle]]s. [[fiber]]s lead us from one to the other, transform one into the other as they pass through [[door]]s and across [[threshold]]s. [[sing]]ing or composing, [[painting]], [[writing]] have no other aim: to unleash these becomings. Especially [[music]]... the value of a new threshold for a properly musical [[content]]: the sound [[molecule]], relations of [[speed]] and slowness [[between]] [[particle]]s. Becomings-animal plunge into becomings-molecular. This raises all kinds of [[question]]s.
[[ATP p271-1]]
In a way, we must start at the end: all [[becoming]]s are already [[molecular]]. This is because becoming is not to [[imitate]] or [[identify]] with something or someone. Nor is it to proportion [[form]]al relations. Neither of these two figures of analogy is applicable to becoming: neither the imitation of a [[subject]] nor the proportionality of a [[form]].
Starting from the forms one has, the subject one is, the [[organ]]s one has, or the functions one fulfills, becoming is to extract [[particle]]s [[between]] which one establishes the relations of movement and rest, [[speed]] and slowness that are closest to what one is becoming, and through which one becomes. This is the sense in which becoming is the [[process]] of [[desire]]. This principle of proximity or approximation is entirely particular and reintroduces no analogy whatsoever. It indicates as rigorously as possible a [[zone of proximity]] or copresence of a particle, the movement into which any particle that enters the same [[zone]] is drawn....
We could also put it this way: Becoming is to [[emit]] particles that take on certain relations of movement and rest because they enter a particular zone of proximity. Or, it is to emit particles that enter that zone because they take on those relations. A [[haecceity]] is inseparable from the fog and mist that depend on a [[molecular]] zone, a corpuscular space. Proximity is a notion, at once topological and [[quantal]], that marks a belonging to the some molecule, independently of the subjects considered and the forms determined.
[[ATP p272-1]]
It is a question of composing a [[body]] with the [[animal]], a [[body without organs]] defined by [[zone]]s of [[intensity]] or [[proximity]]. Where does this [[objective indetermination]] or [[indiscernibility]]... come from?
[[ATP p272/273-1]]
An [[example]]: Do not [[imitate]] a dog, but make your [[organism]] enter into composition with something else in such a way that the [[particle]]s emitted from the [[aggregate]] thus composed will be canine as a function of the relation of movement and rest ([[speed]]), or of [[molecular]] [[proximity]], into which they enter. Clearly, this is something else that can be quite varied, and can be more or less directly related tot he animal in question... Or... does not even have a localizable relation to the [[animal]] in [[question]].
That is the essential point for us: you are [[becoming-animal]] only if, by whatever means or [[element]]s, you [[emit]] [[corpuscle]]s that enter the relation of movement and rest of the animal particles, or what amounts to the same thing, that enter the [[zone of proximity]] of the animal [[molecule]]. You become animal only molecularly. You do not become a barking [[molar]] dog, but by barking, if it is done with enough feeling, with enough necessity and composition, you emit a molecular dog... for this is the becoming-animal in action, the production of the molecular animal (whereas the "real" animal is trapped in its [[molar]] [[form]] and [[subjectivity]]).
[[ATP p274-1]]
Yes, all [[becoming]]s are [[molecular]]: the [[animal]], flower, stone one becomes are molecular collectivities, [[haecceity]], not [[molar]] [[subject]]s, objects, or [[form]]s that we know from the outside and recognize from experience, through science, or by habit.... What we term a [[molar]] entity is, for example, the woman as defined by her [[form]], endowed wiht [[organ]]s and [[function]]s and assigned as a [[subject]].
...the woman as a molar entity has to become-woman in order that tha man also becomes- or can [[become-woman]]
[[ATP p274/275-1]]
The [[question]] is fundamentally that of the [[body]]-the body they steal from us in order to fabricate opposable [[organism]]s. This body is stolen first from the [[girl]]: stop behaving like that, you're not a little girl anymore, you're not a tomboy, etc. The [[girl]]s [[becoming]] is stolen first, in order to impose a [[history]], or prehistory, upon her. The [[boy]]'s turn comes next, but it is by using the girl as an example, by pointing to the girl as the object of his [[desire]], that an opposed organism, a dominant history is fabricated for him too. The girl is the first victim, but she must also serve as an example and a trap.
That is why, conversely, the reconstruction of the body as a [[body without organs]], the [[anorganism]] of the body, is inseparable from a [[becoming-woman]], or the production of a [[molecular]] [[woman]]. Doubtless, the girl becomes a woman in the [[molar]] or [[organic]] sense. But conversely, becoming-woman or the molecular woman is the girl herself. The girl is certainly not defined by virginity; she is defined by a relation of movement and rest, [[speed]] and slowness, by a combination of [[atom]]s, an emission of [[particle]]s: [[haecceity]]. She never ceases to roam upon a body without organs. She is an [[abstract line]], or a [[line of flight]].
[[ATP p275-1]]
The [[girl]] is like the [[block of becoming]] that remains contemporaneous to each opposable term, [[man]], [[woman]], [[child]], [[adult]]. It is not the girl who becomes a woman; it is the [[becoming-woman]] that produces the universal girl...
Although all [[becoming]]s are already [[molecular]], including becoming-woman, it must be said that all becomings begin with and pass through becoming-woman, It is the [[key]] to all the other becomings...
[[ATP p276/277-1]]
...the [[line of flight]] attracts the enemy, traverses something, and puts what it traverses to [[flight]]...
[[ATP p277-1]]
The union of the [[girl]] and the [[man of war]] does not produce [[animal]]s, but simultaneously produces the [[becoming-woman]] of the latter and the [[becoming-animal]] of the former, in a single [[block of becoming]] in which the warrior in turn becomes [[animal]] by [[contagion]] with the girl at the same time as the girl becomes warrior by contagion with the animal. Everything ties together in an asymmetrical block of becoming, an instantaneous zigzag.
[[ATP p277-2]]
love itself is a [[war machine]] endowed with strange and somewhat terrifying powers. Sexuality is the production of a thousand sexes, which are so many uncontrollable [[becoming]]s. Sexuality proceeds by way of the [[becoming-woman]] of the man and the [[becoming-animal]] of the [[human]]: an emission of [[particle]]s... It is not a question of "playing" the dog... Becomings-animal are basically of another [power]]. since their reality resides not in an animal one imitates or to which one corresponds but in themselves, in that which suddenly sweeps us up and makes us become-a [[proximity]], an [[indiscernibility]] that extracts a shared [[element]] from the animal...
[[ATP p278-1]]
If [[becoming-woman]] is the first [[quantum]], or [[molecular]] [[segment]], with the [[becoming-animal]]s that link up with it coming next, what are they all rushing toward? Without a doubt toward [[becoming-imperceptible]]. The [[imperceptible]] is the [[immanent]] end of [[becoming]], its [[cosmic]] formula...
But what does becoming-imperceptible signify, coming at the end of all the [[molecular]] becomings that begin with becoming-woman? Becoming-imperceptible means many things. What is the relation between the ([[anorganism]]) imperceptible, the ([[asignifying]]) indiscernible, and the ([[asubjective]]) impersonal? A first response would be: to be like everybody else... after a real [[rupture]], one succeeds in being like everybody else. To go unnoticed is by no means easy. To be a stranger, even to ones doorman or neighbors. If it is so difficult to be "like" everybody else, it is because it is an affair of [[becoming]]... "Eliminate"... everything that roots each of us (everybody) in ourselves, our [[molar]]ity. Fore everybody/everything is the molar [[aggregate]], but becoming everybody/everything is another affair, on that brings into play the [[cosmos]] with its [[molecular]] [[component]]s...
[[schizo flow]] that goes on
[[ATP p278/279-1]]
...the relation of the [[proper name]] as an [[intensity]] to the [[multiplicity]] it instantaneously apprehends."
The proper name isn't a representation, but an apprehension? [[question]]
[[ATP p27-2]]
By [[process]] of elimination, one is no longer anything other than an [[abstract line]], a piece in a puzzle that is itself abstract. it is by [[conjugating]], by continuing with other [[line]]s, other pieces, that one makes a world that can overlay the first one, like a transparency...
[[ATP p279-1]]
[[movement]] has an essential relation to the [[imperceptible]]; it is by nature imperceptible. Perception can grasp movement only as the displacement of a moving [[body]] or the development of a [[form]]. Movements, [[becoming]]s, in other words, pure relations of [[speed]] and slowness, pure [[affect]]s, are below and above the [[threshold]] of [[perception]]. Doubtless, thresholds of perception are relative, there is always a threshold capable of grasping another: the eagle's eye... But the adequate threshold can in turn operate only as a function of a perceptible [[form]] and a perceived, discerned [[subject]].
So that movement in itself continues to occur elsewhere: if we serialize perception, the movement always takes place above the maximum threshold and below the minimum threshold, in expanding or contracting intervals (microintervals)... the infinite slowness of the wait (what is going to happen) and the infinite speed of the result (what happened?)... Movement, like the [[girl]] as fugitive being, cannot be perceived.
However, we are obliged to make an immediate correction: movement also "must" be perceived, it cannot but be perceived, the imperceptible is also the [[percipiendum]]. There is no contradiction in this. If movement if imperceptible by nature, it is so always in relation to a given threshold of perception, which is by nature [[relative]] and thus plays the role of a mediation on the plane that effects the distributions of thresholds and [[percept]]s and makes [[form]]s perceivable to perceiving subjects.
Then there is the [[plane of consistency]] with an [[absolute]] but differentiated threshold. I wrote that to save space. long-winded plateau.
[[ATP p280-1]]
There is no doubt that an [[assemblage]] never contains a causal infrastructure. It does have, however, and to the highest degree, an [[abstract line]] of creative or specific causality, its [[line of flight]] or of [[deterritorialization]]; this [[line]] can be [[effectuate]]d only in connection with general causalities but is in no way explained by them.
[[drug]]s get discussed over the next section
[[causal]]
[[causality]]
[[ATP p280/281-1]]
In short, the [[secret]], defined as a [[content]] that has hidden its [[form]] in favor of a simple container...
discussion of secret socieities, and [[war machine]]s follow
[[ATP p283-1]]
you can't be one wolf, you're always eight or nine, six or seven. Not six or seven wolves all by yourself all at once, but one wolf among others, with five or six others.
[[becoming-animal]]
[[ATP 28-2]]
In [[becoming-wolf]] the important thing is the position of the [[mass]], and above all the position of the subject itself in relation to the [[pack]] to the [[wolf-multiplicity]]; how the subject joins or does not join the pack, how far away it stays, how it does or does not hold to the [[multiplicity]]
[[becoming-animal]]
[[ATP p29-1]]
Franny recounts a dream: " There is a desert. Again, it wouldn't make any sense to say that I am in the [[desert]]. It's a panoramic vision of the desert, and its not a tragic or uninhabited desert. It's only a desert because of its ocher color and its blazing, shadowless sun. There is a teeming [[crowd]] in it, a [[swarm]] of [[bees]], a rumble of soccer players or a group of [[Tuareg]]. I am on the edge of the crowd, at the periphery; but I belong to it, I am attached to it by one of my extremities, a hand or foot. I know that the periphery is the only place I can be, that I would die if I let myself be drawn into the center of the fray, but just as certainly if I let go of the crowd.
This is not an easy position to stay in, it is even difficult to hold, for these beings are in constant motion and their movements are unpredictable and follow no [[rhythm]]. They swirl, go north, then suddenly east, none of the individuals in the crowd remains in the same place in relation to the others. So I too am in perpetual motion; all this demands a high level of tension, but it gives me a feeling of violent, almost vertiginous happiness."
A very good [[schizo]] dream. To be fully a part of the crowd and at the same time completely outside it, removed from it: to be on the edge, to take a walk like Virginia Woolf (Never again will I say "I am this, I am that")
[[unconscious]]
[[becoming-animal]]
[[dreams]]
[[treatment]]
[[schizo flow]]
[[ATP p29-2]]
Problems of peopling in the [[unconscious]]; all that passes through the pores of the [[schizo]], the veins of the drug addict, [[swarm]]ing, teeming, fermenting, [[intensity]]s, [[races]] and [[tribes]]....
One schizo, two schizos, three: "there are babies growing in my every pore"--"with me, it's not in the pores, its in my veins, little iron rods growing in my veins"--"I don't want them to give me any shots, except with camphorated alcohol. OTherwise breasts grow in my every pore."
[[ATP p29-3]]
[[Freud]] tried to approach crowd phenomena from the point of view of the [[unconscious]], but he did not see clearly, he did not see the unconscious itself was fundamentally a [[crowd]]
[[ATP p29-4]]
What counts in the [[secret]] is less its three [[state]]s (child's [[content]], virile infinite [[form]], pure feminine [[line]]) than the [[becoming]]s attached to them, the [[becoming-child]] of the secret, its [[becoming-woman]], its [[becoming-molecular]]-which occur precisely at the point where the secret has lost both its [[content]] and its [[form]], where the [[imperceptible]], the [[clandestine]] with nothing left to hid, has finally been perceived. From the gray eminence to the gray [[immanence]].
[[ATP p287-1]]
Some people can talk, hide nothing, not lie: they are [[secret]] by transparency, as impenetrable as water, in truth incomprehensible. While others have a [[secret]] that is always breached, even though they surround it with a thick [[wall]] or elevate it to an [[infinite]] [[form]].
[[ATP p290-1]]
A [[becoming-minoritarian]] exists only by virtue of a [[deterritorialize]]d [[milieu]] and [[subject]] that are like its [[element]]s. There is no subject of the [[becoming]] except as a deterritorialized [[variable]] of the [[majority]]; there is no [[milieu]] of becoming except as a deterritorialized variable of a minority. We can by thrown into a becoming by anything at all...
There is no [[history]] but the history of the majority, or of minorities as defined in relation to the majority. And yet "how to win the majority" is a totally secondary problem in relation to the advances of the [[imperceptible]].
[[ATP p290-2]]
What constitutes the [[arborescence]] is the submission of the [[line]] to the [[point]].
Discussion of [[memory]], [[fantasy]].
One does not break with the [[arborescent]] schema, one does not reach [[becoming]] or the [[molecular]], as long as a line is connected to two points, or is composed of two [[contiguous]] points. A line of becoming is not defined by the points it connects, or by points that compose it; on the contrary it passes [[between]] points, it comes up through the [[middle]], it runs [[perpendicular]] to the points first perceived, [[transverse]]ally to the localizable relation to distant or contiguous points. A point is always a point of origin. But a line of becoming has neither beginning nor end, departure nor arrival, origin nor destination; to speak of the absence of an origin, to make the absence of an origin, is a bad play on words. A line of becoming has only a [[middle]]...
[[ATP p292-1]]
Creations are like [[mutant]] [[abstract line]]s that have detached themselves from the task of [[represent]]ing a [[world]], precisely because they assemble a new type of reality that [[history]] can only recontain or relocate in [[punctual]] [[point]] [[system]]s.
[[emergence]] [[new]]
[[ATP p293-1]]
draw your own [[diagonal]], however fragile, outside [[point]]s, outside coordinates and localizable connections, in order to float a [[block of becoming]] down a created, liberated [[line]], in order to unleash in space this mobile and [[mutant]] block, a [[haecceity]]... it is now the [[point]] that is subordinated to the [[line]], the point now marks the proliferation of the line, or its sudden deviation, its acceleration, its slowdown, its furor or agony...
first mention of [[intermezzo]]
[[becoming]]
[[ATP p296-1]]
We would say that the [[refrain]] is properly [[music]]al [[content]], the [[block of content]] proper to music.
Frist time [[refrain]] appears.
[[ATP p297-1]]
"In a book, as in all things, there are lines of articulation or [[segmentarity]], [[strata]] and territories; but also [[lines of flight]], movements of [[deterritorialize]]ation and de[[strata]]fication. Comparative rates of flow on these [[lines]] produce phenomena of slowness and viscosity, or, on the contrary, of acceleration and rupture. All this, [[lines]] and measurable speeds, constitutes an [[assemblage]]."
[[ATP p4-1]]
A [[multiplicity]] of bees, soccer players or Tuareg, wolves or jackals. All of these things are irreducible but bring us to a certain status of the formations of the [[unconscious]]. Let us try to define the factors involved: first, something plays the role of the full body--the [[body without organs]]... is not an empty body stripped of organs, but a body upon which that which serves as [[organ]]s (wolves, wolf eyes, wolf jaws) is distributed according to crowd phenomena, in Brownian ([[molecular]]) motion, in the form of molecular multiplicities. The desert is populous.
Thus the body without organs is opposed less to [[organ]]s as such than to the organization of the organs insofar as it composes an [[organism]]... it is not a dead body but all the more alive and teeming once it has blown apart the organism and its organization...
the problem of the unconscious has most certainly nothing to do with generation but rather peopling, population. It is an affair of world wide population on the full body.
After all, [[schizo]]s... only have a desert with tribes inhabiting it, a [[full body]] clinging with multiplicities.
[[ATP p29-5]]
This brings us to the second factor [factor one was peopling the [[body without organs]] with the packs, the multiplicities], the nature of these [[multiplicity]]s and their elements. RHIZOME. One of the essential characteristics of the dream of multiplicity is that each element ceaselessly undergoes [[variation]] and alters its [[distance]] in relation to the others... they ceaselessly dance, grow, diminish.
These variable distances are not [[extensive]] quantities divisible by each other; rather, each is [[indivisible]], or "relatively indivisible," in other words they are not divisible below or above a certain [[threshold]], the cannot increase or diminish without their elements changing in nature.
a swarm of bees: here they come as a rumble of soccer players instriped jerseys or a band of Tuareg. Or: The wolf clan doubles up with a swarm of bees against the gang of Deulhs, under the direction of Mowgli, who runs on the edge.
[[rhizome]]
[[unconscious]]
[[caps lock]]
[[ATP p30-1]]
The [[motif]] of the [[refrain]] may be anxiety, fear, joy, love, work, walking, [[territory]]... but the refrain itself is the [[content]] of [[music]]... music exists because the refrain exists also, because music takes up the refrain, lays hold of it as a [[content]] in a [[form of expression]]...Whereas the refrain is essentially [[territorial]], territorializing, or [[reterritorialize]]ing. music makes it a [[deterritorialize]]d [[content]] for a [[deterritorializing]] [[form of expression]].
[[ATP p299-1]]
[[face]] and [[faciality]] and [[landscape]] are back for discussion
[[ATP p300-1]]
[[Leroi-Gourhan]] established a distinction and correlation between the two poles, [[hand-tool]] and [[face-language]]. But there it was a question of distinguishing a [[form of content]] and a [[form of expression]]. Here we are considering [[expression]]s that hold their [[content]] within themselves, so we must make a different distinction...
[[ATP p301-1]]
The fact that there is not [[deterritorialize]]ation without a special [[reterritorialize]]ation should prompt us to rethink the abiding correlation [[between]] the [[molar]] and the [[molecular]]: no [[flow]], no [[becoming-molecular]] escapes from a molar formation without molar [[component]]s accompanying it, [[form]]ing [[passage]]s or perceptible [[landmark]]s for the [[imperceptible]] [[process]]es.
[[component of passage]]
[[ATP p302-1]]
One does not [[imitate]]; one constitutes a [[block of becoming]]. [[imitation]] enters in only as an adjustment of the block, like a finishing touch, a wink, a signature...
[[ATP p303-1]]
A [[functionalist]] conception... only considers the function a [[quality]] fulfills in a specific [[assemblage]]... or in passing from one assemblage to another ([[component of passage]])... a quality functions as a [[line]] of [[deterritorialize]]ation of an assemblage, or in going from one assemblage to another
[[ATP p305-1]]
[[theorem]] six: In non-symmetrical double [[deterritorialize]]ation it is possible to assign a deterritorializing [[force]] and a deterritorialized force, even if the same force switches from one value to the other depending on the "moment" or aspect considered: furthermore, it is the least deterritorialized [[element]] that always triggers the deterritorialization of the most deterritorializing element, which then reacts back upon it in full force
7: the deterritorializing element has the relative role of [[expression]], and the deterritorialized element the relative role of [[content]]... but not only does the content have nothing to do with an external [[subject]] or object, since it forms an asymmetrical [[block]] with the expression, but the deterritorialization carries the expression and the content to a [[proximity]] where the distinction [[between]] them ceases to be relevant, or where the deterritorialization creates their [[indiscernible]] (indiscernibility in the text)
eight: One [[assemblage]] does not have the same forces or even [[speed]]s of deterritorialization as another; in each instance, the [[index]]es and [[coefficient]]s must be calculated according to a [[block of becoming]] under consideration, and in relation to the [[mutation]]s of an [[abstract machine]]... there is a certain slowness, a certain viscosity... one can only calculate and compare powers of deterritorialization)
[[ATP p306-1]]
the issue is not a given composer... but the more general movement [[affect]]ing [[music]], the slow mutation of the musical [[machine.]]
[[mutant]]
[[ATP p307-1]]
What is the [[significance]] of these [[indivisible]] [[distance]]s that are ceaselessly transformed, and cannot be divided or transformed without their elements changing in nature each time? Is it not the [[intensive]] character of this kind of a [[multiplicity]]'s elements and the relations between them? Exactly like a [[speed]] or a temperature, which is not composed of other speeds and temperatures but rather is [[enveloped]] in or envelops others, each of which marks a change in nature.
The metrical principle of these multiplicities is not to be found in a [[homogenous]] [[milieu]] but resides elsewhere, in [[force]]s at work within them, in physical [[phenomena]] inhabiting them, precisely in the [[libido]], which constitutes them from within, and in constituting them necessarily divides into distinct qualitative and [[variable]] [[flow]]s
[[question]]
[[ATP p30/31-1]]
Opposite of [[Freud]], "all of this should be understood in [[intensity]]; the Wolf is the pack, in other words, the [[multiplicity]] instantaneously apprehended as such insofar as it approaches or moves away from [[zero]], each distance being [[nondecomposable]]. Zero is the [[body without organs]] of the [[Wolf-Man]].
If the [[unconscious]] knows nothing of [[negation]] it is because there is nothing [[negative]] in the unconscious, only indefinite moves towards and away from zero, which does not at all express [[lack]] but rather the positivity of the [[full body]] as support and prop ("for an afflux is necessary simply to [[signify]] the absence of intensity). The wolves designate an intensity, a [[band]] of intensity, a [[threshold]] of intensity on the Wolf-Man's body without organs.
[[ATP p31-1]]
The wolves designate a [[band]] of [[intensity]], a [[threshold]] of intensity on the [[Wolf-Man]]'s [[body without organs]].
[[ATP p31-2]]
A dentist told the [[Wolf-Man]] that he "would soon lose all his teeth because of the violence of his bite"--and that his gums were pocked with pustules and little holes. Jaw as high [[intensity]], teeth as low intensity, and pustular gums as approach to [[zero]].
[[ATP p31-3]]
The role of the [[refrain]] has often been emphasized: it is [[territorial]], a territorial [[assemblage]]. The refrain may assume other functions, amorous, professional, regional...
Sometimes one goes from [[chaos]] to the [[threshold]] of a territorial assemblage: [[directional ]][[component]]s, [[infra]]-assemblage
sometimes one organizes the assemblage: [[dimensional ]]components, [[intra]]-assemblage.
Sometimes one leaves the territorial assemblage for other assemblages, or for somewhere else entirely: [[inter]]-assemblage, [[component of passage]] or even [[escape]]. And all three at once.
Forces of chaos, terrestrial forces, [[cosmic]] forces: all of these confront each other and converge in the territorial refrain
[[ATP p308-1]]
From [[chaos]], [[milieu]]s and [[rhythm]]s are born. This is the concern of very ancient cosmogonies. Chaos is not without its own [[directional]] [[component]]s, which are its own ecstasies. We have seen elsewhere how all kinds of milieus, each defined by a component, slide in relation to one another, over one another. Every milieu is vibratory, in other words, a [[block]] of space-time constituted by the periodic [[repetition]] of the component.
Thus the living thing has an [[exterior]] milieu of materials, an [[interior]] milieu of composing [[element]]s and composed [[substance]]s, an [[intermediary]] milieu of [[membrane]]s and [[limit]]s, an an [[annex]]ed milieu of energy sources and actions-[[perception]]s. Every milieu is coded, a [[code]] being defined by periodic repetition; but each is in a perpetual state of [[transcoding]] or [[transduction]].
Transcoding or transduction is the manner in which one milieu serves as the basis for another, or conversely is established atop another milieu, dissipates in it or is constituted in it. The notion of the milieu is not unitary; not only does the living thing continually pass from one milieu to another, but the milieus pass into one another, they are essentially communicating,
[[ATP p312-1]]
[[rhythm]] is the [[milieu]]s answer to [[chaos]]. What chaos and rhythm have in common is the in-[[between]]-between two milieus, rhythm-chaos or [[chaosmos]]:.. In this in-between, chaos becomes rhythm, not inexorably, but it has a chance to. Chaos is not the opposite of a rhythm, but the milieu of all milieus. There is rhythm whenever there is a [[transcode]]d [[passage]] from one milieu to another, a communication of milieus, coordination between heterogenous space-times. Drying up, death, intrusion have rhythm. Meter... assumes a [[code]]d [[form]] whose unit of measure may vary, but in a noncommunicating milieu, whereas rhythm is the unequal or incommensurable that is always undergoing [[transcoding]]... rhythm is critical, it ties together critical moments, or ties itself together in passing from one milieu to another. It does not operate in a homogenous space-time, but by heterogenous [[block]]s. It changes direction.
[[ATP p313-1]]
[[Bachelard]] is right to say that "the link [[between]] truly active moments ([[rhythm]]) is always effected on a different [[plane]] from the one upon which the action is carried out." Rhythm is never on the same plane as that which has rhythm. Action occurs in a [[milieu]] whereas rhythm is located between two [[milieu]]s, or between two [[inter]]milieus, between night and day, at dusk... [[haecceity]]. To change milieus, taking them as you find them: such is rhythm...
How can one proclaim the constituent inequality of rhythm while at the same time admitting implied [[vibration]]s, periodic [[repetition]]s of [[component]]s? A milieu does in fact exist by virtue of a periodic repetition, but one whose only effect is to produce a [[difference]] that is rhythmic, not the repetition, which nevertheless produces it: productive repetition has nothing to do with reproductive meter. This is the "critical solution of the antinomy."
[[ATP p313-2]]
One case of [[transcoding]] is particularly important: when a [[code]] is not content to take or receive [[component]]s that are coded differently, and instead takes or receives [[fragment]]s of a different code as such... [[Uexkull]] has elaborated an admirable theory of transcodings. He sees the components as melodies in counterpoint, each of which serves as [[motif]] for another. Nature as [[music]]. Whenever there is transcoding, we can be sure that there is not a simple addition, but the constitution of a new [[plane]], as of a [[surplus value]]. A melodic or [[rhythm]]ic plane, surplus value of bridging or [[passage]].
[[surplus value of the code]].
[[ATP p313/314-1]]
Still, we do not yet have a [[territory]], which is not a [[milieu]], not even an additional milieu, nor a [[rhythm]] or [[passage]] [[between]] milieus. The territory is in fact an act that [[affect]]s milieus and rhythms, that "territorializes" them. The territory is a product of the [[territorial]]ization of milieus and rhythms... A territory borrows from all the milieus; it bites into them, seizes them bodily (Although it remains vulnerable to intrusions). It is built from aspects or portions of milieus. It itself has an [[exterior]] milieu, an [[interior]] milieu, an [[intermediary]] milieu, and an [[annex]]ed milieu.
It has the interior zone of a residence or shelter, the exterior zone of its domain, more or less retractable [[limit]]s or [membrane]]s, intermediary or even neutralized zones, and energy reserves or annexes. It is by essence marked by "[[index]]es," which may be taken from any of the milieus: materials, organic products, skin or membrane states, energy sources, action-[[perception]] condensates. There is a territory precisely when milieu [[component]]s cease to be [[directional]], [[becoming]] [[dimensional]] instead, when they cease to be [[function]]al, to become [[expressive]]. There is a territory when rhythm has expressiveness.
[[ATP p314-1]]
What defines [[territory]] is the [[emergence]] of [[matter of expression]]s ([[quality]]s). Take the example of color in brids or fish... It becomes [[expressive]]... when it acquires a temporal constancy and a spatial range that make it a [[territorial]], or rather territorializing, [[mark]]: a signature. The [[question]] is not whether color resumes its [[function]]s or fulfills new ones in the territory. It is clear that it does, but this reorganization of functions implies first of all that the [[component]] under consideration has [[become]] [[expressive]] and that its meaning, form this standpoint, is to mark a territory...
A [[milieu]] component becomes both a [[quality]] and a [[property]], [[quale]] and [[proprium]]. It has been remarked how quick this [[becoming]] is in many cases, the rapidity with which a territory is constituted at the same time as expressive qualities are selected or produced.
[[ATP p314/315-1]]
The [[territory]] is not primary in relation to the [[qualitative]] ([[quality]]) [[mark]]; it is the mark that makes the territory. Functions in a territory are not primary; they presuppose a territory-producing [[expressive]]ness. In this sense, the territory, and the f[[function]]s performed within it, are products of [[territorialize]]ation. Territorialization is an act of [[rhythm]] that has [[become]] expressive, or of [[milieu]] [[component]]s that have become qualitative.
The marking of a territory is [[dimensional]], but it is not a meter, it is a rhythm. It retains the most general characteristic of rhythm, which is to be inscribed on a different [[plane]] than that of its actions. But now the distinction [[between]] the two planes is between territorializing [[expression]]s and terrtorialized functions.
In the last tiddler, milieu functions become expressive; here, there are territorializing expressions and territorialized functions
[[ATP p315-1]]
The [[T factor]], the [[territorialize]]ing factor, must be sought elsewhere: precisely in the [[becoming expressive]] of [[rhythm]] or [[melody]], in other words, in the [[emergence]] or or proper [[quality]]s (color, odor, sound, silhouette...).
[[ATP p315-2]]
The [[refrain]] is [[rhythm]] and [[melody]] that have been [[territorial]]ized because they have [[become expressive]]-and have become [[expressive]] because they are territorializing. (Are they now moving back in time, ie from C->A?). We are not going in circles. What we wish to say is that there is a self -movement of expressive [[quality]]s. Expressiveness is not reducible to the immediate effects of an impulse triggering an action in a [[milieu]]... expressive qualities... are auto-objective, in other words, find an objectivity in the [[territory]] they draw.
[[ATP p316-1]]
What is this objective movement? What does a [[matter]] do as a [[matter of expression]]? it is first of all a poster or placard, but that is not all it is. It merely takes that route. The [[signature]] becomes [[style]]. In effect, [[expressive]] [[quality]]s or matters of [[expression]] enter shifting relations with one another that "[[express]]" the relation of the [[territory]] they [[draw]] to the [[interior]] [[milieu]] of impulses and [[exterior]] milieu of circumstances, To [[express]] is not to depend upon; there is an [[autonomy]] of expression.
On the one hand, expressive [[quality]]s entertain internal relations with one another that constitute territorial [[motif]]s; sometimes these motifs loom above the [[internal]] impulses, sometimes they are superposed upon them, sometimes they ground one impulse in another, sometimes they pass and cause a [[passage]] from one impulse to another, sometimes they insert themselves [[between]] them-but they themselves are not "pulsed." Sometimes these [[nonpulsed]] motifs arise in a fixed [[form]], or seem to arise that way, but at other times the same ones, or others, take on [[variable]] [[speed]] and [[articulation]]; it is as much their variability as their fixity that makes them independent of the [[drive]]s they combine or neutralize.
[[ATP p317-1]]
On the other hand, [[expressive]] [[quality]]s also entertain other internal relations that produce [[territorial]] [[counterpoint]]s: this refers to the manner in which they constitute [[point]]s in the [[territory]] that place the circumstances of the [[exterior]] [[milieu]] in counterpoint... an enemy approaches or suddenly appears, rain starts to fall... Here again, the points or counterpoints are autonomous in their fixity or [[variability]] in relation to the circumstances of the [[exterior]] milieu whose relation to the territory they [[express]]. For this relation can be given without the circumstances being given, just as the relation to the impulses can be given without the impulse being given. And even when the impulses and circumstances are given, the relation is prior to what it places in relation. Relations between [[matter of expression]]s express relations of the [[territory]] to internal impulses and external circumstances: they have an [[autonomy]] within this very expression.
In truth, territorial [[motif]]s and counterpoints explore [[potentiality]]s of the [[interior]] or exterior milieu... It is not one or the other, fixity or variability; certain motifs or points are fixed only if others are variable, or else they are fixed on one occasion and variable on another.
[[ATP p317-2]]
[[territorial]] [[motif]]s form [[rhythm]]ic [[face]]s or [[character]]s, and territorial [[counterpoint]]s form melodic [[landscape]]s. There is a rhythmic character when we find that we no longer have the simple situation of a rhythm associated with a character, [[subject]], or impulse. The rhythm itself is now the character in its entirety; as such, it may remain [[constant]], or it may be augmented or diminished by the addition or subtraction of sounds or always increasing or decreasing [[duration]]s, and by an amplification or elimination bringing death or resuscitation, appearance or disappearance.
similarly, the melodic landscape itself is no longer a [[melody]] associated with a landscape; the melody itself is a sonorous landscape in counterpoint to a [[virtual]] landscape. This is how we get beyond the placard stage; although each [[expressive]] [[quality]], each [[matter of expression]] considered in itself, is a placard or poster, the analysis of them is nevertheless abstract. Expressive qualities entertain [[variable]] or constant relations with one another (that is what matters of expression do); they no longer constitute placards that [[mark]] a [[territory]], but motifs and counterpoints that [[express]] the relation of the territory to [[interior]] impulses or [[exterior]] circumstances, whether or not they are given.
[[ATP p317/318-1]]
An excellent [[example]], then "it is not by chance that the apprenticeship of the Recherche pursues an analogous discovery in relation to Vinteuil's little phrases; they do not refer to a [[landscape]]; they carry and develop within themselves landscapes that do not exist on the outside..."
[[ATP p318-1]]
The [[territory]] is first of all the critical [[distance]] [[between]] two beings of the same species: [[mark]] your distance. What is mine is first of all my distance: I possess only distances... Critical distance is a relation based on [[matter of expression]]s. It is a question of keeping at a distance the forces of [[chaos]] knocking at the door... This is evident in territorial dances... there is a whole [[art]] of poses, postures, silhouettes, steps, and voices... also tattoos that make the body a territory... a mention of [[Messiaen]]s three [[rhythm]]s...
Furthermore, we must simultaneously take into account two aspects of the territory: it not only ensures and regulates the coexistence of members of the same species by keeping them apart, but makes possible the coexistence of a maximum number of different species in the same [[milieu]] by specializing them. Members of the same species enter into rhythmic [[character]]s at the same times as different species enter into melodic [[landscape]]s...
[[ATP p319-1]]
The wolf, as the instantaneous apprehension of a [[multiplicity]] in a given [[region]], is not a [[representative]], a substitute, but an "[[I feel]]." I feel myself [[becoming]] a [[wolf], one wolf among others, at the [[edge]] of the [[pack]]. A cry of anguish, the only one [[Freud]] hears: Help me not become wolf (or the opposite, Help me not fail in this becoming.)
[[belief]]
[[ATP p31/32-1]]
It is not a question of [[representation]]; don't think for a minute that it has to do with believing oneself a wolf, [[representing]] onself as a [[wolf]]. The wolf, wolves, are [[intensity]]s, [[speed]]s, [[temperature]]s, [[nondecomposable]] [[variable]] [[distance]]s. A [[swarm]]ing, a wolfing.
[[ATP p32-1]]
The jaw is nots a [[wolf]] jaw, its not that simple; jaw and wolf form a [[multiplicity]] that is transformed into eye and wolf, anus and wolf, as a [[function]] of other distances, at other [[speed]]s, with other multiplicities, between [[threshold]]s. [[line of flight]] or of [[deterritorialize]]ation, [[becoming-wolf]], [[becoming-inhuman]], deterritorialized intensities: that is what multiplicity is. To become wolf or become hole is to deterritorialize oneself following distinct but entangled [[lines]]. A hole is no more [[negative]] than a wolf... A wolf is a gole, they are both [[particle]]s of the [[unconscious]], nothing but particles, [[production]] of particles, particulate paths, as elements of [[molecular]] multiplicities, It is not eve sufficient to say that [[intense]] and moving particles pass through holes: a hole is just as much a particle as what passes through it.
[[schizo flow]]
[[ATP p32-2]]
Let us return to the story of [[multiplicity]] for the creation of this [[substantive]] marks a very important moment. It was created precisely to escape the abstract opposition between the multiple and the one, to... succeed in conceiving the multiple in the pure [[state]]... and distinguish between types of multiplicity.
[[ATP p32-3]]
Pages list other authors uses of the term [[multiplicity]]
[[ATP p32-4]]
a [[territory]] has two notable [[effect]]s: a reorganization of [[function]]s and a regrouping of [[force]]s. On the one hand, when functional activities are territorialized they necessarily change pace... This is like a nascent [[theme]] of specialization or professionalism... professions assume that various activities are performed in the same [[milieu]] and that the same activity has no other agents in the same territory..: my stretch of sidewalk... territorialization of functions is the [[condition]] for their [[emergence]] as "occupations" or "trades"... the emergence of the work-function.
[[ATP p319/320-1]]
the other [[effect]]... the [[territory]] groups all the forces of the different [[milieu]]s together in a single [[sheaf]] constituted by the [[force]]s of the earth. The [[attribution]] of all the diffuse forces to the [[earth]] as receptacle or base takes place only at the deepest levels of each territory... in "[[intension]]", in the [[dimension]] of depth... there is always a place, a tree or grove, in the territory where all the forces come together in a hand-to-hand combat of energies. The earth is this close embrace. This [[intense]] center is simultaneously inside the territory, and outside several territories that [[converge]] on it at the end of an immense pilgrimage...
It is this [[factor]] that at the same time organizes the [[function]]s of the milieu into occupations and binds the forces of chaos in [[rite]]s and [[religion]]s, which are forces of the earth. Territorializing [[mark]]s simultaneously develop into [[motif]]s and [[counterpoint]]s, and re[[organ]]ize functions and regroup forces. But by [[virtue]] of this, the territory already unleashes something that will surpass it.
[[ATP p320/321-1]]
The essential thing is the [[disjunction]] noticeable between the [[code]] and the [[territory]]. The territory arises in a free margin of the code, one that is not indeterminate but rather determined differently. Each [[milieu]] has its own code, and there is perpetual [[transcoding]] between milieus; the territory seems to [[form]] at the level of a certain [[decode]]ing... the most obvious [[distinction]] between territorial [[animal]]s and nonterritorial animals is that the former are much less coded than the latter.
territories arise at a certain margin in the code that offers "a free [[matter]] for [[variation]]."
[[ATP p321/322-1]]
It is less a [[question]] of [[evolution]] than of [[passage]], [[bridge]]s and [[tunnel]]s. We saw that [[milieu]]s continually pass into one another. Now we see that the milieus pass into the [[territory]].
[[ATP p322-1]]
The [[territory]] itself is a place of [[passage]]. The territory is the first [[assemblage]]; the assemblage is fundamentally territorial...already in the [[process]] of passing into something else, into other assemblages...
In a general sense, we call a [[refrain]] any [[aggregate]] of [[matter of expression]]s that [[draw]]s a territory and develops into territorial [[motif]]s and [[landscape]]s (there are optical, gestural, motor, etc., refrains)
[[ATP p322-2]]
All kinds of [[heterogenous]] [[element]]s show up in the [[intra-assemblage]]: not only the [[assemblage]] [[mark]]s that group [[material]]s, colors, odors, sounds, [[posture]]s, but also the various elements of given assembled [[behavior]]s that enter into a [[motif]]. For example, a display behavior is composed with a dance, a clicking of the beak, an exhibition of colors, a [[posture]] with neck outstretched, cries, smoothing of the feathers, a bow, a [[refrain]]... The first [[question]] to be asked is what holds these territorializing marks, [[territorial]] [[motif]]s, and territorialized [[function]]s together in the same intra-assemblage. This is a question of [[consistency]]: the "holding together" of heterogenous elements. At first, they constitute no more than a [[fuzzy]] [[set]], a [[discrete]] set that later takes on consistency.
[[ATP p323-1]]
But another [[question]] seems to interrupt or cut across the first one. For in many cases, a territorialized, [[assembled]] [[function]] acquires enough independence to constitute a new [[assemblage]], one that is more or less [[deterritorialize]]d, en route to deterritorialization. There is no need to effectively leave the [[territory]] to go this route but what just a minute ago was a constituted function in the [[territorial]] [[assemblage]] has [[become]] the constituting element of another assemblage, the [[element]] of [[passage]] to another assemblage.
As in courtly love, a color ceases to be territorial and enters a "[[courtship]]" assemblage. The territorial assemblage opens onto the courtship assemblage, which is a [[social]] assemblage that has gained [[autonomy]]. That is what happens when it is specifically the sexual partner or th members of a [[group]] that are recognized, rather than the [[territory]]; the partner is then said to be "an animal with a home value."...
[[ATP p323-2]]
The opening of the [[assemblage]] onto other assemblages can be analyzed in detail, and varies widely.
Discussion of the [[grass]] [[courtship]] assemblage...
A [[matter of expression]] is never a vestige or a symbol. The grass stem is a [[deterritorialize]]d [[component]], or one en route to deterritorialization... It is an [[operator]], a [[vector]]. It is an assemblage [[converter]].The steam... is a [[component of passage]] from one assemblage to another... The important thing for now is to note this formation of new assemblages within the [[territorial]] assemblage, and this movement from the [[intra-assemblage]] to [[inter-assemblage]]s by means of components of [[passage]] and [[relay]]... It is as though [[force]]s of deterritorialization [[affect]]ed the [[territory]] itself, causing us to pass from the territorial assemblage to other types of assemblages ([[courtship]] or [[sexuality]] assemblages, [[group]] or [[social]] assemblages). The [[grass]] steam and the [[refrain]] are two [[agent]]s of these [[force]]s, two agents of deterritorialization.
[[ATP p324-1]]
The [[territorial]] [[assemblage]] continually passes into other assemblages. Likewise, the [[infra-assemblage]] is inseparable from the [[intra-assemblage]], as is the [[intra-assemblage]] from [[inter-assemblage]]s; yet these [[passage]]s are not necessary but rather take place "on a case-by-case basis."
then a little [[schizo-flow]]
[[ATP p324/325-1]]
prior tiddlers forms of deterritorialization are compared to a new, open to the [[cosmos]] [[deterritorialize]]ation, an [[absolute]] one.
Leaving aside these two grandiose cases where deterritorialization [[become]]s abslute while losing nothing of its [[precision]] (because it weds cosmic [[variable]]s), we must remark that the [[territory]] is constantly traversed by movements of deterritorialization that are [[relative]] and my even occur in place, by which one passes from the [[intra-assemblage]] to [[inter-assemblage]]s, without, however, leaving the territory or issuing from the [[assemblage]]s in order to wed the Cosmos. A territory is always en route to an at least [[potential]] deterritorialization, even though the new assemblage may operate a [[reterritorialize]]aion (something that "has-the-value-of" home).
We saw that the territory constituted itself on a [[margin]] of ce[[code]]ing [[affect]]ing the milieu; we now see that there is a margin of deterritorialization affecting the territory itself. There is a [[series]] of unclaspings. The territory is inseparable from certain [[coefficient]]s of deterritorialization (which can be evaluated in each case) that place the relations of each territorialized [[function]] to the territory in [[variation]], as well as the relations of the territory to each deterritorialized assemblage. It is the same "thing" that appears first as a territorialized [[function]] taken up in the [[intra-assemblage]], and again as a deterritorialized or [[autonomous]] assemblage, as an [[inter-assemblage]]
[[ATP p325-1]]
[[Tinbergen]]
The [[problem]] of [[consistency]] concerns the manner in which the [[component]]s of a [[territorial]] [[assemblage]] hold together. But it also concerns the manner in which different assemblages hold together, with [[component of passage]]s and [[relay]]...
it may be the most [[deterritorialize]]d component, the deterritorializing [[vector]], in other words, the [[refrain]], that assures the [[consistency]] of the territory.
The idea of [[arborescent]] vs [[rhizome]] appears again now
[[ATP p326-1]]
[the prior paragraph] represents a whole behavioral-biological "[[machinic]]s," a whole [[molecular]] engineering that should help increase our understanding of the nature of problems of [[consistency]]. The philosopher Eugene [[Dupreel]] proposed a [[theory]] of [[consolidation]]; he demonstrated that [[life]] went not from a [[center]] to an [[exterior]]ity but from an exterior to an [[interior]], or rather from a [[discrete]] or [[fuzzy]] [[aggregate]] to its consolidation. This implies three things.
First, that there is no beginning from which a [[linear]] sequence would derive, but rather [[densification]]s, [[intensification]]s, [[reinforcement]]s, [[injection]]s, [[showering]]s, like so many [[intercalary]] [[event]]s. ("there is [[growth]] only by [[intercalation]]").
Second, and this is not a contradiction, there must be an [[arrangement]] of [[interval]]s, a [[distribution]] of [[inequality]]s, such that it is sometimes necessary to make a [[hole]] in order to [[consolidate]].
Third, there is a [[superposition]] of disparate [[rhythm]]s, an [[articulation]] from within of an [[interrhythmicity]], with no imposition of [[meter]] or [[cadence]]. Consolidation is not [[content]] to come after; it is [[creative]]. The fact is that the beginning is always in-[[between]], [[intermezzo]].
[[consistency]] is the same as [[consolidation]], it is the [[act]] that produces consolidated [[aggregate]]s, of succession as well as of coexistence, by means of the three [[factor]]s just mentioned: [[intercalate]]d [[element]]s, [[interval]]s and [[articulation]]s of [[superposition]]s.
[[ATP p327-1]]
It is no longer a [[question]] of imposing a [[form]] upon a [[matter]] but of elaborating an increasingly rich and consistent [[material]], the better to tap increasingly [[intense]] [[force]]s. What makes a material increasingly rich is the same as what holds heterogeneities together without their ceasing to be [[heterogenous]]... [good section]...Is not [[consolidation]] the terrestrial name for [[consistency]]? The territorial [[assemblage]] is a [[milieu]] consolidation, a [[space-time]] consolidation, of [[coexistence]] and [[succession]]. And the [[refrain]] operates with these three [[factor]]s.
[[ATP p328/329-1]]
We... distinguish between [[arborescent]] [[multiplicity]]s and [[rhizome]]atic multiplicities. Between [[macro]]- and [[micro]]multiplicities. On the one hand, multiplicities that are [[extensive]], divisible, and [[molar]].
On the other hand, [[libido]]nal, [[unconscious]], [[molecular]], [[intensive]] multiplicities composed of [[particle]]s that do not [[divide]] without changing nature, and [[distance]]s that do not [[vary]] without entering into another multiplicity and that constantly construct and dismantle themselves in the course of their communications, as they cross over into each other at, beyond, or before a certain [[threshold]]. The [[element]]s of the second kind of multiplicity are particles; their relations are [[distance]]s, their movements are Brownian; their quantities are intensities, [[difference]]s in intensity.
[[ATP p32/33-1]]
[[Elias Cannetti]] distinguishes between two types of [[multiplicity]] that are sometimes opposed but at other times [[interpenetrate]]: [[mass]] ("[[crowd"]]) multiplicities and [[pack]] multiplicities. Among the characteristics of a mass, in Canetti's sense, we should note large quantity, divisibility and equality of the members, concentration, sociability of the [[aggregate]] as a whole, one-way hierarchy, organization of [[territory]] or terriitorialization, and [[emission]] of [[sign]]s.
Similar to the description in [[ATP p16-3]]
Among the characteristics of a pack are small or restricted [[number]]s, dispersion, [[nondecomposable]] [[variable]] [[distance]]s, qualitative [[metamorphosis|metamorphoses]], inequalities as [[remainder]]s or crossings, impossibility of a fixed totalization or hierarchization, a Brownian variability in directions, [[line]]s of [[deterritorialize]]ation, and [[projection]] of [[particle]]s.
[[molar]]
[[molecular]]
[[ATP p33-1]]
There is no more equality or any less hierarchy in [[pack]]s than in [[mass]]es, but they are of a different kind. The leader of the pack or [[band]] plays move by move, must wager everything every had, whereas the group or mass leader consolidates or capitalizes on past gains.... Canetti notes that in a pack each member is alone even in the company of others (wolves on the hun) each takes care of himself at the same time as participating in the [[band]]... In the changing [[constellation]] he may be in the center, and then, immediately afterwards at the edge again; at the edge, and then back in the center.
[[dice throw]]
[[ATP p33-2]]
Even on its own turf, the [[pack]], is constituted by a [[line of flight]] or [[deterritorialize]]ation that is a component part of it, and to which it accredites a high [[positive]] [[value]], wheareas [[mass]]es only integrate the [[line]]s in order to [[segment]] them.
[[ATP p33-3]]
[[consistency]] necessarily occurs [[between]] heterogeneities, not because it is the birth of a differentiation, but because heterogeneities that were formerly [[content]] to coexist or succeed one another [[become]] bound up with one another through the "[[consolidation]]" of their coexistence and succession. The [[interval]]s, [[intercalation]]s, and [[articulation]]s constitutive of [[motif]]s and [[counterpoint]]s in the [[order]] of an [[expressive]] [[quality]] also envelop other qualities of a different order, or qualities of the same order but of another sex or even another species of [[animal]]. A color will "answer to" a sound. If a [[quality]] has motifs and counterpoints, if there are [[rhythm]]ic [[character]]s and [[melodic]] [[landscape]]s in a given order, then there is the constitution of a veritable [[machinic opera]] tying together orders, species, and heterogenous qualities.
What we term [[machinic]] is precisely this synthesis of heterogeneities as such. Inasmuch as these heterogeneities are [[matter of expression]]s, we say that their synthesis itself, their [[consistency]] or [[capture]], forms a properly [[machinic]] "[[statement]]" or "[[enunciation]]". The varying relations into which a color, sound, gesture, movement, or position enters in the same species, and in different species, form so many machinic enunciations.
[[ATP p329-1]]
discussion of the [[stagemaker]], then "This produces a [[consolidation]] that "consists" in species-specific sounds, sounds of other species, leaf hue, throat color the stagemaker's [[machinic statement]] or [[assemblage]] of [[enunciation]].
[[machinic]] [[collective assemblage]]
[[ATP p330/331-1]]
It is less a [[question]] of imitating a [[song]] than of occupying corresponding frequencies; for there may be an advantage in being able to restrict oneself to a very determinate [[zone]] in some circumstances, and in others to widen or deepen the zone to assure oneself [[counterpoint]]s and to invent chords that would otherwise remain [[diffuse]], as, for [[example]], in the rainforest, which is precisely where the greatest [[number]] of "imitative" [[bird]]s are found
[[imitate]]
[[ATP p331-1]]
...the [[melodic]] or [[rhythm]]ic [[theme]]s precede their performance and [[recording]]. What is [[primary]] is the [[consistency]] of the [[refrain]], a little tune, either in the [[form]] of a [[vague]] [[motif]] with no need to be inscribed locally in a [[center]], or no need to be [[pulse]]d or stimulated. There is perhaps more to be learned from a [[music]]al and poetic notion.. than from the slightly vapid and foggy categories of the [[innate]] and the [[acquired]].
[[ATP p331-2]]
In short, the notion of [[behavior]] proves inadequate, too linear, in comparison with that of the [[assemblage]]...
[[ATP p332-1]]
The [[territorial]] [[assemblage]] is inseparable from [[line]]s or [[coefficient]]s of [[deterritorialize]]ation, [[passage]]s, and [[relay]]s toward other assemblages.... In any [[event]], it is necessary to consider the [[effect]]s of deterritorialization or de[[natal]]ization in a given species at a given moment, Whenever a territorial assemblage is taken up by a movement that deterritorializes it (whether under so-called natural or artificial conditions) we say that a [[machine]] is released. That in fact is the distinction we would like to propose between machine and assemblage: a machine is like a set of cutting edges that insert themselves into the assemblage undergoing deterritorialization, and [[draw]] [[variation]]s and [[mutation]]s of it.
For there are no mechanical effects, effects are always [[machinic]], in other words, depend on a machine that is plugged into an assemblage and has been freed through deterritorialization. What we call [[machinic statement]]s are machine effects that define [[consistency]] or enter [[matter of expression]]s. Effects of this kind can be very diverse but are never symbolic or imaginary; they always have a real value of passage or relay.
As a general rule, a machine plugs into the territorial assemblage of a species and opens it to other assemblages... [like the [[grass]] stem refrain]
[[ATP p333-1]]
[[black hole]] discussion
Thus the black hole is a [[machine]] [[effect]] in [[assemblage]]s and has a complex relation to other effects... Machines are always [[singular]] keys that open or close an assemblage, a [[territory]]. Moreover, finding the machine in operation in the [[emergence]] of [[matter of expression]]s, in other words, in the constitution of the assemblage and in the [[vector]]s of [[deterritorialize]]ation that ply it from the start.
[[ATP p333-2]]
Thus [[consistency]] of [[matter of expression]]s relates, on the one hand, to their aptitude to [[form]] [[melodic]] and [[rhythmic]] [[theme]]s and, on the other hand, tot he [[power]] of the [[natal]]. Finally, there is one other aspect: their very special [[relation]] to the [[molecular]] (the [[machine]] starts us down this road). The very words "matters of expression," imply that [[expression]] has a primary relation to [[matter]]. As matters of expression take on consistency they constitute [[semiotic]] [[system]]s, but the [[semiotic]] [[component]]s are inseparable from [[material]] components and are in exceptionally close contact with molecular levels. The whole question is thus whether or not the [[molar]]-molecular relation assumes a new [[figure]] here...
[[ATP p334-1]]
The [[intra]][[molecular]] [[force]]s that give an [[aggregate]] its [[molar]] [[form]] can be of two types:... covalent, arborescent, mechanical, linear, localizable relations, or they are indirect, non covalent, [[machinic]] and nonmechanical, [[superlinear]], nonlocalizable bonds operating by stereospecific [[discernment]] or [[discrimination]].
[[discernibilization]]
[[ATP p334-2]]
the point is that [[consistency]], far from being restricted to complex [[life]] [[form]]s, fully pertains to even the most elementary [[atom]]s and [[particle]]s. There is a [[code]]d [[system]] of [[stratification]] whenever, horizontally, there are linear causalities between [[element]]s; and, vertically, hierarchies of order between groupings; and holding it all together in depth, a succession of framing forms, each of which informs a [[substance]] and in turn serves as a substance for another form. These causalities, hierarchies, and framings constitute a [[stratum]], as well as the [[passage]] from one stratum tp another, and the [[strata]]fied combinations of the [[molecular]] and [[molar]].
On the other hand, we may speak of [[aggregate]]s of [[consistency]] when instead of a regulated succession of forms-substances we are presented with [[consolidation]]s of very heterogenous elements, orders that have been short-circuited or even [[reverse causality]]s, and [[capture]]s between [[material]]s and [[force]]s of a different nature: as if a [[machinic phylum]], a destratifying [[transversal]]ity, moved through elements, orders, forms and substances, the molar and molecular, freeing a matter and tapping forces.
[[ATP p335-1]]
Discussion of [[life]]
What holds all the [[component]]s together are [[transversal]]s, and the transversal itself is only a [[component]] that has taken upon itself the specialized [[vector]] of [[deterritorialize]]ation. An [[example]] is the [[refrain]]: it is more deterritorialized than the [[grass]] [[stem]], but this does not preclude its being "determined," in other words, connected to biochemical and [[molecular]] components. The [[assemblage]] holds by its most deterritorialized component, but deterritorialization is not the same as indeterminate... A component of this kind entering an assemblage may be among the most highly determined, even mechanized of components, but it will still bring "[[play]]" to what it [[compose]]s; it fosters the entry of new [[dimension]]s of the [[milieu]]s bu releasing [[process]]es of [[discernibility]], specialization, contraction, and acceleration that open new possibilities, that open the territorial assemblage onto [[inter-assemblage]]s....
[[discernibilization]]
[[ATP p335-2]]
[[assemblage]]s are defined simultaneously by [[matter of expression]]s that take on [[consistency]] independent of the [[form]]-[[substance]] relation; [[reverse causality]]s or "advanced" determinisms, de[[code]]d innate [[function]]s related to [[act]]s of [[discernment]] or election rather than to linked reactions; and [[molecular]] combinations that proceed by noncovalent bonding rather than by linear relations-in short, a new "pace" produced by the imbrication of the [[semiotic]] and the [[material]]... we may oppose the [[consistency]] of assemblages to the [[strata]]fication of [[milieu]]s...
[[discernibilization]]
[[ATP p336-1]]
We recognize this as the [[schizo]] position, being on the [[periphery]], holding on by a hand or a foot... As opposed to the [[paranoid]] position of the [[mass]] subject, with all the [[identification]]s of the [[individual]] with the [[group]], the group with the leader, and the [[leader]] with the group; be securely embedded in the mass, get close to the center, never be at the edge except in the line of duty..
[[ATP p33-4]]
There is no question however, of establishing a dualist opposition between the two types of [[multiplicity]]s, [[molecular]] [[machine]]s and [[molar]] machines: that would be no better than the dualism between the One and the multiple.
There are only multiplicities of multiplicities forming a single [[assemblage]], operating in the same assemblage. [[pack]]s in [[mass]]es and masses in packs.
[[ATP 34-2]]
"What do you not have to do to produce a new sound? [[becoming-animal]], [[becoming-molecular]], [[becoming--inhuman]], each involves a '[[molar]] extension, a human hyperconcentration, or prepares the way for them.
In [[Kafka]], it is impossible to separate the erection of a great [[paranoid]] bureaucratic [[machine]] from the installation of little [[schizo]] machines of [[becoming-dog]] or [[becoming--beetle]].
In the case of the [[Wolf-Man]] it is impossible to separate the [[becoming-wolf]] of his dream from the military and religious organization of his obsessions. A military man does a [[wolf]]l a military man does a dog. There are not two multiplicities or two machines; one and the same [[machinic assemblage]] [[produce]]s and distributes the whole, in other words, the set of [[statement]]s corresponding to the "[[complex]]"
Psychoanalysis hears none of this, it flattens everything, [[mass]]es and [[packs]], molecular and molar machines, multiplicities of every variety.
last line ended on p35
[[treatment]]: the look at both Kafka and the wolfman in this light is excellent [[psychology]]
[[ATP p34-3]]
the term [[dividual]] first appears here
[[nonsubject]]ified groupings of [[power]] or nonsubjectified [[group]] [[individuation]]s... a [[crowd]] must be fully [[individuate]]d, but by group individuations that are not reducible to the individuality of the [[subject]]s that compose the [[crowd]]. The [[people]] must by individualized, not according to the [[person]]s within it, but according to the [[affect]]s it experiences, simultaneously or successively.
[[asubjective]]
[[ATP p336/337-1]]
[[dividual]] mentioned again...
...a direct relation, [[material]]-[[force]]s. A material is a [[molecular]]ized [[matter]], which must accordingly "harness" forces; these forces are necessarily forces of the [[cosmos]]. There is no longer a [[matter]] that finds its corresponding principle of intelligibility in [[form]]. It is now a question of elaborating a material charged with harnessing forces of a different order; the visual material must capture nonvisible forces. Render visible, [[Klee]] said...
[[ATP p341-1]]
[If one goes too far in the modernist aesthetic, one doesn't render the nonvisible visible, but makes a mess, heads towards a [[resonance]] chamber that becomes a [[black hole]] ] One makes an [[aggregate]] fuzzy, instead of defining the [[fuzzy aggregate]] by the [[operation]]s of [[consistency]] or [[consolidation]] pertaining to it. For this is the essential thing: a fuzzy [[aggregate]], a [[synthesis]] of disparate [[element]]s, is defined only b a [[degree]] of consistency that makes it possible to distinguish the disparate [[element]]s constituting that aggregate ([[discernibility]])... [they elaborate]... The sobriety of the [[assemblage]] is what makes for the richness of the [[machine]]s effects. People often have too much of a [[tendency]] to [[reterritorial]]ize on the child, the mad, noise. If this is done, one fuzzifies instead of making the fuzzy aggregate consist, or harnessing cosmic forces in the deterritorialized material.
[[discernibilization]]
[[ATP p342-1]]
[[material]] thus has three principal characteristics: it is a [[molecular]]ized [[matter]]: it has a relation to [[force]]s to be harnessed; and it is defined by the [[operation]]s of [[consistency]] applied to it.
[[ATP p344-1]]
[[becoming]] is like the [[machine]]: present in a different way in every [[assemblage]], passing from one to the other, opening one onto the other, outside any fixed order or determined sequence
[[ATP p345-1]]
[[music]] is plugged into a [[machinic phylum]] infinitely more powerful than that of [[painting]]: a [[line]] of selective pressure.
[[ATP p347-1]]
It does not suffice to attribute [[molar]] [[multiplicity]]s and [[mass]] [[machine]]s to the [[preconscious]], reserving another kind of machine or multiplicity for the [[unconscious]]. For it is the [[assemblage]] of both of these that is the province of the unconscious, the way in which the former condition the latter, and the latter prepare the way for the former, or elude them or return to them: the [[libido]] suffuses everything.
[[ATP 35-1]]
Keep everything in sight at the same time--that a [[social machine]] or an organized [[mass]] has a [[molecular]] [[unconscious]] that [[mark]]s not only it's tendency to decompose but also the current components of its very operation and organization; that any [[individual]] acught up in a mass has his/her own [[pack]] unconscious, which does not necessarily resemble the packs of the mass to which that individual belongs; that an individual or mass will live out in its unconscious the masses and packs of another mass or individual.
This is followed by a [[schizo flow]] on [[love]]
[[ATP p35-2]]
the [[State]] is not defined by the existence of [[chief]]s; it is defined by the perpetuation or conservation of [[organ]]s of [[power]]. The concern of the State is to conserve.
[[ATP p348-1]]
the [[war machine]] is directed against the [[State]], either against [[potential]] state whose formation it wards off in advance, or against actual State's whose destruction it purposes... the [[organization]] of the war machine is directed against the State-[[form]], [[actual]] or [[virtual]].
[[ATP p357-1]]
it should not be thought that it suffices to distinguish the [[mass]]es and [[exterior]] groups someone belongs to or participates in from the [[internal]] [[aggregate]]s that person [[envelop]]s in himself. The distinction to be made is not at all between exterior and interior, which are always relative, changing, and reversible, but between different types of [[multiplicity]]s that coexist, [[interpenerate]], and change places-[[machine]]s, cogs, motors and [[element]]s that are set in motion at a given moment, forming an [[assemblage]] productive of [[statement]]s
this paragraph then discusses the [[writing-machine]] of [[Kafka]] in the tenor/method/manner of the above discussion
[[collective assemblage]] of enunciation
[[ATP p35-3]]
There are no [[individual]] [[statement]]s, only statement-producing [[machinic assemblage]]s. We say that the [[assemblage]] is fundamentally [[libidinal]] and [[unconscious]]. It is the unconscious in person. For the moment, we will note that assemblages have elements (or [[multiplicity]]s) of several kinds: [[human]] [[social]], and [[technical]] [[machine]]s, organized [[molar]] machines; [[molecular]] machines with their [[particles]] of [[becoming-inhuman]]. [[Oedipal]] and counter Oedipal, [[variable]] in aspect and functioning.
[[ATP p36-1]]
We can no longer even speak of distinct [[machine]]s, only of types of [[interpenetrating]] [[multiplicity]]s that at any given moment form a single [[machinic assemblage]], the [[faceless]] figure of the [[libido]]. Each of use is caught up in an [[assemblage]] of this kind, and we [[reproduce]] its [[statement]]s when we think we are speaking in our own [[name]]. And what bizarre statements they are; truly, the talk of lunatics.
Goes on to discuss [[Kafka]] and the [[Wolf-Man]] as they relate to these 2 tiddlers
[[ATP p36-2]]
[[Sate]]s and [[war machine]]s are always both existing, [[interior]] and an [[exterior]]; the [[Urstaat]] appears first here.
bottom of page in p361, "it is in terms not of independence, but of coexistence and competition in a perpetual [[field]] of interaction, that we must conceive of exteriority and interiority, war machines of [[metamorphosis]] and state [[apparatus]]es of [[identity]], [[band]]s and kingdoms, mega[[machine]]s and empires. The same field circumscribes its interiority in States, but describes its exteriority in what escapes States or stands against States.
[[ATP p359-1]]
There is indeed such a thing as measured, [[cadence]]d [[rhythm]], relating to the coursing of a river between its banks or to the [[form]] of a [[striate]]d [[space]]; but there is also a [[rhythm]] without measure, which relates to the upswell of a [[flow]], in other words, to the manner in which a [[fluid]] occupies a [[smooth]] [[space]].
[[ATP p360-1]]
the [[collective]] [[body]]s of the [[State]] vs those of the [[war machine]]
"A body is not reducible to an [[organism]] any more than the espirit de corps is reducible to the [[soul]] of an organism"
"what we wish to say, rather, is that collective bodies always have [[fringe]]s or [[minority]]s that reconstitute equivalents of the war machine-in sometimes quite unforeseen [[form]]s-in specific [[assemblage]]s such as building bridges...
[[ATP p364-1]]
[[Husserl]] speaks of a [[protogeometry]] that addresses [[vague]], in other words [[vagabound]] or [[nomad]]ic, morphological [[essence]]s... is is neither inexact like sensible things nor exact like ideal essences, but [[anexact]] yet rigorous... The [[circle]] is an [[organ]]ic, idea, fixed essence, but roundness is a vague and [[fluent]] essence, distinct from both the circle and things that are round (a vase, a wheel, the sun)... At the [[limit]], all hat counts is the constantly shifting [[borderline]]
[[ATP p366-1]]
[[vague essence]]s are nothing other than [[haecceity]]s
[[ATP p367-1]]
There are no [[individual]] [[statement]]s, there never are. Every statement is the [[product]] of a [[machinic assemblage]], in other words, of [[collective]] agents of enunciation (take "collective agents" to mean not people or societies but [[multiplicity]]s). The [[proper name]] does not designate an individual: it is on the contrary when the individual opens up to the multiplicities pervading him or her, at the outcome of the most severe operation of depersonalization, that he acquires his true proper name. The proper name is the [[instantaneous]] apprehension of a multiplicity. (this wording was used in the quote of [[ATP p28-1]], and [[ATP p26/7-1]].)
Goes on to discuss [[Proust]]
[[collective assemblage]]
[[ATP p36-3]]
[[smooth]] [[space]] is a [[field]] without [[conduit]]s or [[channel]]s. A field, a heterogenous smooth space, is wedded to a very particular type of [[multiplicity]]: nonmetric, [[acenter]]ed, rhizomatic multiplicities that occupy space without "[[count]]ing" it and can "be explored only by legwork." They do not meet the visual condition of being observable from a [[point]] in space external to them; an [[example]] of this is the [[system]] of sounds, or even of colors, as opposed to Euclidean space.
[[ATP p369-1]]
There are [[itinerant]] [[ambulant]] [[science]]s that consist in [[follow]]ing a [[flow]] in a [[vector]]ial [[field]] across which [[singularity]]s are scattered like so man "accidents" (problems).
[[ATP p371-1]]
what [[become]]s apparent in the rivalry between the two [[model]]s [nomad vs royal science] is that the [[ambulant]] or [[nomad]] [[science]]s do not destine science to take on an [[autonomous]] [[power]], or even to have an autonomous development. They do not have the means for that because the subordinate all their [[operation]]s to the sensible [[condition]]s of [[intuition]] and [[construction]]-[[follow]]ing the [[flow]] of [[matter]], [[draw]]ing and [[link]]ing up [[smooth]] [[space]]. Everything is situated in an objective zone of fluctuation that is [[coextensive]] with [[reality]] itself. However refined or rigorous, "approximate knowledge" is still dependent upon sensitive and sensible evaluations that pose more [[problem]]s thant hey solve: problematics is still its only [[mode]].
In contrast, what is proper to [[royal]] science, to its theorematic or [[axiom]]atic power, is to [[isolate]] all operations from the conditions of intuition, making them true [[intrinsic]] [[concept]]s, or "[[category]]s." This is precisely why [[deterritorialize]]ation, in this kind of science, implies a [[reterritorialize]]ation in the conceptual [[apparatus]].
[[ATP p372-1]]
We are not just criticizing [[psychoanalysis]] for having selected [[Oedipal]] [[statement]]s exclusively. For such statements could serve as correctional [[index]]es, as in a calculation of errors." The critique they has is that Freud made "patients believe that they would [[produce]] [[individual]], personal statements, and would finally speak in their own name. The trap was set from the start; never will the [[Wolf-Man]] speak...
He could have spoken in his own [[name]] only if the [[machinic assemblage]] that was [[producing]] particular statements in him had been brought to light. ([[treatment]].)
but in psychoanalysis there is no hope for that, "at the very moment the subject is persuaded that he or she will be [[utter]]ing the most [[individual]] of statements, they are deprived of all basis for enunciation. Silence people, prevent them from speaking, and above all, when they do speak, pretend they haven't said a thing..." Or better yet, steal their statements from them; It's Daddy! Mommy! The Phallus!
Somewhere in here lies a bold [[critique of mass media]]
[[mass media]]
[[ATP p37-1]]
The very general primacy of the [[collective assemblage]] and [[machinic assemblage]] over the [[technic]]al [[element]] applies generally... Weapons and [[tool]]s are consequences, nothing but consequences.
[[ATP p371-1]]
[[assemblage]]s are [[passion]]al, they are [[composition]]s of [[desire]]. Desire has nothing to do with a natural or spontaneous determination; there is no desire but assembled, assembling. The rationality, the efficiency of an assemblage does not exist without the passions the assemblage brings into [[play]], without the desires that constitute it as much as it constitutes them...
If it is true that all assemblages are assemblages of desire, the [[question]] is whether the assemblage of war and work, considered in themselves, do not fundamentally mobilize passions of different orders. Passions are [[effectuation]]s of desire that differ according to the assemblage: it is not the same justice or the same cruelty, the same pity, etc.
The work [[regime]] is inseparable from an[[organization]] and development of [[form]], corresponding to which is the formation of the [[subject]]. This is the passional regime of feeling as the "form of the worker." Feeling implies an evaluation of [[matter]] and its resistances, a direction (a meaning), to form and its [[development]]s, an economy of [[force]] and its displacements, an entire [[gravity]].
But the regime of the [[war machine]] is on the contrary that of [[affect]]s, which relate only to the moving [[body]] in itself, to [[speed]]s and compositions of speed among elements. Affect is always the active discharge of [[emotion]], the counterattack, whereas feeling is an always displaced, retarded, resisting emotion.
[[ATP p398-1]]
"One side of a [[machinic assemblage]] faces the [[strata]]. Which doubtless makes it a kind of organism, or signifying totality, or determination attributable to a subject; it also has a side facing a [[body without organs]], which is continually dismantling the organism, causing [[asignifying]] [[particles]] or pure [[intensity]]s to pass or circulate, and attributing to itself subjects that it leaves with nothing more than a name as the trace of an [[intensity]].
[[ATP p4-2]]
4
"What is the [[body without organs]] of a book? There are several, depending on the nature of the [[lines]] considered, their particular grade or density, and the possibility of their converging on a "[[plane of consistency]]" assuring their selection."
[[ATP p4-3]]
"... a book has no object. As an [[assemblage]] a book has only itself, in connection with other [[assemblage]]s and in relation to other [[body without organs]]... We will ask what it functions with, in connections with what other things it does or does not transmit [[intensity]]s, in which other [[multiplicity]]s its own are inserted and metamorphosed, and with what (bodies) [[body without organs]] it makes its own converge."
[[ATP p4-4]]
4
"A book itself is a little machine; what is the relation (also measurable) of this [[literary machine]] to a [[war machine]], love machine, revolutionary machine, etc. --and an [[abstract machine]] that sweeps them all along?"
[[ATP p4-5]]
"(What if one [entered into a] [[becoming-animal]] or [[becoming-plant]] through literature, which certainly does not mean literarily? is it not through the [[voice]] that ones [enters a ] [[becoming-animal]]?)
[[ATP p5-1]]
the [[earth]]--the [[deterritorialize]]d ,the glacial, the giant molecule--is a [[body without organs]]. This body without organs is permeated by [[unformed]] [[unstable]] [[matter]]s, by [[flow]]s in all directions, by free [[intensity]]s or [[nomad]]ic [[singularity]]s, by mad or transitory [[particle]]s.
[[ATP p38-1]]
[[strata]] consist in giving [[form]] to [[matter]]s, or imprisoning [[intensity]]s, or locking [[singularity]]s into [[system]]s of [[resonance]] and [[redundancy]], of producing upon the body of the earth (meaning a [[body without organs]]) [[molecule]]s large and small and organizing them into [[molar]] [[aggregate]]s. Strata are acts of [[capture]], they are like "[[black hole]]s" or occlusions striving to seize whatever comes within their reach. They operate by [[code]]ing and by [[territoriality]].
[[ATP p40-1]]
The [[strata]] are the [[judgement of god]]; stratification in general is the entire [[system]] of the Judgement of God, (but the earth, or the [[body without organs]], constantly eludes this judgement, flees and becomes destratified, de[[code]]d, [[deterritorialize]]d
[[ATP p40-2]]
A [[surface of stratification]] is a more compact [[plane of consistency]] lying between two layers. The layers are the [[strata]], They come in at least pairs, one serving as the [[substratum]] for the other. The [[surface of stratification]] is a [[machinic assemblage]] distinct from the strata. The [[assemblage]] is between two layers, between two strata; on one side it faces the strata (in this direction the assemblage is an [[interstratum]]) but the other side faces something else, the [[body without organs]] or the plane of consistency. In effect, the body without organs is itself the plane of consistency, which becomes compact or [[thicken]]s at the level of the strata.
[[ATP p40-3]]
Not only do [[strata]] come in pairs, but in a different way each [[stratum]] is double (it itself has several layers.) Each stratum exhibits [[phenomena]] constitutive of [[double articulation]]. Articulate twice, B-A, BA.
The first articulation chooses or deducts, from unstable [[particle]]-[[flow]]s, [[metastable]] [[molecular]] or [[quasi]]-molecular units ([[substance]]s) upon which it imposes a statistical order of connections and successions ([[form]]s)
The second articulation establishes compact, stable [[structure]]s (forms) and constructs the [[molar]] compounds in which these structures are simultaneously actualized (substances).
Following this is the sedimentation, [[flysch]] example.
[[first articulation]]; choosing or deducting
[[second articulation]]; establishing
[[ATP p40-4]]
Learning to undo things, and to undo oneself, is proper to the [[war machine]]: the "not-doing" of the warrior, the undoing of the [[subject]]. A movement of de[[code]]ing runs through the war machine, while [[overcode]]ing solders the tool to an [[organization]] of [[work]] and of the [[State]] (the [[tool]] is never unlearned: one can only compensate for its [[absence]].)
[[ATP p399/400-1]]
[it is not the [[question]] here] to seek an origin in each case. It is a question of assigning [[assemblage]]s, in other words, of determining [[differential]] [[trait]]s according to which an [[element]] formally belongs to one assemblage rather than to another.
[[ATP p400-1]]
[[draw]] the [[line]], or what amounts to the same thing, cross the line, pass over the line, for the line is only drawn by surpassing the line of separation
[[ATP p402-1]]
bottom of prior page speaks of spatiotemporal [[haecceity]]s and [[trait of expression]]s
We may speak of a [[machinic phylum]], or technological lineage, wherever we find a [[constellation]] of [[singularity]]s, prolongable by certain operations, which [[converge]], and make the [[operation]]s converge, upon one or several assignable [[trait of expression]]s. If the singularities or operations [[diverge]], in different [[material]]s or the same material, we must distinguish two different phyla.
Each phylum has its own singularities and operations, its own [[quality]]s and [[trait]]s, which determine the relation of [[desire]] to the [[technic]]al [[element]] (the [[affect]]s the saber "has" are not the same as those of the sword).
[[ATP p403-1]]
[[assemblage]]s are related to [[technic]]s and their [[evolution]] on the prior page.
the selective action of the assemblages on the [[phylum]], and the [[evolution]]ary reaction of the phylum as the subterranean [[thread]] that passes from one assemblage to another, or quits an assemblage, [[draws]] it forward and opens it up...
There is indeed a [[machinic phylum]] in [[variation]] that creates the [[technic]]al assemblages, whereas the assemblages invent the various [[phyla]]. A technological [[lineage]] changes significantly according to whether on draws it upon the phylum, or inscribes it in the assemblages; but the two are inseparable.
[[tendency]]
[[Stiegler]]
[[ATP p406-1]]
On the one hand, to the [[form]]ed or formable [[matter]] we must add an entire energetic [[material]]ity in movement, carrying [[singularity]]s or [[haecceity]]s that are already like implicit forms that are topological, rather than geometrical, and that combine with [[process]]es of deformation: for example, the [[variable]] undulations and torsions of the [[fiber]]s guiding the operation of splitting wood. On the other hand, to the essential properties of the matter deriving from the formal essence we must add [[variable]] [[intensive]] [[affect]]s, now resulting from the [[operation]], now on the contrary making it possible: for example, wood that is more or less porous, resistant, elastic... (408)
"the existence, between form and matter, of a [[zone]] of [[medium] and intermediary [[dimension]]," of energetic, [[molecular]] dimension-a [[space]] unto itself that deploys its [[material]]ity through matter, a [[number]] unto itself that propels its [[trait]]s through [[form]].
[[ATP p407-1]]
the [[machinic phylum]] is [[material]]ity, natural or artificial, and both simultaneously; it is matter in [[movement]], in [[flux]], in [[variation]], matter as conveyor of [[singularity]]s and [[trait of expression]]s. This has obvious consequences: namely, this matter-flow can only be [[follow]]ed.
[[ATP p408/409-1]]
The distinction between [[articulation]]s is not between [[substance]]s and [[form]]s. Substances are nothing other than formed matters. Forms imply a [[code]], modes of coding and decoding. Substances as formed matters refer to [[territoriality]]s and degrees of [[territorialize]]ation and [[deterritorialize]]ation. But each articulation has both a code and a territoriality; there for each possesses both form and substance.
For now, all we can say is that each articulation has a corresponding type of [[segmentarity]] or [[multiplicity]]: one type is more [[supple]], more [[molecular]], and merely ordered; the other is more [[rigid]], [[molar]], and organized.
[[ATP p40/41-1]]
Although the [[first articulation]] is not lacking in systematic interactions, it is in the [[second articulation]] in particular that [[phenomena]] constituting an [[overcode]]ing are [[produced]] phenomena of centering, unification, totalization, integration, hierarchization, and finalization. Both [[articulation]]s establish [[binary]] relations between their respective [[segment]]s. But between the segments of one articulation and the segments of the other there are [[biunivocal]] relationships obeying far more complex laws.
It cannot be taken for granted that the distinction between the two articulations is always that of the [[molecular]] and the [[molar]]
[[ATP p41-1]]
relationship or [[articulation]] to the [[organism]] [[organ]] and how the formation of [[molecular]] and [[molar]] [[form]]s and [[substance]]s brings about an [[organic]] [[strata]]
[[ATP p41-2]]
The [[example]]s we took from [[Husserl]] and [[Simondon]] concerned wood and clay as well as metals. Besides, are there not [[flow]]s of grass, water, herds, which form so many [[phyla]] or [[matter]]s in [[movement]]?
[[ATP p409-1]]
"The cellular chemistry presiding over the constitution of proteins also operates by double [[articulation]]. This double articulation is internal to the [[molecular]]. it is the articulation between small and large molecules, a [[segmentarity]] by successive modifications and polymerization.
"First the elements taken from the [[medium]] are combined through a series of transformations... All this activity involves hundreds of chemical reactions. But ultimately, it produces a limited number of small compounds, a few dozen at most. In the second stage of cellular chemistry, the small molecules are linked end-to-end that forms the characteristic [[chains]] of [[macro]]molecules... the two stages of cellular chemistry, therefore, differ in their function, products, and nature. The first carves out chemical [[motif]]s; the second assembles them. The first forms compounds that exist only temporarily, for they are intermediaries on the path of biosynthesis. the second constructs stable products. The first operates by a series of different reactions; the second by repeating the same reaction."
"There is, moreover, a third level, upon which cellular chemistry itself depends, It is the [[genetic]] [[code]], which is in turn inseparable from a double segmentarity or a double articulation, this time between two types of independent molecules: the sequence of protein units and the sequence of nucleic units, with [[binary]] relations between units of the same type and [[biunivocal]] relationships between units of different types. Thus there are always two types of articulations, two [[segmentarity]]s, two kinds of [[multiplicity]], each of which brings into play forms and substances. But the [[distribution]] of these two articulations is not constant, even within the same stratum
First articulation, second articulation, then an [[assemblage]]? Instead I now think its articulation, articulation, then a double articulation [[question]]
An excellent [[example]] of this whole [[plateau]]
[[communication]] between [[heterogenous]] [[interpenetrating]] parts
[[interpenetration]]
[[ATP p41/2-1]]
Hjelmslev made language his concern, precisely in order to measure it's "[[stratification]]."
[[Hjelmslev]] was able to weave a [[net]] out of the notions of [[matter]], [[content]] and [[expression]], [[form]] and [[substance]]. These were the [[strata]] said he.
This had the advantage of breaking with the form content duality.
[[ATP p42-1]]
Hjelmslev used the term [[matter]] for the [[plane of consistency]] or [[body without organs]], in other words, the [[unformed]], unorganized, [[nonstratified]], or [[destratified]] [[body]] and all its [[flow]]s: subatomic and submolecular [[particle]]s, pure [[intensity]]s, prevital and prephysical free [[singularity]]s.
He used the term [[content]] for formed matters [substances are formed matters], which would now have to be considered from two points of view: [[substance]], insofar as these matters are "chosen," and [[form]], insofar as they are chosen in a certain order ([[substance of content]] and [[form of content]].)
He used the term [[expression]] for functional [[structure]]s, which would also have to be considered from two points of view: the organization of their own specific form, and substances insofar as they form compounds ([[form of expression]] and [[content of expression]].)
[[ATP p43-1]]
Content and expression both impact and [[form]] each other. The necessity of a given [[form of expression]] ensures that only certain [[form of content]]s are able to be formed, or rather, able to be expressed [is that verb right?] by the given content. Invariance of expression can force a boundary onto the content able to be linked to that expression [By an [[assemblage]]?]. And [[content]] and expression are two halves of the same thing, in [[reciprocal presupposition]]
[[strata]]
"A [[stratum]] always has a dimension of the [[expressible]] or of [[expression]] serving as the basis for a relative [[invariance]]; for example, nucleic sequences are inseparable from a relatively invariant expression by means of which they determine the compounds, [[organ]]s and functions of the [[organism]]. To [[express]] is always to [[sing]] the glories of God.
Every stratum is a [[judgement of god]]; not only do plants and animals, orchids and wasps, sing or express themselves; but so do rocks and even rivers, every [[stratified]] thing on [[earth]].
[[double articulation]]
[[content]]
[[expression]]
[[ATP p43-2]]
The [[first articulation]] concerns [[content]], the [[second articulation]] [[expression]]. The distinction is not between [[form]]s and [[substance]]s but between content and expression, expression having just as much substance as content and content just as much form as expression. The [[double articulation]] sometimes coincides with the [[molecular]] and the [[molar]], and sometimes not; this is because content and expression are sometimes divided along different [[line]]s. [Not always divided on the molecular/molar line]
There is never correspondence or conformity between content and expression, only [[isomorphism]] with [[reciprocal presupposition]]. The distinction between content and expression is always [[real]], in various ways, but it cannot be said that the terms preexist their double articulation. It is the double articulation that distributes them according to the line it draws in each [[stratum]]; it is what constitutes their [[real distinction]].
(On the other hand, there is no real distinction between [[form]] and [[substance]], only a mental or [[modal]] distinction: since substances are nothing other than formed matters, formless substances are inconceivable, although it is possible in certain instances to conceive of [[substanceless forms]].) Relationship of this to [[Spinoza]]? [[Hjelmslev]] + [[Spinoza]] = [[question]]
[[ATP p43/44-1]]
Even though there is a [[real distinction]] between them, [[content]] and [[expression]] are [[relative]] terms ([[first articulation]] and [[second articulation]] should also be understood in an entirely relative fashion). Even though it is capable of [[invariance]], expression is just as much a [[variable]] as content. Content and expression are two variables of a [[function]] of [[stratification]]. They not only vary from one stratum to another, but [[intermingle]], and within the same [[stratum]] multiply and divide ad infinitum.
[[ATP p44-1]]
Since every [[articulation]] is double, there is not an articulation of [[content]] and an articulation of [[expression]]-the articulation of content is double in its own right, and constitutes a [[relative]] expression within content; the articulation of expression is also double and constitutes a relative content within expression. For this reason, there exists [[intermediate]] [[state]]s between content and expression, expression and content: the [[level]]s, equilibrium, and [[exchange]]s through which a [[stratified]] [[system]] passes. [[strata]]
In short, we find [[form]]s and [[substance]]s of content that play the role of expression in relation to other forms and substances [of content] and conversely for expression [forms and substances playing the role of content within expression]. These new [[distinction]]s do not, therefore, coincide with the distinction between forms and substances within each articulation; instead, they show that each articulation is already, or still, double.
[[example]] This can be seen on the [[organic stratum]]: proteins of content have two forms, one of which (the infolded fiber) plays the role of functional expression in relation to the other. The same goes for the nucleic acids of expression: double articulations cause certain [[formal]] and substantial elements to play the role of content in relation to others; not only does the half of the chain that is reproduced become ([[becoming]]) a content, but the reconstituted chain itself becomes a content in relation to the "messenger"
My thought: [content + expression of statement one] exp of state one becomes content of statement two, [content of statement two + expression of statement two]. [[Logic of Sense]]. I don't think this is accurate to this tiddler. Wish they had an example of a different [[stratum]] instead of just the organic stratum.
Language is both a body of [[language]] a la content or an [[attribute]] a la expression.
Or, in another light, the expression of [[assemblage]] A can generate a [[difference]] in assemblage b which takes this expression-generated-difference as content. Is that an example of what's in this tiddler? Seems instead to demonstrate a certain [[transcode]]ing or [[overcode]]ing within a grouping of assemblages. Doesn't seem to be a manner in which an expression also has its form of content within it.
[[recursion]]
[[ATP p44-2]]
There are double pincers everywhere on a [[stratum]] ([[strata]]); everywhere and in all directions there are [[double bind]]s and lobsters, a [[multiplicity]] of [[double articulation]]s [[affect]]ing both [[expression]] and [[content]]. Through all of this, [[Hjelmslev]]s warning should not be forgotten:
"The terms expression [[plane]] and content plane... are chosen in conformity with established notions and are quite arbitrary. Their functional definition provides no justification for calling one, and not the other, of these entities expression, or one, and not the other, content. They are defined only by their mutual solidarity, and neither of them can be identified otherwise. They are defined only oppositively and relatively, as mutually opposed [[functive]]s of one and the same [[function]]." We must combine all the resources of [[real distinction]], [[reciprocal presupposition]], and [[general relativism]].
[[ATP p44/43-1]]
The [[question]] we must ask is what on a given stratum [[varies]] and what does not. What accounts for the unity and [[diversity]] of a stratum? Matter, the pure [[matter]] of the [[plane of consistency]] (or inconsistency) lies outside the [[strata]]. The [[molecular]] materials borrowed from the [[substrata]] may be the same throughout a [[stratum]], but that does not mean that the [[molecules]] will be the same.
The substantial [[element]]s may be the same throughout the stratum without the substances being the same. The formal relations or bonds may be the same without the [[form]]s being the same.
In biochemistry, there is a [[unity of composition]] of the [[organic stratum]] defined at the level of materials and energy, substantial elements or radicals, bonds and reactions. But there is a variety of different molecules, [[substance]]s and forms.
[[ATP p45-1]]
Geoffrey Saint-Hilaire said that [[matter]], considered from the standpoint of its greatest divisibility, consists in [[particle]]s of decreasing size, [[flow]]s or elastic [[fluid]]s that "deploy themselves" by radiating through space. [[combustion]] is the [[process]] of this escape or infinite division on the [[plane of consistency]]. [[electrification]] is the opposite process, constitutive of [[strata]]; it is the process whereby similar [[particle]]s group together to [[form]] [[atom]]s and [[molecule]]s, and the biggest molecules to form [[molar]] aggregates. the "attraction of like by like," as in a double pincer or [[double articulation]].
[[ATP p45-2]]
there is no vital [[matter]] specific to the [[organic stratum]], matter is the same on all [[strata]]. But the organic stratum does have a specific [[unity of composition]], a single [[abstract animal]], a single [[machine]] embedded in the [[stratum]], and presents everywhere the same [[molecular]] [[material]]s, the same [[element]]s or anatomical [[component]]s of [[organ]]s, the same [[formal]] connections. See [[ATP p45-2]]
Organic [[form]]s are nevertheless different from one another, as are [[organ]]s, compound [[substance]]s, and molecules....
The important thing is the principle of the simultaneous unity and variety of the stratum: [[isomorphism]] of forms but no correspondence; [[identity]] of elements or components but no identity of compound [[substance]]s.
[[ATP p45-3]]
During the [[schizo flow]] of the puppet theater, Geoffrey says: I said that there was [[isomorphism]] but not [[correspondence]]. You have to bring "[[degree]]s of development or perfection" into the picture. It is not everywhere on a given [[stratum]] that materials reach the degree at which they [[form]] a given [[aggregate]]. Anatomical [[element]]s may be arrested or [[inhibit]]ed in certain places by [[molecular]] clashes, the influence of the [[milieu]], or pressure from neighbors to such an extent that they compose different [[organ]]s.
The same [[formal]] relations or connections are [[effectuate]]d in entirely different [[forms]] and arrangements. It is still the same [[abstract animal]] that is realized throughout the stratum only to varying degrees, in varying [[mode]]s. Each time, it is as perfect as its surroundings or milieu allow it to be.
[[strata]]
[[ATP p45/46-1]]
Earlier, we invoked two factors, and their uncertain relations, in order to explain the diversity within a [[stratum]]-[[degree]]s of development or perfection and types of [[form]]s. They now undergo a profound transformation. There is a double tendency for types of [[form]]s to be understood increasingly in terms of populations, [[pack]]s and colonies, collectivities or [[multiplicity]]s; and degrees of development in terms of [[speed]]s, [[rate]]s, [[coefficient]]s, and [[differential]] relations. A double deepening. This, Darwinism's fundamental contribution, implies a new [[coupling]] of individuals and [[milieu]]s on the stratum.
[[strata]]
[[ATP p46-1]]
First, if we assume the presence of an elementary or even [[molecular]] population in a given [[milieu]], the [[form]]s do not preexist the population, they are more like statistical results. The more a [[population]] assumes [[divergent]] forms, the more its [[multiplicity]] divides into multiplicities of different nature, the more its [[element]]s form distinct compounds or [[matter]]s-the more efficiently it distributes itself in the milieu, or divides up the milieu.
This seems to me to be tha [[first articulation]], the articulation of [[content]], [[substance]]->[[form]] then form->substance
Goes on to give an example of both [[phylogenesis]] and [[embryogenesis]] and their relations.
[[ATP p31-1]]
[[ATP p46/47-1]]
Second, simultaneously and under the same conditions, the [[degree]]s are not degrees of preexistent development or perfection but are instead [[global]] and relative equilibriums: they enter into [[play]] as a [[function]] of the advantage they give particular elements, then [the advantage they give] a particular [[multiplicity]] in the [[milieu]], and as a function of a particular [[variation]] in the milieu. Degrees are no longer measured in terms of increasing perfection or a [[differentiation]] and increase in the [[complexity]] of [[part]]s, but in terms of [[differential]] relations and [[coefficient]]s such as selective pressure, catalytic action, speed of propagation, rate of growth, evolution, mutation, etc.
Relative progress, than, can occur by [[formal]] and quantitative simplification rather than by complication, by a loss of [[component]]s, and syntheses rather than by acquisition (it is a question of [[speed]], and speed is a differential). It is through populations that one is formed, assumes forms, and through loss that one progresses and picks up speed.
Darwin's two fundamental contributions move in the direction of a science of [[multiplicity]]s, the substitution of populations for types, and the substitution of [[rate]]s or differential relations for degrees.
These are [[nomad]]ic contributions with [[shifting]] boundaries determined by populations or variations of multiplicities, and with differential coefficients or variations of relations.
[[ATP p46/47-1]]
[[ATP p48-1]]
To being with, a stratum does indeed have a [[unity of composition]]. which is what allows it to be called a stratum: [[molecular]] materials, substantial [[element]]s, and [[formal]] relations or [[trait]]s. Materials are not the same as the unformed [[matter]] of the [[plane of consistency]]; they are already stratified, can come from [[substrata]].
But of course substrata should not be thought of only as substrata: in particular, their organization is no less complex than, nor is it inferior to, that of the [[strata]]; we should be on our guard against any kind of ridiculous cosmic evolutionism. The materials furnished by a substratum are no doubt simpler than the compounds of a stratum, but their level of organization in the substratum is no lower than that of the stratum itself. The difference between materials and substantial elements is one of organization; there is a change in organization, not an augmentation.
[[ATP p48-2]]
[[strata]]
The [[material]]s furnished by the [[substratum]] constitute an [[exterior milieu]] for the [[element]]s and compounds of the stratum under consideration, but they are not exterior to the stratum. The elements and compounds constitute an interior of the stratum; both belong to the stratum, the latter because they are materials that have been furnished to the stratum and selected for it, the former because they are formed from the materials.
Once again, this [[interior]] and [[exterior]] are relative; they exist only through their [[exchange]]s and therefore only by virtue of the stratum responsible for the relation [[between]] them.
For example, on a crystalline stratum, the amorphous [[milieu]], or [[medium]], is exterior to the seed before the [[crystal]] has formed; the crystal forms by interiorizing and incorporating masses of amorphous material. Conversely, the interiority of the seed of the crystal must move out to the [[system]]'s exterior, where the amorphous medium can crystallize (the aptitude to switch over to the other form of organization). To the point that the seed itself comes from the outside.
In short, both exterior and interior are interior to the stratum.
[[ATP p49-1]]
In short, both [[exterior]] and [[interior]] are interior to the stratum: the materials furnished by the [[substrata]] are an [[exterior milieu]] constituting the famous prebiotic soup, and catalysts play the role of seed in the formation of interior substantial [[element]]s or even compounds. There elements and compounds both appropriate [[material]]s and exteriorize themselves through replication, even in the conditions of the primordial soup itself. Once again, interior, and exterior [[exchange]] places, and both are interior to the [[organic stratum]].
The [[limit]] [[between]] them is the [[membrane]] that regulates the exchanges and transformation in organization (in other words, the distributions interior to the stratum) and that defines all of teh stratum's [[formal relations]] or [[trait]]s even though the situation and role of the limit vary wildly depending on the stratum, for example, the limit of the [[crystal]] as compared to the cellular membrane.)
[[strata]]
[[ATP p49-2]]
"The law of the [classical thought on the] book is the law of reflection, the [[One]] that [is] [[becoming]] two" [[Art]] in the classical sense as a reflection of nature, this is how the [[one]] becomes two.
"...this system of thought has never reach an understanding of [[multiplicity]]."
[[ATP p7-1]]
[[strata]]
We may therefore use the term [[central layer]], or [[central ring]], for the following [[aggregate]] comprising the u[[unity of composition]] of a stratum: [[exterior]] [[molecular]] materials, [[interior]] substantial elements, and the [[limit]] or [[membrane]] conveying the formal relations. There is a single [[abstract machine]] that is [[envelope]]d by the stratum and constitutes its unity. That is the [[Ecumenon]], as opposed to the [[Planomenon]] of the [[plane of consistency]].
[[interior milieu]]
[[exterior milieu]]
[[membrane milieu]]
[[ATP p49/50-1]]
It would be a mistake to believe that it is possible to isolate this unitary, ventral layer of the stratum, or to grasp it in itself, be regression. In the first place, a stratum necessarily goes from layer to later, and from the very beginning. It already has several layers. It goes from a center to a periphery, at the same time as the periphery reacts back upon the center to form a new center in relation to a new periphery. [[flow]]s constantly [[radiate]] outward, then turn back.
[[ATP p50-1]]
In addition to this new or second-degree relativity of interior and exterior, there is a whole history on the level of the [[membrane]] or [[limit]].... The [[milieu]] assumes a third figure here: it is no longer an [[interior milieu]] or an [[exterior milieu]], even a relative one, nor an [[intermediary milieu]], but instead an [[annex milieu]] or an [[associated milieu]]. They imply sources of energy different from [[alimentary]] materials. The difference between being alive and having a life.
The development of the [[associated milieu]] culminates in the animal worlds described by von uexkull, with all their active, perceptive, and energetic characteristics.
[[example]] of the [[tick]]s.
[[ATP p51/52-1]]
There is an outgrowth and multiplication of [[intermediate]] states, and then this [[process]] is one of the local conditions of the central ring (different concentrations, [[variation]]s that are tolerated below a certain [[threshold]] of [[identity]]. These intermediate states present new figures of [[milieu]]s or [[material]]s, as well as of [[element]]s and [[compound]]s. They are [[intermediary]]s between the [[exterior milieu]] and the [[interior]] elements, substantial elements and their compounds, compounds and [[substance]]s, and between the different [[form]]ed substances (substances of [[content]] and substances of [[expression]]).
[[strata]]
[[central layer]]
[[central ring]]
[[ATP p50-2]]
We will use the term [[epistrata]] for these intermediaries and [[superpositions]], these outgrowths, these levels. Returning to our two examples, on the [[crystalline stratum]] there are many intermediaries between the dis[[continuous]] [[state]]s of [[metastable]]ity constituting so many hierarchical [[degree]]s. Neither is the [[organic stratum]] separable from the so-called [[interior]] milieus that are interior [[element]]s in relation to [[exterior]] materials but also exterior elements in relation to [[interior]] [[substance]]s. There internal organic [[milieu]]s are known to regulate the degree of [[complexity]] or [[differentiation]] of the parts of an [[organism]]. A stratum, considered from the standpoint of its [[unity of composition]], therefore only exists in its substantial [[epistrata]], which shatter its [[continuity]], fragment its [[central ring]], and break it down into [[gradation]]s.
The central ring does not exist independently of a [[periphery]] that forms a new center, reacts back upon the first center, and in turn gives form discontinuous epistrata.
[[ATP p51-2]]
The [[associated milieus]] are closely related to organic [[form]]s. This organic form is not a [[structure]] but a structuration. The form can only develop through [[intermediary milieu]]s that regulate the [[speed]]s and rates of its [[substance]]s; and it can experience itself only in an [[exterior milieu]] that measures the comparitive advantages of the associated milies and the differential relations of the intermediary milieus
NOTE IM SKIPPING TO THE ALLOPLASTIC STRATUM THIS ONE SUCKS
[[ATP p51/52-1]]
[[perception]] and [[action]]s in an [[associated milieu]]/[[annex milieu]], even those on a [[molecular]] level, [[construct]] or [[produce]] [[territorial]] [[signs]] ([[index]]es). This is especially true of an [[animal]] world, which is constituted, [[mark]]ed off by [[sign]]s that divide it into zones (of shelter, of hunting, neutrality, etc.), mobilize special [[organ]]s, and correspond to [[fragment]]s of [[code]]; this is so even at the [[margin]] of [[decode]]ing inherent in the code..."
[[ATP p52-1]]
...the [[machine]] where there were not yet [[face]]s and [[landscape]], but [[territorial]]ized [[rhizome]]s within territorialized [[assemblage]]s, had only a local ambition and left a great [[degree]] of liberty to the other [[component]]s of [[expression]]. With the [[abstract machine of faciality]], all components of expression become [[unify]]ed and depend upon a single [[express]]ive [[substance]]. So no matter what comes up can be seized and divided by this machine of [[faciality]]. Nothing can escape the [[universal]] power of the normal [[face]].
...If i pronounce [[judgement]] on the [[face]] of someone who belongs to my [[tribe]], its [[possible]] since they are part of my [[frame]]ing of the possible. But a primitive tribesman would never say that the [[other]]'s is a "foreign" face. Its not even a face for him. It might be an [[animal]], an [[intensity]], or something else. Its not his business. The principle of faciality on the other hand always gives one the possibility of dividing any [[enunciation]] or anther that presents itself. It's like the TV [[news]]. No matter what happens, even if its the most extraordinary [[event]], the presenters will always be able to say, and will always say "but none of this surprises us..."
[[ATP6 p1-1]]
First mention of the [[overcode]]ing as a property of [[language]] [[ATP p54/55-1]]
We have a new organization of [[content]] and [[expression]], each with it's own [[form]]s and [[substance]]s: [[technological]] content and [[semiotic]] or [[symbolic]] expression.
Content should be understood not simply as the [[hand]] and [[tool]]s but as a [[technical]] [[social machine]]. that preexists them and constitutes states of force or many [[formation of power]]s.
Expression should be understood not simply as the [[face]] and [[language]], or individual languages, but as a [[semiotic]] [[collective]] [[machine]] that preexists them and constitutes a [[regime of signs]].
[[ATP p62-1]]
A [[formation of power]] is much more than a [[tool]]; a [[regime of signs]] is much more than a [[language]]. Rather, they act as determining and selective agents, as much in the constitution of languages and tools as in their usages and mutual or respective [[diffusion]]s and [[communication]]s.
[[ATP p63-1]]
The [[alloplastic stratum]] sees the emergence of [[machine]]s that are full a part of that [[stratum]] but at the same time rear up and stretch their [[pincer]]s out in all directions at all the other [[strata]]. Is this not like an [[intermediate]] [[state]] between the two states of the [[abstract machine]]?-the state in which it remains [[envelope]]d in a corresponding stratum ([[Ecumenon]]), and the state in which it develops in its own right on the [[destratified]] [[plane of consistency]] ([[Planomenon]]).
The abstract machine begins to unfold, to stand to full height, [[producing]] an [[illusion]] exceeding all strata, even though the machine still belongs to a determinate stratum. This is the illusion constitutive of man, who does man think he is? Those illusions derives from the [[overcode]]ing [[immanent]] to [[language]] itself.
[[strata]]
[[ATP p63-2]]
But what is not illusory are the new distributions between [[content]] and [[expression]]: technological content characterized by the [[hand]]-[[tool]] relations and, at a deeper level, tied to a [[semiotic]] [[machine]] and these [[regime of signs]]. On both sides, the [[epistrata]] and [[parastrata]], the superposed degrees and abutting [[form]]s, attain more than ever before the status of [[autonomous]] [[strata]] in their own right. In cases where we can discern two different regimes of signs or two different [[formation of power]]s, we shall say that they are in fact two different [[strata]] in human populations.
[[treatment]]: determining different strata of human populations. This idea comes into play in the [[generative]] and [[transformative]] in the regime of signs plateau.
[[ATP p63-3]]
The distinction between [[content]] and [[expression]] here is the distinction of "things and words".
Discussion of the [[double articulation]] on the [[alloplastic stratum]]
[[strata]]
[[ATP p63-4]]
We may summarily distinguish three kinds of [[sign]]s: [[index]]es ([[territorial sign]]s). [[symbol]]s, ([[deterritorialized sign]]s), and [[icon]]s ([[sign of reterritorialize]]ation). ([[ATP p54/55-1]])
Not all [[strata]] have signs, no despotism of the signifier; look back a few tiddlers, there is a discussion of the upright posture of the [[abstract machine]], it is only there that it can learn to [[write]], "in other words to treat language and extract a regime of signs from it"
"the question here is not whether there are signs on every stratum, but whether all signs are [[signifier]]s, whether all signs are endowed with [[signifiance]], whether the [[semiotic]] of signs is necessarily linked to a [[semiology]] of the signifier."
"...thanks to [[signifiance]], language can claim to be in direct contact with all the [[strata]] without having to go through the supposed signs on each one..."
[[ATP p64-1]]
There is only one thing that can be said about the [[signifier]]: it is [[redundancy]], it is redundant.
in contrast, "forms of [[content]] and [[form]]s of [[expression]] are highly [[relative]], always in a state of [[reciprocal presupposition]]. The relations between their respective [[segment]]s are [[biunivocal]], [[exterior]], and "deformed." There is never conformity between the two, or from one to the other. There is always a real independence and a [[real distinction]]; even to fit the [[form]]s together, and to determine the relations between them requires a specific, [[variable]] [[assemblage]].
None of this applies to the [[signifier]]-[[signified]] relation...
Overall, these characteristics stand in [[radical]] opposition to the scenario of the signifier. A [[form of content]] is not a signified, any more than a [[form of expression]] is a signifier. This is true for all the [[strata]], including those on which [[language]] plays a role.
[[ATP p65-1]]
[[signifier]] enthusiasts take an oversimplified situation as their [[implicit]] model: word and thing. From the word they extract the signifier, and from the thing a signified in conformity with the word, and therefore [[subjugate]]d to the signifier. They operate in a [[sphere]] [[interior]] to and [[homogenous]] with [[language]].
Let us follow [[Foucault]] in his exemplary analysis, which, though it seems not to be, is eminently concerned with [[linguistic]]s. Take a thing like the [[prison]]: the prison is a [[form]], the "prison-form"; it is a [[form of content]] on a [[stratum]] and is related to other [[form]]s of [[content]] ([[school]], [[barracks]], [[hospital]], [[factory]]). This thing or form does not refer back to the word "prison" but to entirely different [[word]]s and [[concept]]s, such as "[[delinquent]]" and to "[[delinquency]]," which [[express]] a new way of [[classifying]], [[stratifying]], [[stating]], [[translating]], and even [[committing]] [[criminal]] [[act]]s.
"Delinquency" is the [[form of expression]] in [[reciprocal presupposition]] with the form of content "prison." Delinquency is in no way a signifier, even a juridical signifier, the signified of which would be the prison. That would [[flatten]] the entire analysis.
Moreover, the form of [[expression]] is reducible not to words but to a set of [[statement]]s arising in the social field considered as a stratum (that is what a [[regime of signs]] is.) The form of content is reducible not to a thing but to a [[complex]] state of things as a [[formation of power]] ([[architecture]], [[regimentation]], etc.).
We could say that there are two constantly [[intersect]]ing [[multiplicity]]s, "[[discursive]] multiplicities" of expression and "[[nondiscursive]] multiplicities" of content. It is even more complex than that because the prison as form of content has a relative expression all its own; there are all kinds of [[statement]]s specific that do not necessarily coincide with the statements of delinquency [these keep us inside the prison-form]. Conversely, delinquency as a form of expression has an autonomous content all its own, since delinquency expresses not only a new way of evaluating crimes, but of committing them [these keep us outside the prison form, in the delinquency form(is form the right word here?)].
Form of content, and form of expression, prison and delinquency; each has its own [[history]] [[microhistory]], [[segment]]s. At most, along with other contents and expressions, they imply a shared [[state]] of the [[abstract machine]] acting not at all as a signifier but as a kind of [[diagram]] (a single abstract machine for the prison and the school and the barracks and the hospital and the factory... [[connective synthesis]])
Fitting the two types of forms together, [[segment]]s of content and segments of expression, requires a whole [[double-pincer]]ed, or rather double-headed, concrete [[assemblage]] ([[machinic assemblage]] and [[collective assemblage]]) taking their [[real distinction]] into account. It requires a whole organization articulating formations of power and regimes of signs, and operating on the [[molecular]] level (societies characterized by what Foucault calls [[disciplinary power]]).
In short, we should never oppose words to things that supposedly correspond with them, nor signifiers to signifieds that are supposedly in conformity with them. What should be opposed are distinct formalizations, in a state of [[unstable]] [[equilibrium]] or reciprocal presupposition. "It is in vain that we say what we: what we see never reside in what we say."
As in school: there is not just one writing lesson, that of the great redundant [[redundancy]] Signifier for any and all signifieds. There are two distinct formalizations in reciprocal presupposition and constituting a double-pincer: the formalization of expression in the [[reading]] and [[writing]] lesson {with its own relative contents), and the formalization of content in the lesson of things (with their own relative expressions). We are never signifier or signified. We are [[stratified]].
[[example]]
[[big boy]]
[[ATP p66/67-1]]
(uncertain bit of bottom paragraph, then), "It is only under certain conditions that [[strata]] can be said to include [[sign]]s; signs cannot be equated with [[language]] in general but are defined by [[regime]]s of [[statement]]s that are so many real usages or [[function]]s of language. Then why retain the word sign for these regimes, which [[formalize]] an [[expression]] without [[designating]] or [[signifying]] the simultaneous [[content]]s which are formalized in a different way?
Signs are not sings of a thing; they are signs of [[deterritorialize]]ation and [[reterritorialize]]ation, they mark a certain [[threshold]] crossed in the course of these movements, and it is for that reason that the [[word]] should be retained (as we have seen, this applies even to an [[animal]] "signs"). (See [[ATP p65-1]]
[[ATP p66/67-1]]
Next, if we consider different [[regime of signs]] using this restrictive [[definition]], we see that they are not, or not necessarily, [[signifier]]s. Just as [[sign]]s [[designate]] only a certain [[formalization of expression]] in a [[determinate]] group of [[strata]], [[signifiance]] itself designates only one specific regime among a number of regimes existing in that particular [[formalization]]. Just as there are [[asemiotic]] [[expression]]s, or expressions without signs, there are [[asemiological]] regimes of signs, [[asignifying]] signs, both on the strata and on the [[plane of consistency]].
The most that can be said of [[signifiance]] is that it characterizes one regime, which is not even the most interesting or modern or contemporary one, but perhaps only more pernicious, cancerous, and [[despotic]] than the others, and more steeped in [[illusion]] than they.
[[ATP p67/68-1]]
[[content]] and [[expression]] are never reducible to signifier signified or base-superstructure.
This note is of the paragraph where they critique [[ideology]] and explain the irreducibility of their theory to ideology.
[[form of content]] and [[form of expression]] involve two [[parallel]] [[formalization]]s in [[reciprocal presupposition]]: it is obvious that their [[segments]] constantly [[intertwine]], [[embed]] themselves in one another; but this is accomplished by the [[abstract machine]] from which the two forms derive, and by [[machinic assemblage]]s that regulate their relations.
...the nature of [[language]], which exists in [[heterogenous]] [[regime of signs]], and rather than circulating [[information]] distributes contradictory [[order]]s ([[double bind]]). Ideology misconstrues the nature of regimes of signs, which express [[formation of power]]s or [[assemblage]]s ....
Ideology misconstrues the nature of organizations of power, which are in no way located within a [[State]] [[apparatus]], but rather are everywhere, effecting formalizations of content and expression, the segments of which they intertwine. Finally, it miscontrues the nature of content, which is in no way economic "in the last instance," since there are as many directly [[economic]] [[sign]]s or expressions as there are noneconomic contents. Nor can the status of [[social formations]] be analyzed by thtrowing some signifer into the base...
[[ATP p68-1]]
"Principles of connection and heterogeneity: any point of a [[rhizome]] can be connected to anything other, and must be" Possibly the simplest [[definition]].
[[ATP p7-2]]
"..not every [[trait]] in a [[rhizome]] is necessarily linked to a [[linguistic]] feature; [[semiotic]] chains of every nature are connected to very diverse modes of [[code]]ing (biological, political, economic, etc.,) that bring into play not only a different [[regime of signs]](p} but also states of things of differing status.
[[ATP p7-3]]
"[[collective assemblage]]s of enunciation function directly within [[machinic assemblage]]s; it is not possible to make a radical break between (a) [[regime of signs]] and their objects."
[[ATP p7-4]]
Grammaticality "is more fundamentally a marker of power than a syntactic marker: you will construct grammatically correct sentences... Our criticsm of these linguistic models is that they are not abstract models but, on the contrary, that they are not abstract enough, that they do not reach the [[abstract machine]] that connects a language to the [[semantic]] and [[pragmatic]] contents of statements, to [[collective assemblage]]s of enunciation, to a whole [[micropolitic]]s of the social field."
[[ATP p7-5]]
"A [[rhizome]] ceaselessly establishes connections between [[semiotic]] chains, organizations of power, and circumstances relative to the arts, sciences, and social struggles. A [[semiotic]] chain is like a tuber agglomerating very diverse acts, not only [[linguistic]], but also perceptive, mimetic, gestural and cognitive: there is not language in itself, nor are there any [[linguistic]] universals. There is no ideal speaker-listener, any more than there is a homogenous [[linguistic]] community. Language is, in Weinrech's words, "an essentially heterogenous reality.""
[[ATP p7-6]]
"Language stabilize around a parish, a bishphoric, a capital"
[[ATP p8-1]]
[[regime of signs]] [[pragmatic]]
Can't have a simple duality between the [[strata]] and the [[plane of consistency]].
The strata themselves are animated and defined by [[relative]] [[speed]]s of [deterritorialize]]ation; moreover, absolute deteritorialization is there from the beginning, and the strata are spin-offs, [[thickening]]s on a plane of consistency that is everywhere, always primary and always [[immanent]]. In addition, the place of consistency is occupied and drawn by the [[abstract machine]]; the abstract machine exists simultaneously developed on the destratified place it draws, and [[envelope]]d in each stratum whose [[unity of composition]] it defines, and even half-erected in certain strata whose form of prehension it defines.
That which races or dances upon the [[plane of consistency]] thus carries with it the aura of its stratum, an undulation, a memory or tension. The plane of consistency retains just enough of the strata to extract from them [[variable]]s that operate in the plane of consistency as its own functions.
[[ATP p68/69-1]]
The [[plane of consistency]], or [[Planomenon]] is neither pure chaos nor [[undifferentiated]] aggregate.
Beneath the [[form]]s and [[substance]]s of the [[strata]] (or the [[abstract machine]]) constructs [[continuum]]s of [[intensity]]; it creates continuity for intensities that it extracts from distinct forms and substances.
Beneath [[content]]s and [[expression]]s the plane of consistency or (abstract machine) [[emit]]s and [[combine]]s [[particles-signs]] that se the most [[asignifying]] of [[sign]]s to functioning in the more [[deterritorialize]]d of [[particle]]s.
Beneath relative movements the plane of consistency (or abstract machine) performs [[conjunction]]s of [[flow]]s of deterritorialization that transform the respective [[index]]es into absolute values.
The only intensities known to the strata are dis[[continuous]], bound up in forms and substances; the only particles are divided into particles of content and [[article]]s of expression. The only deterritorialized flows are disjointed and [[reterritorialize]]d. Continuum of intensities, combined [[emission]] of particles or signs-particles, conjunction of deterritorialized flows: these are the three [[factor]]s proper to the plane of consistency; they are brought about by the abstract machine and are constitutive of destratification.
Now there is no hint of in all this a chaotic white night or an undifferentiated black night. There are [[rule]]s, rules of "[[plan(n)ing]]," of [[diagramm]]ing, as we will see later on, elsewhere. The abstract machine is not [[random]]; the continuities, emissions and combinations, and conjunctions do not occur in just any fashion.
[[ATP p70-1]]
Not only does the [[abstract machine]] have different simultaneous states acconting for the [[complexity]] of what takes place on the [[plane of consistency]], but the abstract machine should not be confused with what we call the [[concrete]] [[machinic assemblage]]. The abstract machine sometimes develops upon the plane of consistency, whose [[continuum]]s, [[emission]]s, and [[conjugation]]s it constructs, and sometimes remains [[envelope]]d in a stratum whose [[unity of composition]] and for of attraction or prehension it defines.
The [[machinic assemblage]] is something entirely different from the [[abstract machine]], even though it is very closely connected with it. First, on a stratum, it performs the [[coadaptation]]s of [[content]] and [[expression]], ensures [[biunivocal]] relationships between [[segment]]s of content and segments of expression, and guides the division of the stratum into [[epistrata]] and [[parastrata]].
Next, [[between]] [[strata]], it ensures the relation to whatever serves as a [[substratum]] and brings about the corresponding changes in organization.
Finally, it is in touch with the plane of consistency because it necessarily [[effectuate]]s the abstract machine on a particular stratum, [[between]] strata and in the relation between strata and the plane. An [[assemblage]] is necessary for the [[articulation]]s of the [[organic stratum]] to come about. And an assemblage is necessary for [[organism]]s to be caught within and permeated by a social [[field]] that utilizes them...
Assemblages are necessary for [[formation of power]]s (states of force in text) and [[regime of signs]] to [[intertwine]] their relations. Assemblages are necessary in order for the [[unity of composition]] enveloped in a stratum, the relations between a given stratum and the others, and the relation between these strata and the plane of consistency to be [[organize]]d rather than [[random]].
In every respect, [[machinic assemblage]]s [[effectuate]] the [[abstract machine]] insofar as it is developed on the plane of consistency or enveloped in a stratum.
[[ATP p70-2]]
The most important [[problem]] of all: given a certain [[machinic assemblage]] what is its relation of effectuation with the [[abstract machine]]? How does it [[effectuate]] it, with what adequation? Classify [[assemblage]]s. What we call the [[mechanosphere]] is the set of all abstract machines and [[machinic assemblage]]s outside the [[strata]], on the strata, [[between]] strata.
The [[system]] of [[strata]] thus has nothing to do with [[signifier]] and [[signified]], [[base]] and [[superstructure]], [[mind]] and [[matter]]. All of these are ways of reducing the strata to a single stratum, or of closing the system in on itself by cutting it off from the [[plane of consistency]] as [[destratification]].
[[question]]
[[ATP p71-1]]
[[summary]] of this [[plateau]]
There was first a group of notions: The [[body without organs]], or the [[destratified]] [[plane of consistency]]; the [[matter]] of the plane, that which occurs on the body or the plane ([[singular]], nonsegmented [[multiplicity]]s composed of [[intensive]] [[continuum]]s, [[emission]] of [[particles-signs]], [[conjunction]]s of [[flow]]s); and the [[abstract machine]], or abstract [[machine]]s, insofar as they construct that body or draw that plane, or "[[diagram]]" what occurs ([[line of flight]], or absolute [[deterritorialize]]ations).
Then there was the [[system]] of [[strata]]. On the intensive continuum, the strata fashion [[form]]s and form matters into [[substance]]s. In combined emissions, they make the distinction between [[expression]]s and [[content]]s, unites of expression and [[unit]]s of content, for example, [[sign]]s and [[particle]]s. In conjunctions, they separate flows, assigning them relative movements and diverse [[territoriality]]s, [[relative]] [[deterritorialize]]ations, and [[complement]]ary [[reterritorialize]]ations. Thus the strata set up everywhere [[double articulation]]s animated by movements: forms and substance of content and forms and substances of expression constituting [[segment]]ary multiplicities with relations that are determinable in every case. Such are the strata.
Each stratum is a double articulation of content and expression, both of which are really [[distinct]] and in a [[state]] of [[reciprocal presupposition]]. Content and expression [[intermingle]], and it is two-headed [[machinic assemblage]]s [Strata-head, PoC-head?] that place their segments in relation. What varies from stratum to stratum is the nature of the [[real distinction]] between content and expression, the nature of substances as formed matters, and the nature of the relative movements. We may make a summary distinction between the three major kinds of real distinction: The real-formal distinction between orders of [[magnitude]], with the [[establishment]] of a [[resonance]] of expression ([[induction]]), the real-real distinction between different [[subject]]s, with the establishment of a [[linearity]] of expression ([[transduction]]); and the real-essential distinction between different [[attribute]]s or [[category]]s, with the establishment of a [[superlinearity]] of expression ([[translation]]).
Each stratum serves a a [[substratum]] for another stratum. Each stratum has a [[unity of composition]] defined by its [[milieu]], substantial [[element]]s, and formal traits ([[Ecumenon]]). But it divides into [[parastrata]] according to its irreducible forms and [[associated milieu]]s, and into [[epistrata]] according to its layers of formed substances and [[intermediary milieu]]s. Epistrata and parastrata must be thought of as strata. A [[machinic assemblage]] is an [[interstratum]] insofar as it regulates the relations [[between]] strata, as well as the relations between contents and expressions on each stratum, in conformity with the preceding divisions. A single [[assemblage]] can borrow from different [[strata]], and with a certain amount of apparent [[disorder]]; conversely a stratum or element of a stratum can join others in functioning in a different assemblage.
Finally, the machinic assemblage is a [[metastratum]] because is is also in touch with the plane of consistency and necessarily [[effectuate]]s the abstract machine. The abstract machine exists enveloped in each stratum, whose [[Ecumenon]] or [[unity of composition]] it defines, and developed on the plane of consistency, whose [[destratification]] it performs (the [[Planomenon]]). Thus when the assemblages fit together the [[variable]]s of a stratum as a [[function]] of its unity, they also bring about a specific [[effectuation]] of the abstract machine as it exists outside the strata. Machinic assemblages are simultaneously located at the intersection of content and expression on each stratum, and at the intersection of all the strata with the plane of consistency. They rotate in all directions, like beacons.
[[big boy]]
[[ATP p71/72-1]]
A teacher does not so much as instructs, "[[insign]]s", gives [[order]]s or [[command]]s. A teacher's commands are not external or additional to what he or she teachers us. They do not flow from primary [[signification]]s, or result from [[information]]: an order always and already concerns prior orders, which is why ordering is [[redundancy]]. The compulsory [[education]] [[machine]] does not communicate information; it imposes upon the child [[semiotic]] [[coordinate]]s possessing all of the [[dual]] foundations of [[grammar]] (masculine-feminine, singular-plural, noun-verb, subject of the statement, subject of enunciation, etc.).
[[binary]]
[[ATP p72/73-1]]
The elementary unit of [[language]]--the [[statement]]--is the [[order-word]]. Rather than [[common sense]], a faculty for the centralization of [[information]], we must define an [[abominable]] faculty consisting in [[emitting]], [[receiving]], and [[transmitting]] order-words. Language is not made to be believed but to be obeyed, and to compel obedience... We see this in [[police]] or government announcements, which often have little plausibility or truthfulness, but say very clearly what should be observed and retained. Let people say...:That is all language demands.
[[ATP p75/76-1]]
[[Spengler]] notes that the fundamental forms of [[speech]] are not the [[statement]] of a [[judgement]] or the [[expression]] of a feeling, but "the command, the expression of obedience, the assertion, the question, the affirmation or negation," very short phrases that [[command]] life and are inseparable from enterprises and large-scale projects: "Ready?" "Yes." "Go ahead." [[word]]s are not tools but we give children [[language]], pens, and notebooks as we give workers shovels and pickaxes.
[[ATP p76-1]]
A [[rule]] of [[grammar]] is a [[power marker]] before it is a syntactical marker. The [[order]] does not refer to prior [[signification]]s or to a prior organization of distinctive units. Quite the opposite. [[information]] is only the strict minimum necessary for the emission, transmission, and [[observation]] of orders as commands. One must be just informed enough not to confuse "Fire!" with "Fore!"... Language is not life it gives life orders. Life does not speak; it listens and waits. Every [[order-word]], even a fathers to his son, carries a little death sentence. A [[judgement]], as [[Kafka]] put it.
[[ATP p76-2]]
The hard part is to specify the status and scope of the [[order-word]]. It is not a question of the origin of [[language]], since the order-word is only a language-[[function]], a function coextensive with language. If language always seems to presuppose itself, if we cannot assign it a [[nonlinguistic]] [[point]] of [[departure]], it is because language does not operate between something seen (or felt) and something said, but always goes from saying to saying. We believe that narrative consists not in communicating what one has seen but in transmitting what one has heard, what someone else has said to you. Hearsay.
The 'first" language, or rather the first determination of language, is not the [[trope]] or [[metaphor]] but [[indirect discourse]]. Metaphors and metonymies are merely [[effect]]s; they are a part of language only when they [[presuppose]] indirect discourse. There are many [[passion]]s in a passion, all manner of voices in a [[voice]], murmurings, speaking in tongues: that is why all [[discourse]] is indirect, and the translative movement proper to language is that of indirect discourse
The bee [[example]], then "Language is not content to go from a first party to a second party, from one who has seen to one who has not, but necessarily goes from a second party to a third party, neither of whom has seen. It is in this sense that language is the [[transmission]] of the [[order-word]], not the [[communication]] of the [[sign]] as [[information]]. Language is a [[map]] ([[mapping]]?), not a [[tracing]]. But how can the order-word be a function coextensive with language when the [[order]], the [[command]], seems tied to a restricted type of [[explicit]] [[proposition]] marked by the [[imperative]]?"
[[translation]]
[[ATP p76-3]]
There are intrinsic relations between speech and certain actions that are accomplished by saying them (the [[performative]]: I swear by saying "I swear") and more generally between [[speech]] and certain [[action]]s that are accomplished in speaking (the [[illocutionary]]: I ask a question by saying "Is...?" I make a promise by saying "I love you..."; I give a command by using the [[imperative]], etc). These acts internal to speech, theses [[immanent]] relations between [[statement]]s and [[act]]s, have been termed [[implicit]] or [[nondiscursive]] [[presupposition]]s, as opposed to the potentially explicit assumptions by which a statement refers to other statements or an external action ([[Ducrot]]).
[[ATP p76/77-1]]
The [[theory]] of the [[performative]] [[sphere]], and the broader sphere of the [[illocutionary]], has had three important and immediate consequences:
1: It has made it impossible to conceive of [[language]] as a [[code]], since a code is the condition of possibility for all explanation. It has also made it impossible to conceive of [[speech]] as the [[communication]] of [[information]]: to [[order]], question, promise, or affirm is not to inform someone about a command, doubt engagement or assertion but to [[effectuate]] these specific, [[immanent]], and necessarily [[implicit]] [[act]]s.
2: It has made it impossible to define [[semantic]]s, [[syntactic]]s, or even [[phonematic]]s as scientific [[zone]]s of language independent of [[pragmatic]]s. Pragmatics ceases to be a "trash heap," Pragmatic determinations cease to be subject to the alternative: fall outside language, or answer to [[explicit]] conditions that syntacticize and semanticize pragmatic determinations. Instead, pragmatics becomes the [[presupposition]] behind all of the other [[dimension]]s and insinuates itself into everything.
3: It makes it impossible to maintain the [[distinction]] between language and [[speech]] because speech can no longer be defined simply as the [[extrinsic]] and [[individual]] use of a primary [[signification]], or the [[variable]] application of a preexisting [[syntax]]. Quite the opposite, the meaning and syntax of language can no longer be defined independently of the speech acts they [[presuppose]].
[[ATP p77-1]]
We cannot assume the subject as prior to language, we cannot use "A property of self-referentiality of terms (The true personal pronouns, I, YOU..., defined as shifters)" in order to account for the existence of these [[speech act]]s or [[implicit presupposition]]s. [[Benveniste]] wants to do this.
"Oswald [[Ducrot]] has set forth the reasons that have led him to reverse Beneviste's [[schema]]. The phenomena of self-referentiality cannot account for the [[performative]]. The opposite is the case; it is "the fact that certain [[statement]]s are socially devoted to the accomplishment of certain actions" that explains self-referentiality.
The [[performative]] itself is explained by the [[illocutionary]], not the opposite. It is the illocutionary that constitutes the [[nondiscursive]] or [[implicit presupposition]]s. And the illocutionary is in turn explained by the [[collective assemblage]]s of enunciation, by [[juridical]] acts or equivalents of juridical [[act]]s, which, far from depending on [[subjectification]] proceedings or assignations of [[subject]]s in [[language]], in fact determine their [[distribution]]. Communication is no better a [[concept]] than [[information]]; [[intersubjectivity]] gets us no further than [[signifiance]] in accounting for these "[[statement]]-acts" [[assemblage]]s that in each language delimit the role and range of [[subjective]] [[morpheme]]s. (We will see that the analysis of [[indirect discourse]] confirms this point of view since it shows that subjectifications are not primary but result from a complex assemblage.)
[[ATP p77/78-1]]
We call [[order-word]]s not a particular category of [[explicit]] [[statement]]s (for example, in the [[imperative]]), but the relation of every [[word]] or statement to [[implicit presupposition]]s, in other words, to [[speech act]]s that are, and can only be, accomplished in the statement. Order-words do not concern [[command]]s only, but every [[act]] that is linked to statements by a "social obligation." Every statement displays this link, directly or indirectly. Questions, promises, are order-words. The only possible definition of [[language]] is the set of all order-words, implicit presuppositions, or speech acts current in a language at a given moment.
See [[ATP p65-1]] for [[language]] to [[regime of signs]] relation
[[ATP p78/79-1]]
The relation between the [[statement]] and the [[act]] is internal, [[immanent]], but it is not one of [[identity]]. Rather, it is a relation of [[redundancy]]. The [[order-word]] itself is the redundancy of the act and the statement. Newspapers, news, proceed by redundancy, in that they tell us what we "must" think, retain, expect, etc. [[language]] is neither informational nor communicational. It is not the [[communication]] of [[information]] but something quite different: the [[transmission]] of order-words, either from one statement to another or within each statement [ [[question]]: is this to say a transmission from statement->statement vs a transmission of statement->within the statement or transmission of statement->outside the statement? I'm not sure.], insofar as each statement accomplishes an act and the act is accomplished in the statement,
We are saying that the redundancy of the order-word is primary and that information is only the minimal [[condition]] for the transmission of order-words (which is why the opposition to be made is not between [[noise]] and information but between all the indisciplines at work in language, and the order-word as [[discipline]] or "[[grammaticality]]"). [[redundancy]] has two [[form]]s, [[frequency]] and [[resonance]]; the first concerns the [[signifiance]] of information, the second (I=I) concerns the [[subjectivity]] of [[communication]]. It becomes apparent that information and communication, and even signifiance and subjectification, are subordinate to redundancy.
[[faciality]]
A [[distinction]] is sometimes made between information and communication; some authors even envision an abstract signifiance of information and an abstract subjectification of communication. None of this, however, yields an [[implicit]] or primary form of language. There is no signifiance independent of [[dominant]] [[signification]]s, nor is there subjectification independent of an established [[order]] of [[subjection]]. Both depend on the nature and transmission of order-words in a given social [[field]].
[[ATP p79-1]]
There is no [[individual]] [[enunciation]]. There is not even a [[subject]] of [[enunciation]]. Few [[linguist]]s have analyzed the necessarily [[social]] characteristic of enunciation. The problem is that is is not enough to establish that enunciation has this social character, since it could be [[extrinsic]]; therefore too much or too little is said about it. the social character of enunciation is intrinsically founded only if one succeeds in demonstrating how enunciation in itself implies [[collective assemblage]]s. It then becomes clear that the [[statement]] is [[individuate]]d, and enunciation [[subjectified]], only to the extent that an impersonal collective assemblage requires it and determines it to be so. It is for this reason that [[indirect discourse]], especially "free" indirect discourse, is of exemplary value: there are no clear, distinctive contours, what comes first is not an insertion of variously individuated statements, or an interlocking of different [[subject]]s of enunciation, but a collective assemblage resulting in the determination of relative [[contour]]s; what comes first is not an insertion of variously individuated statements, or an interlocking of different subjects of enunciation, but a collective assemblage resulting in the determination of relative [[subjectification]] proceedings, or assignations of [[individuality]] and their shifting distributions within discourse,
[[indirect discourse]] is not explained by the [[distinction]] between subjects; rather, it is the [[assemblage]], as it freely appears in this discourse, that explains all the voices present within a single voice...
[[ATP p79-2]]
"it is always possible to break a language down into internal structural elements, an undertaking not fundamentally different from a search for roots.... It is not a method for the people. A method of the [[rhizome]] type, on the contrary, can analyze language only be [[decenter]]ing it onto other dimensions and registers. A language is never closed upon itself, except as a function of impotence."
[[ATP p8-2]]
"A [[multiplicity]] has neither subject nor object, only determinations, magnitudes, and dimensions that cannot increase in number without the [[multiplicity]] changing in nature (the laws of combination), therefore increase in number as the [[multiplicity]] grows."
[[ATP p8-3]]
"An [[assemblage]] is precisely this increase in the dimensions of a [[multiplicity]] that necessarily changes in nature as it expands connections."
[[ATP p8-4]]
"There are no positions in a [[rhizome]], such as those found in a structure, tree, or root. There are only [[lines]]."
[[ATP p8-5]]
[[assemblage]]
"We do not have units of measure, only [[multiplicity]]s or varieties of measure."
No power take over by a dominant signifier, by a dominant method of investigation, by a dominant object of investigation, by a dominant...
[[ATP p8-6]]
[[rhizome]]
[[assemblage]]
"Unity always operates in an empty dimension supplementary to that of the system considered ([[overcode]]ing.)"
[[ATP p9-1]]
The notion of [[collective assemblage]] of [[enunciation]] takes on primary importance since it is what must account for the social character [see previous tiddler]. We can no doubt define the collective assemblage as the [[redundant]] [[complex]] of the [[act]] and the [[statement]] that necessarily accomplishes it. But this is still only a [[nominal]] definition; it does not even enable us to justify our previous position that [[redundancy]] is irreducible to simple [[identity]] (or that there is no simple identity between the [[statement]] and the act). If we wish to move to a real definition of the collective assemblage, we must ask of what consist these acts [[immanent]] to language that are in redundancy with statements or constitute [[order-word]]s.
[[ATP p79/80-1]]
These [[act]]s seem to be defined as the [[set]] of all [[incorporeal transformation]]s current in a given society, and [[attribute]]d to the [[body]]s of that society. We may take the word [[body]] in its broadest sense (there are mental bodies, souls are bodies, etc), We must, however, distinguish between the [[actions and passions]] [[affect]]ing those bodies [[[machinic assemblage]]?], and acts, which are only [[noncorporeal]] [[attribute]]s or the "[[expressed]]" of a [[statement]].
When [[ducrot]] asks what an act consists of, he turns precisely to the [[juridical]] [[assemblage]], taking the example of the judge's sentence that [[transform]]s the accused into a convict. In effect, what takes place beforehand (the crime of which someone is accused) and what takes place after (the carrying out of the penalty), are actions-passions affecting bodies (the body of the property, the victim, the convict, the prison); but the transformation of the accused into a convict is a pure instantaneous act or [[incorporeal]] attribute that is the [[expressed]] of the judge's sentence.
Peace and war are [[state]]s or [[intermingling]]s of very different kinds of bodies, but the declaration of a general mobilization expresses an instantaneous and incorporeal transformation of bodies. Bodies have an age, they mature and grow old; but majority, retirement, any given age category, are incorporeal transformations that are immediately attributed to bodies in particular societies. "You are no longer a child": This statement concerns an incorporeal transformation, even if it applies to bodies and inserts itself into their actions and passions. The incorporeal transformation is recognizable by its instantaneousness, its immediacy, by the simultaneity of the statement expressing the transformation and the effect the transformation produces; that is why order-words are precisely dated, to the hour, minute, and second, and take effect the moment they are dated...
The declaration "I love you": expresses a noncorporeal [[attribute]] of bodies, the lover's as well as that of the loved one. Eating bread and drinking wine are interminglings of bodies; communing with Christ is also an intermingling of bodies, properly spiritual bodies that are no less "real" for being spiritual. But the transformation of the body of the bread and the wine into the body and blood of Christ is the pure expressed of a statement attributed to the bodies... Then there's an example of a plane hijacker....
The [[order-word]]s or [[collective assemblage]]s in a given society (in short, the [[illocutionary]]) designate this instantaneous relation between statements and the incorporeal transformations or noncorporeal attributes they express.
[[ATP p80-1]]
Perhaps economics or financial analysis best demonstrates the presence and instantaneousness of these decisive acts in an overall [[process]] (that is why [[statement]]s definitely do not belong to [[ideology]], but are already at work in what is supposedly the domain of the economic base). The galloping inflation in Germany after 1918 was a crisis [[affect]]ing the monetary [[body]] and other bodies besides; but the sum of the "circumstances" suddenly made possible a [[semiotic]] [[transformation]] that, although [[indexed]] to the body of the [[earth]] and material assets, was still a pure [[act]] or [[incorporeal transformation]]-November 20, 1923
[[ATP p80/81-1]]
the [[assemblage]]s are in [[constant]] [[variation]], are themselves constantly [[subject]] to [[transformation]]s. First, the circumstances must be taken into account....a [[performative]] [[statement]] is nothing outside of the circumstances that make it performative.... in the absence of an [[effectuate]]d [[variable]] giving that person the right to make such a statement it is an [[act]] of puerility or [[insanity]], not an act of [[enunciation]]. This is also true of "I love you," which has neither [[meaning]] nor subject nor addressee outside of circumstances that not only give it credibility but make it a veritable assemblage, a [[power marker]], even in the case of an unhappy love (it is still by a [[will to power]] that one obeys...)
The general term circumstances should not leave the [[impression]] that it is a question only of external circumstances. "I swear" is not the same when said in the family, at school, in a love affair, a secret society, or in court: it is not the same thing, and neither is the [[incorporeal transformation]]. The transformation applies to [[body]]s but is itself [[incorporeal]], internal to enunciation. There are variables of [[expression]] that establish a relation [[between]] [[language]] and the outside, but precisely because they are [[immanent]] to language.
...variables of expression or of enunciation are so many internal reasons for language not to close itself off.... as long as [[linguistic]]s extracts [[constant]]s, it is incapable of helping us understand how a single word can be a complete enunciation; there must be an "extra something" that "remains outside the scope of the entire set of linguistic categories and definitions," even though it is still entirely within the purview of the theory of enunciation or language. The [[order-word]] is precisely that variable that makes the word as such an enunciation. The instantaneousness of the order-word, its immediacy, gives it a power of variation in relation to the bodies to which the transformation is attributed.
[[ATP p81/82-1]]
[[pragmatic]]s is a politics of [[language]]. A study such as Jean-Pierre Faye's on the constitution of Nazi [[statement]]s in the german social field is in this respect exemplary... [[transformational]] research of this kind is concerned with the [[variation]] of the [[order-word]]s and [[noncorporeal attribute]]s linked to social bodies and [[effectuate]]ing [[immanent]] [[act]]s....
Lenin 1917 example
"If the objection is leveled that these specific features pertain to politics and not [[linguistic]]s, it must be observed how thoroughly politics works language from within, causing not only the vocabulary but also the [[structure]] and all of the phrasal [[element]]s to vary as the order-words change. A type of statement can be evaluated only as a function of its pragmatic implications, in other words, in relation to the [[implicit presupposition]]s, immanent acts, or [[incorporeal transformation]]s it expresses and which introduce new configurations of [[body]]s. True [[intuition]] is not a judgement of grammaticality but an evaluation of internal [[variable]]s of enunciation in relation to the [[aggregate]] of circumstances."
[[ATP p82-1]]
We have gone from explicit commands to [[order-word]]s as [[implicit presupposition]]s; from order-words to the [[immanent]] [[act]]s or [[incorporeal transformation]]s they [[express]]; and from there to the [[collective assemblage]]s whose [[variable]]s they are. To the extent that these variables enter at a given moment in determinable relations, the [[assemblage]]s combine in a [[regime of signs]] or a [[semiotic machine]]. It is obvious that a [[society]] is plied by several [[semiotic]]s, that its regimes are in fact mixed. Moreover, at a later time there will arise new order-words that will modify the variables and will not yet be part of a known regime.
[[ATP p82/83-1]]
Thus the [[order-word]] is [[redundancy]] in several ways; as a [[function]] of the [[process]] of [[transmission]] essential to it, and in itself, from the time it is emitted in its "immediate," relation with the [[act]] or [[transformation]] it [[effectuate]]s. The order-word is already redundancy even when it is in [[rupture]] with a particular [[semiotic]].
That is why every statement of a [[collective assemblage]] belongs to [[indirect discourse]].
[[ATP p83/84-1]]
Indirect discourse is the presence of a reported statement within the reporting [[statement]], the presence of an order-word within the word. [[language]] in its entirety is indirect discourse. Indirect discourse in no way supposes direct discourse rather, the latter is extracted from the former, to the extent that the operations of [[signifiance]] and proceedings of [[subjectification]] in an [[assemblage]] are distributed, attributed, and assigned, or that the [[variable]]s of the assemblage enter into [[constant]] relations, however temporarily.
Direct discourse is a detached fragment of a mass and is borne of the dismemberment of the [[collective assemblage]].... then a [[schizo flow]]
[[ATP p84-1]]
When we ask what [[faculty]] is specific to the [[order-word]], we must indeed [[attribute]] to it some strange characteristics: a kind of instantaneousness in the [[emission]], [[perception]], and [[transmission]], of order-words, a wide [[variability]], and a power of [[forget]]ing permitting one to feel absolved of the order-words one has followed and then abandoned in order to welcome others: a properly ideal or ghostly capacity for the apprehension of [[incorporeal transformation]]s; an aptitude for grasping [[language]] as an immense [[indirect discourse]]. The faculty of the cuer and the cued, of the song that always holds a tune in a relation of [[redundancy]], a faculty that is in truth mediumistic, glossolalic, or xenoglossic.
[[ATP p84-2]]
It is evident that [[order-word]]s, [[collective assemblage]]s, or [[regime of signs]] cannot be equated with language, But they [[effectuate]] its condition of possibility (the [[superlinearity]] of expression), they fulfill in each instance this condition of possibility, without them, language would remain a pure [[virtuality]]... Doubtless, the [[assemblage]]s [[vary]], undergo [[transformation]]. But they do not necessarily vary by [[language]], they do not correspond to the various languages. A language seems to be defined by the syntactical, [[semantic]], phonological [[constant]]s in its [[statement]]s; the collective assemblage, on the contrary, concerns the usage of these constants in relation to [[variable]]s internal to [[enunciation]] itself (variables of [[expression]], [[immanent]] [[act]]s, or [[incorporeal transformation]]s).
Different constants, different languages, may have the same usage; the same constants in a given language may have different usages, successively or even simultaneously. We cannot content ourselves with a duality between constants as [[linguistic]] factors that are [[explicit]] or potentially explicit, and variables as extrinsic, nonlinguistic factors. For the [[pragmatic]] variables of usage are internal to enunciation and constitute the [[implicit presupposition]]s of language. Thus if the collective assemblage is in each instance coextensive with the linguistic system considered, and to language as a whole, it is because it expresses the set of incorporeal transformations that [[effectuate]] the condition of possibility of language and utilize the elements of the linguistic system. The language-function thus defined is neither informational nor communicational; it has to do neither with [[signifying]] information nor with [[intersubjective]] communication. And it is useless to abstract a [[signifiance]] outside information, or a [[subjectivity]] outside communication. For the [[subjectification]] proceedings and movement of signifiance relate to regimes of signs, or collective assemblages. The language-function is the transmission of order-words, and order-words relate to assemblages, just as [[assemblages]]s relate to the incorporeal transformations constituting the variables of the function.
Linguistics is nothing without a pragmatics ([[semiotic]] or [[political]]) to define the effectuation of the condition of possibility of language and the usage of linguistic [[element]]s.
[[ATP p84-3]]
If in a social [[field]] we distinguish the [[set]] of [[corporeal modification]]s and the set of [[incorporeal transformation]]s, we are presented, despite the variety in each of the sets, with two [[formalization]]s, one of [[content]], the other of [[expression]]. For content is not opposed to [[form]] but has its own formalization: the [[hand-tool]] pole, or the lesson of things. It is, however, opposed to expression, inasmuch as expression also has its own formalization: the [[face-language]] pole, the lesson of signs.
[[ATP p85-1]]
Precisely because [[content]], like [[expression]]. has a [[form]] of its own, one can never assign the [[form of expression]] the [[function]] of simply representing, describing, or averring a corresponding content: there is neither correspondence nor conformity. The two [[formalization]]s are not of the same [[nature]]; they are independent, [[heterogenous]]. The [[Stoic]]s were the first to theorize this independence...
[[ATP p85/86-1]]
The [[form of expression]] is constituted by the [[warp]] of [[expressed]]s, and the [[form of content]] by the [[woof]] of bodies. When knife cuts flesh, when food or poison spreads through the [[body]], when a drop of wine falls into water, there is an [[intermingling]] of bodies; but the [[statement]]s, "The knife is cutting the flesh," "I am eating," "The water is turning red," [[express]] [[incorporeal transformation]]s of an entirely different nature ([[event]]s). The genius of the [[Stoic]]s was to have taken this [[paradox]] as far as it could go...
[[ATP p86-1]]
The [[paradox]] gets us nowhere unless, like the [[Stoic]]s, we add that [[incorporeal transformation]]s, [[incorporeal]] [[attribute]]s, apply to bodies, and only to bodies. They are the [[expressed]] of [[statement]]s, but are [[attributed]] to bodies. The purpose is not to describe or represent bodies; bodies already have proper qualities, [[actions and passions]], souls, in short [[form]]s, which are themselves bodies. [[representation]]s are bodies too! In [[noncorporeal]] attributes apply to bodies, if there are good grounds for making a [[distinction]] between the [[incorporeal]] expressed "to become red" and the [[corporeal]] [[quality]] "red," etc., it has nothing to do with representation.
We cannot even say that the body or [[state]] of things is the "[[referent]]" of the [[sign]]. In expressing the noncorporeal attribute, and by that token attributing it to the body, one is not [[representing]] or [[referring]] but [[intervening]] in a way; it is a [[speech act]].
The independence of the two kinds of [[form]]s, [[form of expression]] and [[form of content]], is not contradicted but confirmed by the fact that the expressions or expresseds are inserted into or intervene in contents, not to [[represent]] them but to anticipate them or move them back, slow them down or [[speed]] them up, separate them or combine them, delimit them in a different way. The [[warp]] of the instantaneous transformations is always inserted into the [[woof]] of continuous modifications.
[[ATP p86-2]]
What [[incorporeal transformation]]s are [[expressed]] by dates, incorporeal yet attributed to bodies, inserted into them?
[[question]]
[[ATP p86-3]]
The independence of the [[form of expression]] and the [[form of content]] is not the basis for a parallelism between them or a [[representation]] of one by the other, but on the contrary a parceling of the two, a manner in which [[expression]]s are [[inserted]] into [[content]]s, in which we ceaselessly [[jump]] from one register to another, in which [[sign]]s are at work in things themselves just as things extend into or are deployed through signs.
[[ATP p86/87-1]]
A [[collective assemblage]] of [[enunciation]] does not speak "of" things; it speaks on the same [[level]] as [[state]]s of things and states of [[content]]. So that the same x, the same [[particle]], may function either as a [[body]] that acts and undergoes actions or as a [[sign]] constituting an [[act]] or [[order-word]], depending on which [[form]] it is taken up by.... In short, functional independence of the two forms is only the form of their [[reciprocal presupposition]], and of the continual [[passage]] from one to the other. We are never presented with an [[interlinkage]] of order words and a causality of [[content]]s each in its own right; nor do we see one [[represent]] the other, with the second serving as [[referent]]. On the contrary, the independence of the two [[line]]s is distributive, such that a [[segment]] of one always forms a [[relay]] with a segment of the ohter, slips into, introduces itself into the other. We constantly pass from order-words to the "silent order" of things, as [[Foucault]] puts it, and vice versa.
[[ATP p87-1]]
What we must determine is not an [[origin]] of [[point]]s of intervention or insertion in the framework of the [[reciprocal presupposition]] of the two [[form]]s. Both [[form of content]] and [[form of expression]] are inseparable from a [[movement]] of [[deterritorialize]]ation that carries them away. Both [[content]] and [[expression]] are more or less deterritorialized, relatively deterritorialized, according to the particular state of their form.... one cannot posit a primacy of expression over content, or content over expression.
Sometimes the [[semiotic]] [[component]]s are more deterritorialized than the material components, sometimes the reverse... A criminal action may be deterritorializing in relation to the existing [[regime of signs]] (the earth cries for revenge and crumbles beneath my feet, my offense is too great); but the [[sign]] that expresses the act of condemnation may in turn be deterritorializing in relation to all the actions and reactions ("A fugitive and vagabond thou shalt be in the earth", you cannot even be killed).
[[ATP p87-2]]
In short, there are [[degree]]s of [[deterritorialize]]ation that [[quantify]] the respective [[form]]s according to which the [[content]] and [[expression]] are [[conjugate]]d, feed into each other, accelerate each other, or on the contrary become stabilized and perform a reterritorialization. What we call [[circumstance]]s or [[variable]]s are these [[degree]]s themselves. There are [[variable of content]] or proportions in the [[intermingling]]s of [[aggregate]]tions of bodies, and there are [[variable of expression]], factors internal to [[enunciation]]. ([[implicit presupposition]]s? I believe those are the variables of expression)
2 political [[example]]s of this; Germany reterritorializes the inflationary body of the reichsmark to the rentenmark by a [[semiotic]] movement of [[incorporeal transformation]] conjuncting the two sets of quanta; Lenin [[accelerate]]s the detonation and deterritorialization of the body of the soviet political part by forming the vanguard party, conjuncting the quanta of the two forms of content/expression here.
In short, the way [[form of expression]] relates to [[form of content]] is not by uncovering or representing it. Rather, forms of expression and forms of content communicate through a [[conjunction]] of their [[quanta]] of [[relative]] [[deterritorialize]]ation, each intervening, operating in the other.
[[ATP p87-3]]
We may draw some general conclusions on the nature of [[assemblage]]s from this. On a first, horizontal, axis, an assemblage comprises two [[segment]]s, one of [[content]], the other of [[expression]]. On the one hand it is a [[machinic assemblage]] of bodies, of [[actions and passions]]; on the other hand it is a [[collective assemblage]] of [[enunciation]], of [[act]]s and [[statement]]s, of [[incorporeal transformation]]s [[attributed]] to bodies.
Then, on a vertical axis, the assemblage has both [[territorial]] sides, or [[reterritorialize]]d sides, which stabilize it, and many [[cutting edge of deterritorialization]], which carry it away.
followed by two [[example]]s; first a [[Kafka]] example, then a [[feudal]] example
[[ATP p87/88-1]]
Although it may be possible to conceive of a causal action moving from [[content]] to [[expression]], the same cannot be said of their respective [[form]]s, the [[form of content]] and the [[form of expression]]. We must recognize that [[expression]] is independent and that this is precisely what enables it to react upon [[content]]s.
From a paragraph that critiques the theory of [[ideology]]
[[ATP p88-1]]
critique of [[ideology]].
The application of [[production]] as a category to [[language]] has the advantage of breaking with representation, information and communication schemas, "But is it any more adequate than those [[schema]]s? Its application to language is very [[ambiguous]] in that it appeals to an ongoing [[dialectic]]al miracle of the [[transformation]] of [[matter]] into [[meaning]], [[content]] into [[expression]], the social [[process]] into a [[signifying]] [[system]].
[[ATP p89-1]]
"The point is that a [[rhizome]] or [[multiplicity]] never allows itself to be [[overcode]]d, never has available a supplementary dimension over and above its number of [[lines]], that is, over and above the multiplicity of numbers [of numbers, of numbers of...]attached to those lines."
[[ATP p9-2]]
"All [[multiplicity]]s are flat, in the sense that they fill or occupy all of their dimensions: we will therefore speak of a [[plane of consistency]] of multiplicities, even though the dimensions of this "plane" increase with the number of connections that are made on it."
[[ATP p9-3]]
"[[multiplicity]]s are defined by the outside: by the abstract [[line]], the [[line of flight]] or [[deterritorialize]]ation according to which they change in nature and connect with other multiplicities."
[[ATP p9-4]]
"the [[plane of consistency]] (grid) is the outside of all [[multiplicity]]s."
[[ATP p9-5]]
"The [[line of flight]] marks: the reality of a finite number of dimensions that the [[multiplicity]] effectively fills; the impossibility of a supplementary dimension, unless the multiplicity is transformed by the line of flight; the possibility and necessity of flattening all other the multiplicities on a single [[plane of consistency]] or exteriority, regardless of their number of dimensions."
[[ATP p9-6]]
"The ideal for a book would be to lay everything out on a plane of exteriority of this kind, on a single page, the same sheet: lived events, historical determinations, concepts, individuals, groups, social formations."
[[ATP p9-7]]
[[plane of consistency]]
[[multiplicity]]
"Flat [[multiplicity]]s of n-dimensions are [[asignifying]] and [[asubjective]]. They are designated by [[infinitive]]] articles, or rather by [[partitive]]s (some couchgrass, some of a [[rhizome]]...)
[[ATP p9-8]]
"a [[rhizome]] may be broken or shattered at a given spot, but it will start up again on one of its old [[lines]] or on new lines."
[[ATP p10-1]]
We think the [[material]] or [[machinic]] [[aspect]] of an [[assemblage]] relates not to the [[production]] of goods but rather to a precise [[state]] of [[intermingling]] of bodies in a society, including all the attractions and repulsions, sympathies and antipathies, alterations, amalgamations, penetrations, and expansions that [[affect]] bodies of all kinds in their relations to one another. What regulates the obligatory, necessary, or permitted interminglings of [[body]]s is above all an [[alimentary]] regime and a [[sexual]] [[regime]]. Even [[technology]] makes the mistake of considering [[tool]]s in isolation: tools exist only in relation to the interminglings they make [[possible]] or that make them possible.
The stirrup entails a new man-horse symbioses that at the same time entails new [[weapon]]s or new instruments. Tools are inseparable from the symbioses or [[amalgamation]]s defining a Nature-Society [[machinic assemblage]]. They presuppose a social [[machine]] that selects them and takes them into its "[[phylum]]": a society is defined by its amalgamations, not by its tools.
Similarly, the [[semiotic]] or collective aspect of an assemblage relates not to a productivity of [[language]] but to [[regime of signs]], to a machine of [[expression]] whose [[variable]]s determine the usage of language [[element]]s. These elements do not stand on their own any more than tools do.
There is a primacy of the [[machinic assemblage]] of bodies over tools and goods, a primacy of the [[collective assemblage]] of [[enunciation]] over language and [[word]]s. The [[articulation]] of these two aspects of the assemblage is effected by the movement of [[deterritorialize]]ation that [[quantify]] their [[form]]s. That is why a social field is defined less by its conflicts and contradictions than by the [[line of flight]]s running through it.
An assemblage has neither deep [[structure]] nor superficial structure; it flattens all of its dimensions onto a single [[plane of consistency]] upon which [[reciprocal presupposition]]s and mutual insertions play themselves out.
This blends well with the last few tiddlers, slowly solving the [[question]] of "How do content and expression interact if they are not reflective?"
[[ATP p89/90-1]]
The other mistake (which is combined with the first as needed) is to believe in the adequacy of the [[form of expression]] as a [[linguistic]] [[system]]... All undertakings that do this have in common an erection of [[abstract machine]] of [[language]], but as a [[synchronic]] set of [[constant]]s.... it is not abstract enough, it remains "[[linear]]". It remains on an intermediate level of abstraction allowing it to consider linguistic [[factor]]s in themselves, independently of nonlinguistic factors, and to treat those linguistic factors as constants.
But if the abstraction is taken further, one necessarily reaches a [[level]] where the pseudoconstants of language are superseded by the variables of expression internal to [[enunciation]] itself; these [[variables of expression]] are then no longer separable from the [[variables of content]] with which they are in perpetual interaction. If the external [[pragmatic]]s of nonlinguistic factors must be take into consideration, it is because linguistics itself is inseparable from an internal pragmatics involving its own factors.
It is not enough to take into account the [[signified]] or even the [[referent]], because the very notions of [[signification]] and reference is bound up with a supposedly autonomous and [[constant]] [[structure]].
[[ATP p90-1]]
A true [[abstract machine]] pertains to an [[assemblage]] in its entirety: it is defined as the [[diagram]] of that assemblage. It is not [[language]] based but [[diagrammatic]] and [[superlinear]]. [[content]] is not a [[signified]] not [[expression]] a [[signifier]]; rather, both are [[variable]]s of the assemblage. We get nowhere until the [[pragmatic]], but also the [[semantic]], syntactical, and phonological determinations are directly linked to the [[collective assemblage]] of [[enunciation]]... as soon as pragmatic [[value]]s or internal variables are taken into account, in particular with respect to [[indirect discourse]], one is obliged to bring "hypersentences" into play or to construct "abstract objects" ([[incorporeal transformation]]s).
This implies superlinearity, in other words, a [[plane]] whose [[element]]s no longer have a fixed linear order: the [[rhizome]] [[model]]. From this standpoint, the [[interpenetration]] of language and the social field and political problems lies at the deepest level of the abstract machine, not at the surface. The abstract machine as it relates to the [[diagram]] of the assemblages is never purely a matter of language, except for lack of sufficient abstraction. It is language that depends on the abstract machine, not the reverse.
[[ATP p90/91-1]]
At most, we may distinguish in the abstract machine two [[state]]s of the [[diagram]], one in which [[variable of content]]s and [[variable of expression]]s are distributed according to their heterogenous [[form]]s in [[reciprocal presupposition]] on a [[plane of consistency]], and another in which it is no longer even possible to distinguish between [[variable]]s of content and expression because the variability of that same [[plane]] has prevailed over the duality of [[form]]s, rendering them "[[indiscernible]]". (The first state relates to the still [[relative]] movements of [[deterritorialize]]ation; in the second, an [[absolute]] [[threshold]] of deterritorialization has been reached.)
[[ATP p91-1]]
The very idea of [[structure]] is inseparable from [[invariant]]s, [[constant]]s
[[ATP p91-2]]
in truth, the nature of the [[abstract machine]] is the most general question; there is no reason to tie the abstract machine to the [[universal]] or the [[constant]], or to [[efface]] the [[singularity]] of abstract machines insofar as they are built around [[variable]]s and [[variation]].
[[ATP p92-1]]
[[Chomsky]] and [[Labov]].
Labov... brings to light [[line]]s of [[inherent variation]] in [[language]]... Must it not be admitted that every [[system]] is in [[variation]] and is defined not by its [[constant]]s and [[homogeneity]] but on the contrary by a [[variability]] whose characteristics are [[immanent]], [[continuous]], and regulated in a very specific [[mode]] ([[variable]] or [[optional]] [[rule]]s)?
[[ATP p92/3-1]]
the [[question]] is: How can we conceptualize this [[continuous variation]] at work within a [[language]]...
Language is defined by the [[line]] of continuous [[variation]] running through it. Some linguists have suggested that [[linguistic]] change occurs less by systemic rupture than by a gradual modification of [[frequency]], by a coexistence and [[continuity]] of different usages.
"I swear" as said to a judge, father or lover
Ian note: The [[immanent]] relation of the statement to the act is different; the [[order-word]] has changed; there are no constants here as the [[form of expression]] and the [[form of content]] are different, so both [[content]] and [[expression]] are different.
...there is no reason to say that the variables are merely situational, and that the statement remains constant in principle. Not only are there as many [[statement]] as there are [[effectuation]]s, but all of the statements are present in the effectuation of one among them, so that the line of variation is [[virtual]], in other words, [[real]] without being [[actual]] and consequently [[continuous]] regardless of the leaps the statement makes. To place the statement in continuous variation is to send it through all the prosodic, semantic, syntactical and phonological [[variable]]s that can [[affect]] it in the shortest moment of [[time]] (the smallest [[interval]].)
Build the [[continuum]] of "I swear" with the corresponding [[transformation]]s. This is he standpoint of [[pragmatic]]s, but a pragmatics internal to [[language]], [[immanent]], including variations of linguistic [[element]]s of all kinds... There us a [[constant]] [[tendency]] to seek a "reduction"... But this is to content oneself with extracting a [[pseudoconstant]] of [[expression]]. [[placing-in-variation]] allows us to avoid these dangers, because it builds a continuum or [[medium]] without beginning or end ([[between]]).
[[ATP p93/94-1]]
Continuous [[variation]] should not be confused with the [[continuous]] or discontinuous character of the variable itself: The [[order-word]], a continuous variation for a [[discontinuous]] [[variable]].. A [[variable]] can be continuous over a portion of its [[trajectory]], then [[leap]] or skip, without that [[affect]]ing its [[continuous variation]]: what this does is impose an absent development as an "alternative continuity" that is [[virtual]] yet [[real]]. (not [[actual]], see prior tiddler).
[[ATP p94-1]]
A [[constant]] or [[invariant]] is defined less by its [[permanence]] and [[duration]] than but its [[function]] as a [[center]], if only relevant.
[[example]]s of [[music]], then a long [[schizo flow]]
[[ATP p94/95-1]]
It is perhaps characteristic of [[secret]] [[language]]s, slangs, jargons, professional languages, nursery rhymes, merchants' cries to stand out less for their lexical inventions or rhetorical figures than for the way in which the effect [[continuous variation]]s of the common [[element]]s of language. They are chromatic languages, closer to musical notation. A secret language des not merely have a hidden cipher or [[code]] still operating by [[constant]]s and forming a subsystem; it places the public language's [[system]] of [[variable]]s in a [[state]] of [[variation]].
[[ATP p95-1]]
This is what we are getting at: a generalized [[chromaticism]]. Placing [[element]]s of any nature in [[continuous variation]] is an [[operation]] that will perhaps give rise to new [[distinction]]s, but takes none as final and has none in advance... There is no reason to make prior, principled distinctions. Linguistics in general is still in a kind of major mode... All languages, in the meantime, are in [[immanent]] continuous variation: neither [[synchrony]] nor diachrony, but [[asynchrony]], chromaticism as [[variable]] and [[continuous]] [[state]] of [[language]]. For a chromatic [[linguistic]]s according [[pragmatism]] its [[intensity]]s and values.
[[ATP p97-1]]
What is called a [[style]] can be the most natural thing in the world; it is nothing other than the procedure of a [[continuous variation]]... Because a [[style]] is not an [[individual]] [[psychological]] creation by a [[collective assemblage]], it unavoidably produces a language within a [[language]].
[[ATP p97-2]]
...when one submits [[linguistic]] [[element]]s to a treatment producing [[continuous variation]], when one introduces an internal [[pragmatic]]s into [[language]], one is necessarily led to treat [[nonlinguistic]] elements such as [[gesture]]s and instruments in the same fashion, as if the two aspects of pragmatics joined on the same [[line]] of [[variation]], in the same [[continuum]]
[[ATP p97-3]]
...making [[language]] stammer rather than stammering in [[speech]]. To be a foreigner, but in one's own tongue, not only when speaking a language other than one's own. To be bilingual, multilingual, but in one and the same language, without even a [[dialect]] or [[patois]]. To be a bastard, a half-breed, but through a purification of race. That is when [[style]] becomes a language. That is when language [[become]]s [[intensive]], a pure [[continuum]] of [[value]]s and [[intensity]]s. That is when all of language becomes [[secret]], yet has nothing to hide, as opposed to when one carves out a secret subsystem within language. One attains this result only by sobriety, creative subtraction. [[continuous variation]] has only [[ascetic]] [[line]]s, a touch of herb and pure water.
[[ATP p98-1]]
It is possible to take any [[linguistic]] [[variable]] and place it in [[variation]] following a necessarily [[virtual]] [[continuous]] [[line]] [[between]] two of its [[state]]s. We are no longer in the situation of [[linguist]]s who expect the [[constant]]s of [[language]] to experience a kind of [[mutation]] or undergo the [[effect]]s of [[change]]s accumulated in [[speech]] alone. Lines of change or creation are fully and directly a part of the [[abstract machine]]. [[Hjelmslev]] remarked that a language necessarily includes unexploited [[possibility]]s or [[potentiality]]s and that the abstract machine must include them.
[[ATP p98/99-1]]
[[potential]] and [[virtual]] are not at all in opposition to [[real]]; on the contrary, the reality of the creative, or the placing in [[continuous variation]] of [[variable]]s, is in opposition only to the [[actual]] determination of their [[constant]] relations. Each time we draw a [[line]] of [[variation]], the [[variable]]s are of a particular nature (phonological, syntactical or grammatical, [[semantic]] and so on), but the line itself is [[apertinent]], [[asyntactic]] or [[agrammatical]], [[asemantic]]. Agrammaticality is, for example, no longer a [[contingent]] characteristic of [[speech]] opposed to the grammaticality of [[language]]; rather it is the [[ideal]] characteristic of a [[line]] placing grammatic variables in a state of continuous variation.
[[ATP p99-1]]
The [[Ruwet]] and [[Cumming]]'s [[example]]; getting from "he danced his did" back to the grammatically correct "He did his dance"
"it is possible to reconstitute the [[variation]]s through which the grammatical [[variable]]s pass in [[virtuality]] in order to end up as agrammatical [[expressions]]... We should avoid taking the view that the atypical [[expression]] is produced by the successive correct [[form]]s. It is instead the aytpical expression that produces the placing-in-[[variation]] of the correct forms, uprooting them from their [[state]] as [[constant]]s.
The atypical expression constitutes a [[cutting edge of deterritorialization]] of [[language]], it plays the role of [[tensor]]; in other words, it causes language to tend toward the [[limit]] of it's [[element]]s, forms, or [[notion]]s, toward a near side or beyond of language. The [[tensor]] effects a kind of transitivization of the phrase, causing the last term tor each upon the preceding term, back through the entire [[chain]]. It assures an [[intensive]] and chromatic [[treatment]] of language.
An expression as simple as AND... can play the role of [[tensor]] for all of language. In this sense, AND is less a [[conjunction]] than the atypical expression of all of the [[possible]] conjunctions it places in [[continuous variation]]. The [[tensor]], therefore is not reducible either to a constant or a variable, but assures the variation of the variable by subtracting in each instance the value of the constant (n-1). [[tensor]]s coincide with no [[linguistic]] category; nevertheless they are [[pragmatic]] [[value]]s essential to both [[collective assemblage]]s of [[enunciation]] and [[indirect discourse]]s.
[[ATP p99-2]]
[[ATP1 p1-1]]
[[Deleuze]]
[[redundancy]] is the only way of fighting against [[noise]].
The diminishing of absolute theoretical information and the struggle against noise… why are these two functions linked? Nothing would prevent absolute theoretical information from falling into pure noise if there wasn't this regulating force of redundancy, which assures the struggle against noise by diminishing the level of absolute theoretical information. So we have a first schema, a schema of redundancy, where at the top we will put “maximal theoretical information” and below “noise” and between the two “redundancy”.
And [[Martinet]] concludes: “The presence of redundancy is a way to permit the transmission of signs”, and this happens through the series of estimations of which I just spoke. Then Martinet identifies a second type of redundancy. He says: “Not only is redundancy a way to permit the transmission of signs but there is nothing to prevent it itself from becoming a sign”. There… you see how it constitutes a sign in its own right. Redundancy not as regulator of the transmission of signs - a regulatory process in the transmission of signs, or code for transmitting information - but it itself as a sign. Why is this?
He says: “It must be so that the user can seek out the redundancy for itself.” So users can look for the actual redundancy. “A means of expression for the individual, of manifestation of group consensus. We will therefore identify a principal function of combating noise, without which any communication would be impossible”. And this is our first case of redundancy.
And then there are secondary uses, which are left at the subject's disposal. Means of expression, of action upon others, of enchantment. Reducing the second type of resonance to a secondary use of the first type may be correct from the perspective of informatics, but we're not sure that what we are dealing with has anything to do with informatics. And perhaps we can even say that it isn't correct from any perspective, particularly since it actually forms part of very different systems of signs: the subjective redundancies of resonance and the signifying redundancies of frequency. It's by no means sure that they form part of the same system of signs. It's by no means sure that the latter are simply a secondary use of the former.
And there's another thing that disturbs me and that might disturb us all, but this time it's not related to the second type of redundancy but to what popular informatics tell us about the first schema. For the moment I'm only going to speak vaguely about this… because I'd like to focus on it later. So you can clearly see that what I want to say about redundancies is that we still aren't even sure what all these redundancies are. So far so good.
[[ATP1 p4-1]]
...there's also a whole [[series]] of [[semiotic]] [[component]]s that contribute to something that isn't a [[transmission]] of [[information]] but an [[expression]] of the [[libidinal]] life of the [[group]]. And this can [[express]] itself both through words and through [[mime]], [[dance]], [[tattoo]]s, [[ritual]]s and so one. This is what I call the different semiotic components...
"Amerindians" [[tribe]]s say that the only people are Amerindians... Their [[sense]] of belonging to a community of [[expression]] is [[delimit]]ed by the place where there is a [[mesh]] of the various semiotic components.
Is that an [[assemblage]]? A [[collective assemblage]]?
[a [[semiotic]] [[organization]]] we could roughly call [[diagrammatic]]. One that wouldn't be [[center]]ed around a [[black hole]],or pass by way of the mediation of a [[subject]] or relationship with another person, but through [[direct]] [[connection]] between the different semiotic [[component]]s.
[[ATP1 p1-1]]
in the [[concept]]ion of [[power]]... everyone's a [[messenger]]... it's [[language]] itself that is the messenger of a pre-existing [[order]], which nonetheless doesn't exist [[outside]] of language.
[[ATP1 p3-1]]
The maximal [[dimension]] of a [[multiplicity]] is called the [[borderline]]. It's a strange thing, this notion of the borderlines as that which allows us to define a particular type of multiplicity,a [[molecular]] multiplicity, as opposed to the [[molar]] type, which is defined through a [[structure]]ing [[organize]]ing principle that remains [[secret]], hidden.
[[ATP7 p36-1]]
Perhaps it always takes a [[monster]] to make the [[borderline]], and we have to ask ourselves why this is.
We have to think in terms of [[population]]s, not [[individual]]s.
[[power]] [[apparatus]]es are essentially [[ramify]]ed [[arborescent]] [[structure]]s.
[[limit]]-[[position]] will be on the borderline. Each mosquito moves in a random motion, to the lmit position, then hurries to re-enter the group. It can see all the others in this half-space, and moves at random until it encounters this limit position
[[ATP10 p7-1]]
...this really is [[redundancy]], redundancy of [[resonance]]. I need it to remind me of something. If it doesn't remind me of anything I'm lost.
[[ATP1 5-1]]
the lived [[line]] of the two [[face]]s, the necessary pictorial line, the musical line - and there has to be a system of [[perpetual]] redundancy from one line to another. To the point where, at this level, Vinteuil's little phrase will be ripped from the piece it belongs to. It will have a value, like a signature tune on the radio or TV. Vinteuil's little phrase springs up and Swann looks at Odette. Odette looks at Swann.
The phrase makes redundancy with the pictorial signs; it makes redundancy with the faces to the [[point]] where it becomes a [[sign]] between the two, to the point that they don't give a shit about the rest of [[Vinteuil]]'s great sonata. “Ah, my little phrase!”, Odette winks. “Do you remember our little phrase,” and he says: “Yes, the little phrase”. It's the [[system]] of [[subjective]] [[redundancy]]s.
[[ATP2 p3-1]]
A [[dilettante]] is someone who makes a [[territorial]]izing use of [[aesthetic]]s or [[art]]. He's interested in it insofar as it reminds him of something.
[[ATP2 p4-1]]
the idea of a [[face]] [[collapse]]ing, of the [[rupture]] of the [[anchor]]ing [[point]] that fixes it to the [[territory]]
[[ATP2 p5-1]]
The [[problem]] of the [[face]] and [[faciality]] is that of its [[relation]] to [[power]].
...the [[role]] and [[function]] of the face in power [[apparatus]]es... When Thorez would arrive at a meeting people would say "Ah, here's Maurice!" The first name ([[proper name]] too?) is indicative of a face...
[[portrait]]s, the face of the leader (sometimes [[despot]]) are complicit with power apparatuses
[[ideology]] doesn't exist, what exists are [[component]]s in [[power]] [[organization]]s. The face of the leader... [[polit]]al power
vs [[passional]] power and the face of the [[beloved]]
[[ATP2 p9-1]]
...isn't the [[face]] a [[knot]] of [[arborescence]]? And to enter into [[rhizome]]s, don't we have to [[undo]] the face?
...[[power]]s need, each in their own way, to [[produce]] face.
Every time a [[semiotic]]s of power will have the [[tendency]] to deny or suppress [[reference]]s of [[corporeal]]ity, [[coordinate]]s of corporeality, it will at the same time tend to replace the semiotics of corporeality with a semiotics of a wholly different nature: that of faciality
as opposed to a semiotic of corporeality, [[animal]]ity, [[collective]]ity, [[territorialize]]ation (on the next page)
[[ATP3 p3-1]]
[[faciality]] would perhaps [[become]]... a key [[element]] of [[power]] [[apparatus]]es, when power apparatuses become disembodied, [[abstract]], when they are [[deterritorial]]ized, and therefore what happens is a [[reterritorialize]]ation on the [[face]]...
When the savages disappear to the profit of the great empires... phenomena of [[desire]] in general undergo... a vast [[decode]]ing, they are literally [[decoded]].... faciality is what rises up as a means of [[overcoding]].
[[ATP3 p5-1]]
[[traits of faciality]] [[faciality]] [[faciality trait]]s [[trait]]s of faciality and their enumeration are discussed here
[[landscape]] and [[landscapity]] are on the next page
[[ATP3 p6-1]]
The [[face]] of the [[despot]] is a [[multiplicity]] of [[frequency]]. While the face of the [[beloved]], the [[passional]] face, is a multiplicity of [[resonance]]. Thus our two general types of [[faciality]] correspond to our two [[form]]s of [[redundancy]], and the reason for this is simple: faciality is on one hand the [[substance]] of the [[signifier]] while, on the other, it is the [[attribute]] of [[subjectivity]]. So it's normal that our redundancies-the way we have distinguished-are found precisely at the [[level]] of the face, as both substance and attribute of redundancy. Okay, so here we have a second grouping of things to investigate.
[[ATP3 p8-1]]
...you can't break through the [[white wall]] without [[becoming]]s
You can, however, bounce of the wall and [[fall]] into a [[black hole]]
[[ATP4 p7-1]]
..when [[face]]s come undone to the benefits of their [[trait]]s, when [[landscape]]s are unmade and no longer hold in place their traits of [[landscapity]], everything enters into new relationships, that's when the [[rhizome]] begins.
[[ATP4 p8-1]]
interesting remarks on [[regime of sign]]s and the [[bible]] [[passional]] [[despotic]] and so on...
[[ATP7 p9-1]]
To repeat... on the one hone we risk encountering: [[signifying]] [[face]], violent death or exile and trickery and [[deception]]. On the other hand, the face turning away ; life or death [[indefinitely postponed]], double turning away that determines a [[betrayal]].
[[regimes of sign]]s
[[ATP7 p31/32-1]]
...in order for there to be a [[close-up]] on something other than the [[face]], that thing has to undergo a [[process]] of [[facialization]]
[[faciality]] [[abstract machine of faciality]]
[[ATP6 p1-1]]
...the [[close-up]] either concerns [[faciality]] or produces [[facialization]]. The close-up could be... f a kettle, provided the kettle looks at me... the [[black hole]] of the kettle... something that resists the [[process]] of facialization cannot be the object of a close-up.
[[abstract machine of faciality]] [[face]]
[[ATP7 p4-1]]
...individualization is an extremely secondary [[function]] of the [[face]]. It's a distant consequence of [[facialization]] and [[faciality]].
[[ATP7 p5-1]]
Two [[face]] [[type]]s. [[despot]]ic face, anticipatory [[close-up]], [[passional]] face, [[intensive]] close up. Talked about several times over the last few pages.
[[ATP7 p7-1]]
[[facialization]] doesn't consist in transforming the cup into a man or woman but in making a [[black hole/white wall]] [[system]].
[[face]] [[faciality]] [[abstract machine of faciality]]
[[ATP7 p8-1]]
Go to edit mode in this tiddler (use the {{$:/core/images/edit-button}} button above), and after one of the paragraphs, type `[[dav`. You should see the autocomplete popup with the tiddler `Dave Gifford` listed. Hit enter, which will accept the autocomplete suggestion and will close the link with brackets.
<span class="indent1">//Note that when the popup gives you more than one tiddler to choose from, you will need to use the down arrow key on your keyboard to navigate to the other entries listed in the autocomplete popup. Once the tiddler you want to select is highlighted, you can hit enter, and that tiddler should be the one to appear in the link.<br><br>
Note that autocomplete does not work in iOS or other contexts where there is no down arrow key. At the end of the tutorial we will give instructions on how to disable autocomplete for those contexts.//</span>
Go back to viewing mode, click the link you created to the `Dave Gifford` tiddler, and follow the instructions in that tiddler.
When you are done here, return to [[Welcome to Stroll]] to continue the tutorial.
[[autologic]]al, in this sense, means that whatever is valid for my object is also valid for myself.
[[IS42]]
[[Stiegler]]
[[AS1 p8-1]]
[[autonomy]] is understood as self-governance and does not imply that a [[system]] can be separated from its [[medium]]. That would be completely unthinkable. There is no autonomy in this sense because every living system exists in a medium. What influences a system, however, is determined by its internal dynamics, which shapes these influences in quite particular ways. When the system finally dies, this means that it was incapable of keeping itself alive, that it lost its autonomy.
[[BD134/135]]
[[autopoeisis]] definition: the [[production]] "of a [[system]]s own [[element]]s by its own elements." [[TS778]]
[[autopoiesis]] By this i mean the thesis that the three criteria of autopoiesis-(i) a [[boundary]], containing (ii) a [[molecular]] reaction [[network]], that (iii) [[produce]]s and regenerates itself and the boundary-are [[necessary]] and [[sufficient]] for the [[organization]] of minimal life.
[[EE82/83]]
"[[autopoiesis]],"... the system [[state]] that serves as the point of departure for many further operations is determined by the operations of the very same system.
[[IS69]] see also [[self-organization]]
There are other types of [[consequence]]s which alter the [[strength]] of a [[verbal]] [[response]]. Behavior may be [[reinforce]]d by the reduction of aversive stimulation. When an aversive stimulus itself is reduced, we call the behavior [[escape]]. When some condition which characteristically precedes an aversive stimulus is reduced, we speak of [[avoidance]]. Thus, if the verbal response Stop it! is reinforced when it brings about the cessation of physical injury, the response is an example of escape. But Don’t touch me! may be reinforced when it brings about the cessation of the threat of such injury—of events which have previously been followed by such injury and which are therefore conditioned aversive stimuli—and the behavior is then called avoidance. When a speaker has had a history of such reinforcement, we [[control]] his verbal behavior by creating appropriate circumstances. We make him say Stop it! by pummeling him, or Don’t touch me! by threatening to do so.
[[VB66]]
[[differenciation]] also [[differentiate]]s the [[virtual]]. Each [[divergent]] [[line]] is like a [[window]] onto the [[virtual]] from the [[actual]], never being given in its [[totality]]. [[Difference and Repetition]] [103] discusses this as [[affirmation]] and not [[negation]]. [104] will also restate the content of this tiddler.
[[B99/100]]
It seems to us that [[duration]] essentially defines a [[virtual]] [[multiplicity]] (what differs in nature). [[memory]] then appears as the [[coexistence]] of all the degrees of difference in this multiplicity, in this [[virtuality]]. The [[elan vital]], finally, designates the [[actualize]]ation of this [[virtual]] according to the [[line]]s of [[differentiation]] that correspond to the degrees - up to this precise line of man where the elan vital gains self-consciousness.
[[B100/101]]
[[problem]]s are [[invent]]ed, [[solution]]s are [[unfold]]ed or [[discover]]ed.
[[Bergsonism]]
There is more in the [[Idea]] of the [[virtual]] than the [[actual]]
[[B15]]
critique of [[negation]]
...what [[Bergson]] is condemning in nonexistent [[problem]]s is the obsession in all its aspects with thinking in terms of [[more and less]]
[20] middle In short, each time that we think in terms of more or less, we have already disregarded the differences in [[kind]] between the two [[order]]s, or between beings, between [[existents]]... And conceiving everything in terms of more and less, seeing nothing but differences in [[degree]] or differences in [[intensity]] where, more profoundly, there are differences in kind is perhaps the most general [[error]] of thought, the error common to [[science]] and [[metaphysics]]
[[B17]]
[[Bergson]] shows clearly that the [[intelligence]] is the [[faculty]] that states [[problem]]s in general (the [[instinct]] is rather a faculty for finding [[solution]]s). But only [[intuition]] decides between the true and the false in the problems that are stated, even if this means driving the intelligence to turn back against itself.
[[B19/20]]
...a [[composite]] must always be divided according to its natural [[articulation]]s, that is, into [[element]]s which differ in [[kind]]. [[intuition]] as method is a method of division...
Only that which differs in kind can be said to be [[pure]], but only [[tendency]]s differ in kind. The composite must therefore be divided according to [[qualitative]] and qualified tendencies, that is, according to the way in which it combines [[duration]] and [[extensity]] as they are [23] defined as [[movement]]s, [[direction]]s of movement (hence duration-[[contraction]] and [[matter]]-[[expansion]])... We go beyond [[experience]], toward the conditions of experience... the [[condition]]s of [[real experience]]...
[[B21]]
...the whole of [[Bergson]]'s method consists, first of all, in seeking the [[term]]s between which there could not be a difference in [[kind]]: there cannot be a difference in kind, but only a difference in [[degree]] between the [[faculty]] of the [[brain]] and the [[function]] of the [[core]], between the [[perception]] of [[matter]] and matter itself.
[[B22/23]]
...it is a [[case]] of real experience in general... in all its peculiarities. And if we must broaden it, or even go beyond it, this is only in order to find the [[articulation]]s on which these peculiarities depend. So that the [[condition]]s of [[real experience]] are less [[determined]] in [[concept]]s than in [[pure]] [[percept]]s.
[[B25]]
[Bring] the [[condition]] back to the [[conditioned]] so that no [[distance]] remains between them.
[[B28]]
[[duration]] vs [[space]]
[[B30]]
[[duration]] is always the [[location]] and the [[environment]] of differences in [[kind]]; it is event heir totality and [[multiplicity]]. There are no differences in kind except in duration-while space is nothing other than the location, the environment of the totality of differences in degree.
In short, [[intuition]] has become method, or rather method has been reconciled with the [[immediate]]. Intuition is not duration [33] itself [but] the movement by which we emerge from our own duration, by which we make use of our own duration to [[affirm]] and immediately to recognize the existence of other durations, above or below us.
[[B31]]
...[[intuition]] does form a [[method]]... [a] [[problem]]atizing method (a critique of false problems and the [[invent]]ion of genuine ones), [[differentiate]]ing ([[carve]]ings out and [[intersect]]ions), [[temporal]]izing (thinking in terms of [[duration]]).
[[B32]]
[[duration]] as psychological [[experience]]... a case of "transition," of "change," a [[becoming]], but it is a becoming that [[endure]]s, a [[change]] that is [[substance]] itself.
38-two types of [[Bergson]]'s [[multiplicity]] are described
[[B35]]
[[continuous]] [[multiplicity]]s... contain the principle of their own [[metric]]s (the [[measure]] of one of their [[part]]s being given by the [[number]] of [[element]]s they contain). [[discrete]] M's found a metrical principle in something else, even if only in phenomena [[unfold]]ing in them or in the [[force]]s acting in them.
[[B37]]
[[duration]] was not simply the indivisible nor the nonmeasurable... it was that which divided only by changing in [[kind]], that which was susceptible to [[measurement]] only by [[vary]]ing its metrical principle at each stage of the [[division]]
like an [[embryo]] or [[egg]]
[[Difference and Repetition]] [[actualization]] [[actual]] [[virtual]] [[differenciation]].
[[B39]]
...it is a nonnumerical [[multiplicity]], where we can speak of "indivisibles" at each [[stage]] of [[division]]. There is other without there being several; [[number]] only exists [[potential]]ly... the [[subjective]], or [[duration]], is the [[virtual]]... insofar as it is [[actualize]]d, in the course of being actualized, it is inseparable form the [[movement]] of its actualization. For [[actualize]]ation comes about through [[differentiation]], through [[divergent]] [[line]]s, and creates so many differences in [[kind]] by virtue of its movement. Everything is [[actual]] in a numerical/[[discrete]]/the other type of multiplicity; everything is not "realized," but everything there is [[actual]]. There are no relationships other than those between actuals, no differences other than those in degree.
[[important]] [[reread]] [[Difference and Repetition]] [[differenciation]] [[actualization]]
[[B40]]
What [[Bergson]] calls for... is an acute [[perception]] of the "what" and the "how many," of what he calls the nuance or the [[potential]] [[number]]. [[duration]] is opposed to [[becoming]] precisely because it is a [[multiplicity]]... [45] not reducible to an overly broad combination... duration is not at all the same thing as the [[multiple]]...
[[B42/43]]
Critique of [[opposition]], [[limit]]s, and [[negation]].
[[Difference and Repetition]]
...[[pure]] [[movement]], which is alteration [is] a virtual qualitative [[multiplicity]]
does [[pure]]=[[virtual]] for [[Bergson]]?
[[B45]]
[[duration]] is essentially [[memory]], [[consciousness]], and [[freedom]].
[[B46/47]]
[[contraction]], [[excitation]], [[sensible]], [[quality]] are discussed as a sort of standalone [[series]]
[[B51]]
[[duration]] is indeed real [[succession]], but it is so only because, more profoundly, it is [[virtual]] [[coexistence]]: the coexistence with itself of all the [[level]]s, all the [[tension]]s, all the [[degree]]s of [[contraction]] and [[relaxation]].
[61] It is not a case of one [[region]] containing particular elements of the [[past]], particular [[recollection]]s, in opposition to another region which contains other recollections. It is a case of there being [[distinct]] levels, each one of which contains the whole of our past, but in a more or less [[contract]]ed state. It is in this sense that one can speak of the regions of [[Being]] itself, the ontological regions of the past "in general," all [[coexist]]ing, all "repeating" one another.
[[repetition]]
[[B52-54]]
discusses the remarkable points of the past, which are, of course, [[singularity]]s.
[[B60/61]]
We do not move from the [[present]] to the [[past]], from perception to recollection, but from the past to the present, from [[recollection]] to [[perception]].
[[B62]]
...we already have two aspects of [[actualization]] here: [[translation]]-[[contract]]ion and [[rotation]]-[[orientation]].
[[B63]]
[[differentiation]] as [[contract]]ion/differing [[levels]]/[[translation]], then in [[rotation]] the [[perception-image]] is shuttled to the actual by having that rotated to the [[sensorimotor]] [[present]]. There is a [[perception]]-[[memory-image]] circuit, and a 3rd part of actualization is actual [[motricity]]. [[differenciation]]/ on p69, 4 aspects of actualization are described. p70 has good handwritten margin notes. p70/71 describe the 4 momtns of actualization, then adds a fifth.
[[B64]]
[[sensation]] [[sensible]] contraction [[quantity]] is prior to [[quality]], [[sensation]]=[[contract]]ion of quantity into quality. [[matter]] is [[extended]] by being [[relaxed]] isntead of contracted
[[B64/68]]
the [[cone]] is the [[universe]] and all the [[virtual]], not just [[memory]]
[[B74/75]]
any [[flux]]/[[flow]] is necessarily a [[triad]]
81-the [[virtual]] is when the flux has not yet been [[divide]]d or [[articulate]]d into the triad
[[B77]]
[[flow]]s have 'their differences in [[kind]], with their differences of [[contract]]ion and [[expansion]][[B80/81]]
[[extension]] [[tenstion]] [[relax]]ation [[sensation]] [[sensible]]
[[B82]]
[[intensity]].. gives all the [[quality]]s with which we make [[experience]]... intensities, [[degree]]s or [[vibrate]]ons in the [[quality]]s that we live as such [are] outside ourselves and that, as such, belong to [[matter]]. There are [[number]]s enclosed in qualities, intensities included in [[duration.]]
[[B86/89]]
...[[memory]] is essentially [[difference]] and [[matter]] essentially [[repetition]].
[[B92]]
[[elan vital]]... is always a case of a [[virtuality]] in the [[process]] of being [[actualize]]d, a simplicity in the process of [[differentiate]]ing, a totality in the process of dividing up...
[[B93]]
[[differentiation]] is always the [[actualize]]ation of a [[virtuality]] that persists across its [[diverge]]nt [[line]]s
[[B94]]
...the [[rule]]s of [[actualize]]ation are... those of [[difference]] or [[divergence]] and of [[create]]ion... the [[virtual]]... must create its own [[line]]s of actualization in positive acts... it is [[difference]] that is primary in the process of actualization, the difference between the virtual from which we began and the [[actual]]s at which we arrive, and also the difference between the complementary lines according to which actualization takes place.
[[Difference and Repetition]] prior tiddler too
[[B95]]
[[evolution]] takes place from [[virtual]]s to [[actual]]s. Evolution is [[actualization]], actualization is [[creation]].
[[Difference and Repetition]]
[[B97]]
3 requirements of a [[philsoophy]] of [[life]]
[[B98]]
[[cluster]]s of [[property]]s [[example]] appears on p12.
Here I want to focus on what the [[world]] is like before [[cognition]] enters. I want to generalize from the example of the clustering of physical objects into [[rough]] kinds, and suggest some explanations of why these and other clusterings occur. Nearly always... they do not occur by chance. I will be using the name [[real kind]]s for clusters that are formed within any general [[category]] of things, within any multidimensional logical subspace. So long as this clustering occurs not accidentally [14] but for a [[univocal]] reason.
[[BC8]]
Discussion of the [[multiplicity]]-esk nature of [[cluster]]s. They may have varying [[nondecomposable]] distances, and if we compare two objects they may seem quite distant from the [[distance]]s of one cluster, yet from another there are [[transversal]] connections bringing them close together. Branchings, protrusions, shapes rather than cluster-points, [[evolution]] over time, spreading in to each other, extractions being made, [[overcoding]] is always [[possible]], etc.
p15 discusses [[time]].
[[BC13]]
[[member]]s of [[kind]]s such as living [[species]]... that are [[produce]]d by sustained re[[duplicate]]ion [[process]]es have their typifying properties in common owing to causal connections among them, coupled with support from a persistent [[environment]]. Each member of the kind has these [[property]]s partly because others have had them, or because they have been caused by things connected to one another in this fashion. These kinds could be spoken of as [[clot]]s rather than [[clump]]s for the members are, as it were, glued together... The correlated properties of these kinds repeatedly occur together in the [[actual]] [[contingent]] or historical world, but... not because there is any natural necessity for them to occur together.
These are [[historical kind]]s, the contingent kinds. Historical means an entity is located in [[space]] and [[time]]. [18]
[[BC14]]
...the existence of historical [[individual]]s and [[kind]]s is the most fundamental [[course]] of usable [[natural information]], which lies at the foundation of all [[cognition]] and [[language]] use. [[historical]] [[entity]]s-[[actual]] [[world]] entities, not [[possibility]]s-are what are at the center of cognitive life. They are the main [[structure]]s that make thought and language [[possible]]. [[meaning]]s do not carve up [[possible world]]s. They are structured and maintained almost entirely by the actual world, their degree of determinateness is [[contingent]] on actual historical [[process]]es.
[[BC17]]
[[BC20/21]] [[eternal]] [[kind]]s of individuals are things like chemical forms defined solely by natural laws.
[[real category]]es are (a certain kind of) kinds of kinds rather than kinds of individuals, and they play quite a different role in helping to make [[cognition]] possible. Suppose that we define a “[[contrary]] space” as a set of properties that are incompatible with one another, certain types of things being limited to possessing no more than one property from each such contrary space, or only one at a time or, as Aristotle put it, “in a respect.” Lengths form a contrary space because a thing at a given time can have only one length. Colors form a contrary space because a given part of a thing at a given time can have only one color. Contrary spaces have distinct dimensionalities. The contrary spaces of length and mass have one dimension each while that of color has three. (The “color cone” is three-dimensional.) A contrary space corresponds to a determinable. ''Color, shape, and mass are determinables. Individual contraries falling within a contrary space are determinates. Specific colors, shapes, and masses are determinates of these determinables.'' Specifications can be rough or more exact. There is the specification red and there are the more exact specifications crimson and 357 on the RAL color chart. Rough specifications may be considered determinables too. Red is a narrower determinable than color.
Given this terminology, we can explain “real categories” as analogs of real [[kind]]s. ''Real
kinds correspond to correlations among determinates that are found together, each characterizing many or most members of the kind. Real categories correspond to correlations among determinables that are found together'', just one determinate from each characterizing most members of the category. That is, ''each member of the category picks just one determinate from each determinable range and sticks to it''.
Thus, any individual falling in the category of individual cats has one color pattern, one volume and weight, one dam and one sire, one birthplace, one color eyes, one temperament, and so forth, but not one posture or one mood or one sibling. Each member of the category of individual mammalian species has one rough shape, either a tail or no tail, a rough metabolism rate, a rough weight, teeth of a certain kind, sensory organs of a certain type and acuity and so forth, but the members do not share one birthplace or one very exact size or, in some cases, one color. Thus, ''while real kinds determine a likely set of answers about various properties for each of their members, real categories determine only a set of questions that can be answered determinately about each of their members. The members of a real kind have various determinates in common; the members of a real category have various determinables in common, each having a stable value for each category member.'' Real categories, as will be explained in later chapters, make possible the use of meta-[[induction]]s, by which it is possible to predict which properties are likely to be stable within a certain variety of real kind and which are instead likely to be variable.
[[BC21]]
Some other real categories are dances, books and musical pieces, diseases, clubs, ceremonies, countries, grocery stores, monetary systems, and so forth. What is becoming apparent as we move to these examples, however, is that the distinction between real kinds and real categories, like the distinction between determinates and determinables mentioned above, is relative. Discovering that something is a dog may convey a great deal of very reliable specific information to you, especially if you are a veterinarian. It may also convey to you a great many specific questions that might sensibly be asked and answered about that particular dog, questions that would not be sensible to ask, for example, about an individual butterfly or a book. Dogs and books are real kinds but are also “impure” real categories depending on which direction you are looking. Entirely pure categories like the categories of macro physical objects and of chemicals are few.
Like [[real kind]]s, [[real category]]es should be thought of as clumps or clusters, not classes. They do not always have sharp edges or clear centers. This should be obvious from the fact that real categories are often just real kinds (are coextensive with them), but facing the opposite direction, as it were, toward their characteristic [[determinable]]s rather than their characteristic [[determinate]]s.
[[BC24/25]]
Names become attached to individuals, [[real kind]]s, properties, and so forth through conventions, that is, through the setting and following of precedents. Each precedent follower repeats what was done before, but “what was done before” can be interpreted in different ways. Stabilizing these precedents are the clumps and peaks in the natural world which make [[cognition]] possible by supporting induction. [[names]] are constrained in their applications by attraction to these [[cluster]]s as wholes, or by attraction to prominent landscape features of these clusters such as ridges, bumps, and branches. Because these words are not tethered to any necessary properties or descriptions but to these clusters as wholes, they are directly referential, providing no foundation for an analytic/synthetic distinction. The understanding that [[language]] imparts to an [[interpreter]] is idiosyncratic, depending on the interpreter’s prior knowledge of the world itself. Words do not create boundaries where there were none before but exploit the [[clump]]y though often unclear structure that the world presents. Words for properties are anchored to property peaks that also mark no determinate boundaries. Where boundaries are not determinate the use of words may migrate from one place to another or into wider or narrower channels. Language has an inevitable tendency to shift with context and to change over time.
[[BC26]]
Where tokens of linguistic forms appear as parts of complete conventional patterns of a kind that tend to reproduce themselves in the above symbiotic way, I will speak of “Normal” uses of these tokens, capitalizing the “N”. 2 For example, a Normal use of a descriptive linguistic form, a use of the kind that encourages reproduction of the syntactic and semantic mappings used and of the hearer’s understanding and response, includes a knowledgeable speaker’s production of a true descriptive sentence translated by the hearer into a new or reconfirmed true belief. Insofar as this essay is concerned with language, it will be concerned almost entirely with Normal usage. For what we want to understand is how language works when it is alive and reproducing itself, not when it is tending to destroy or to change itself. Unless I say otherwise, when talking about language, I will have in mind Normal usage.
[[Millikan]]'s ideas in this section on how languuae interacts with non-linguistic reality is quite similar to postulates of linguistics and [[assemblage]]s.
[[BC27]]
[[real kind]]s make themselves easily available to [[cognition]] by being [[recognize]]able, usually, in diverse ways and under diverse [[condition]]s.
[[BC29/30]]
Anything that the compositional structure of language conveys beyond naked facts such as that this has this [[property]] and relates thus to that in this manner is not something that the language itself carries but something that hearers construct or reconstruct on the basis of their prior understanding of actual-world structure. What goes for “pet fish” goes equally for “pet” and for “fish.” Any properties that they prototypically have are not dictated by an understanding of the language but by those forces in the world that have been responsible for clumping each together. Put another and perhaps more familiar way, for the most part there is no analytic-synthetic distinction. Understanding [[language]] and knowing about the world cannot be pried apart or layered.
[[BC33]]
[[assemblage]]
[[proper function]]s are effects of [[device]]s that have, to speak strictly, been retained (not designed) despite [[selection]] pressures and that continue to be duplicated or reproduced because they are [[producing]] these [[effect]]s. [[eigenvalue]]
[[Beyond Concepts]]
[[natural sign]]s ([[pattern]]s of structured [[energy]]s) proximally available to ordinary [[perception]], are hugely various in [[structure]], tend to have [[form]]s that are highly [[ambiguous]], and tend to [[dissipate]] close to their [[source]]s...
A [[unitracker]] is the [[mechanism]] or [[faculty]] for same-tracking something, for recognizing when incoming [[information]] concerns it, then linking and storing this information together as information about one and the same thing. Only then can it be brought to bear together on [[inference]] and [[action]]. The [[link]] connecting stored information about the same thing together is a [[unicept]].
[[BC6]]
Both [[unicept]]s and [[unitracker]]s are [[particular]]s. You and I do not have any of the same unicepts or unitrackers. What we have in common is unicepts and unitrackers for many of the same things. The same [[word]] may engage different kinds of unitrackers for different competent interpreters.
[[BC7]]
That an external [[observer]] is able to [[correlate]] features of the world outside (e.g. the presence of a worm) with the activities of an organism does not prove that the organism actually uses these features in order to orientate its [[behavior]] accordingly.
[[quote]] [[experiment]]
I understand the way the [[nervous system]] operated, i.e. its operation with internal correlations
[[BD97]]
Furthermore, it becomes apparent that every experiment contains a particular view of the world, a complete [[epistemology]], or [[cosmology]], a bundle of expectations and premises, which guide our operations. One day, however, I realised that my expectations might possibly never be fulfilled because a correlation between the external stimulus and the internal reaction just could not be established. Only then I began really to appreciate Roger [[Sperry]]’s experiments and their hidden epistemology, and to envisage the [[nervous system]] of an organism as a [[closed system]]. That was the turning point which gave my thinking a new direction
[[BD102]]
POERKSEN: What, then, is a [[color]]?
MATURANA: It is nothing external but something happening in an [[organism]] – merely released by an external source of light. A colour is what we see, what we [[experience]]. The colour designation refers to the particular experience of an individual in certain situations, which is independent from the given spectral composition of light. My approach was to compare the activity of the nervous system with the activity of the [[nervous system]], to relate the activity of the nervous system to itself, and to view it as a [[closed system]]. My focus was on internal [[correlation]]s.
[[experiment]]
[[BD105]]
POERKSEN: How would you describe what is going on? What happens, in your view?
MATURANA: When light reflected by an object that the observer describes as external reaches the retina, an activity is initiated that is enclosed in the structure of the [[retina]] itself (and not in the structure of the source of light, nor in the structure of the [[world]]). The external world can only [[trigge]]r such changes in the [[nervous system]] of an organism as are determined by the structure of the nervous system itself. The consequence is that there is no possible way, in principle, for the external world to communicate itself in its primordial, true form to the nervous system. [[SDS]]
POERKSEN: What does this mean? How does this abandonment of the idea of information processing inspire or even compel us to think and speak differently about the external world, the organism, and the nervous system?
MATURANA: Our approach changes completely. We can no longer accept [[description]]s of the nervous system as a system that [[compute]]s [[representation]]s of an external world and processes [[information]] coming in from outside, which then results in adequate [[behavior]] and appropriate reactions of the organism. The nervous system now appears as a [[structure-determined system]] with its own specific mode of operation. Any change in it is only triggered but neither determined nor specified exclusively by the features and properties of the external world. It computes nothing but its own [[transformation]]s from state to [[state]]. People who accept this insight must draw a strict conceptual [[distinction]] between the operations taking place inside the nervous system and all the processes occurring outside it. They must also be quite clear about the fact that there is no inside and no outside for the [[nervous system]] but only a perpetual dance of internal [[correlation]]s in a closed [[network]] of interacting [[element]]s; inside and outside exist for the observer but not for the system itself.
[[quote]]
[[BD108]]
MATURANA: Once again I have to reject this classification of my views as solipsistic. Again: as the [[observer]] that I am, I do not at all deny the experience of an external world, nor the [[experience]] of common discourse and the experience of other people’s existence. I vehemently deny, however, that the operations of the [[nervous system]] can be related to this external world and its features in any meaningful way or that they can be derived from them. The nervous system operates as a [[closed system]] of changing [[relation]]s between [[neuron]]al [[state]]s of activity that continually lead to other changing relations between [[neuronal]] states of activity. For its operation as a system, nothing else exists but its own internal states. Only observers can distinguish between inside and outside or input and output and can, consequently, diagnose the impact of an external [[stimulus]] on internal processes and the organism or, conversely, an impact of the [[organism]] on the external world. What is described [112] as adequate behaviour is the result of a relation established by observers. They have related the features of an external world to the organism and its nervous system although these external features are not part of the operations of the organism nor of its [[nervous system]].
[[quote]]
[[BD109]]
Once we have accepted that there is no possibility of making testable claims about an [[observer]]-independent [[reality]], the fundamental change in our [[epistemology]] has been completed. All forms of observation and explanation are now expressions of the system’s operations with whose production we may now deal. A re-orientation has come about, a change from [[Being]] to [[Doing]], a transformation of the classic philosophical questions.
POERKSEN: The assumptions of the closure of the [[nervous system]] and the external viewpoint of the observer imply, if I understand correctly, the distinction of two perspectives of observation. On the one hand, observers describe external impingements upon a system and construct correlations between stimulus and response, input and output, cause and effect. On the other hand, the system operates – independently of external influences – in its own specific manner.
MATURANA: That is it. The phenomenal [[domain]] of physiology and internal system dynamics does not intersect with the domain of [[behavior]] and observable movements in an environment. These domains cannot be reduced to each other, nor can the [[phenomena]] of one of the domains be derived from the other.
[[quote]]
[[BD111/112]]
On certain occasions I use the example of an instrument flight when I want to explain the difference between the internal operational dynamics of a system and what happens in the [[domain]] of [[interaction]]s of the system as a [[whole]]. Imagine pilots sitting in the cockpit and flying a plane in complete darkness. They have no immediate access to the external world nor do they need it, they act on the basis of measurement values and indicators, employing their instruments when the values change or particular combinations of values emerge. They establish sensorimotor correlations in order to keep the relevant values within specified limits. When the plane has landed, friends and colleagues may appear who have observed the plane arrive, and congratulate the pilots on their successful and admirable landing in thick fog and dangerous storms. The pilots are confused and ask: “What storm? What fog? What are you talking about? We just handled our instruments!” You see: What happened outside the plane was irrelevant and without meaning to the operational dynamics inside the plane.
[115]
Only one condition permits us to perceive our own blindness: We must be able to see and to know, and we must, therefore, no longer be blind when we gain insight into our own blindness. However, this is not the point of the [[example]]. For the pilots just working their instruments in the situation described, the so-called limits of knowledge do not exist at all. The crucial thing is that only [[observer]]s can speak of [[limit]]s because they have access to their own domains and to the domain of the internal operational dynamics of the cockpit. They have to use their double look and compare what happens inside the cockpit with the circumstances in the external world and then relate what they have seen in the two different domains in another domain generated by themselves. All that observers can say is the result of this double look. [d1 <-> d2 generates a novel domain; compare the circular wheel, linearity of pavement and generation of movement example]
How can these observers know that they themselves are not sitting in some cockpit containing a world in which pilots sit in cockpits that may be observed through double look?.. Under this condition only they would be able to establish the limits of knowing, with the necessary consequence that they would have to declare themselves realists believing in some objective realities. I would claim, however, that these observers are comparing two different domains of distinction, not a real world with a merely fabricated world. They see the pilots at work inside, as if through a peephole in the wall of the plane, whereas from outside they see the plane as a whole in relation to its domain of operation.
[[BD112]]
There are, in fact, two different perspectives of observation that naturally generate different descriptions. Still, the two conceptions are not equally valid. If one wants to find out how the [[nervous system]] operates on the assumption that it is an [[open system]], one has chosen a misguided approach. Observers will believe, accordingly, that its mode of [[operation]] is dependent on its [[input]]. What they define as external [[stimuli]] in the environment will gain enormous importance and make them overlook the internal dynamics of the system and to confuse the domain of their descriptions with the domain of the internal dynamics of the system.
Such a confusion of [[domain]]s cannot offer an adequate explanation of the mode of operation of the nervous system. – If we, however, view the nervous system as a closed network we can understand its mode of operation and recognise how structural changes in an organism that is in correspondence with its [[medium]] will lead to structural changes in its nervous system and ultimately to changes in its [[behavior]] [[SDS]]. We need, therefore, no longer speak of the flow of [[information]] but instead, when observing an organism in its environment, ask ourselves how the strange structural [[coupling]] between the activities of the nervous system, the [[body]] of the organism, and the external circumstances functions in detail. [[quote]]
[[BD114/115]]
[[closure]] is not a physical concept but characterises the [[self-referential]] working of an internal dynamics. The processes recurring in a particular [[domain]] remain in this domain; we are dealing with the operations of a system that determine its [[boundary]]es and make it a determinate [[entity]]. Therefore, by closure of the nervous system I mean that its [[state]]s of activity always lead to other states of activity and are triggered by states of activity, and that all these diverse states of activity remain within the network of neuronal elements.
[[cognition]] is the observation of adequate [[behavior]] in a particular [[domain]], not the representation of an independently existing [[reality]], nor a process of computing according to the conditions of the environment. When an animal or a human being behave adequately and are in coherence with their circumstances, and when observers come to the conclusion that there is adequate behaviour in the situation they [[observe]], then these observers will say that the animal and the human being in question possess knowledge, that they manifest cognition. Knowledge is, in other words, behaviour in a particular domain, which is judged adequate by observers.
[[BD117]]
POERKSEN: Your description of the circularity of the cognitive processes leads to a circular definition of [[cognition]] and knowledge, which mirrors the whole architecture of your theory. Cognition is understood and established by [[observer]]s; [[knowledge]] appears as an observer-dependent product, not as something objective.
MATURANA: This is the idea, quite. Observers interpret the [[interaction]] of [[organism]]s with their environments in such a way as to diagnose adequate [[behavior]], and observers [[attribute]] knowledge to the observed systems and evaluate their actions as indicating cognitive operations because they consider them adequate and appropriate. The maintenance of [[life]] is an expression of knowledge, in this sense, a manifestation of adequate behaviour in the domain of existence. In the form of an aphorism: In the living of living beings living entails knowing, and knowing entails living.
[[quote]]
[[BD119]]
POERKSEN: Perhaps we should put aside, for the moment, further illustrative [[example]]s and turn to the vital problem of the new [[concept]]s and the new kind of [[language]] that are definitely needed now to express what is traditionally called [[stimulus]] and [[input]] and is supposed to control the [[behavior]] of living beings. Terms of this kind, although still widely current in our everyday thinking, can no longer be used because they obviously imply direct and monocausal influence.
[128]
MATURANA: That is correct. The [[mistake]]n concept of instructive [[interaction]] must be corrected by an alternative idea: Whatever happens in a living being is determined by its structure and not by the [[structure]] of the external agent. From the perspective of the commenting [[observer]], I speak, therefore, of [[perturbation]]s to which a living being is subjected. The observer perceives some [[entity]] that, in his view, impinges on the system and [[trigger]]s structural changes in it that do not lead to the destruction of the system but permit it to preserve its [[organization]]. This form of encounter I call perturbation. Another possibility is that the system loses its identity and falls apart. In this case, a destructive change has taken place [[SDS]]
[[BD120]]
Two [[system]]s can encounter each other only on the level of their [[structure]]s; and their specific structures – the [[component]]s and the [[relation]]s between these components – determine what happens in each system due to this [[encounter]]
[[BD127/128]]
POERKSEN: If I had to reduce our conversation about structural determinism to one conclusion, it would be this: systems are autonomous; one can invade them only according to their own specific conditions but not determine what occurs and happens inside them. Would you agree?
[135]
MATURANA: I would agree as long as [[autonomy]] is understood as self-governance and does not imply that a [[system]] can be separated from its [[medium]]. That would be completely unthinkable. There is no autonomy in this sense because every living system exists in a medium. What influences a system, however, is determined by its internal dynamics, which shapes these influences in quite particular ways. When the system finally dies, this means that it was incapable of keeping itself alive, that it lost its autonomy.
[[BD132/133]]
People making predictions speak of their [[expectation]]s as [[observer]]s. They believe that they know all the factors influencing a system and assert that certain [[state]]s will result from other states that we can then observe. Living systems, however, are not calculable in this sense although they operate in a structure-determined way. Structural determinism does not entail predictability but is related exclusively to the structural coherences of the moment, which change all the time. By the structure of a system I mean, let me recall, the components and the relations between these components, which make it a particular kind of system. When the [[component]]s or their [[relation]]s change, the [[structure]] is transformed. If you slide around on your chair, then you change your structure; if you speak or keep silent and listen, then your structure changes. It is not rigid and firm but in constant change.
[[SDS]] [[nontrivial]]
[[BD134/135]]
our [[encounter]]s take place in a [[domain]] of [[interaction]]s that must be clearly distinguished from the operational [[domain]] of our [[nervous system]]. When we make appointments and meet, we act as [[organism]]s, as [[whole]]s in a sphere of relations. Our meetings do not take place on the level of the internal operations of the nervous system; that is certainly not the place where we meet.
[[quote]]
[[BD143]]
MATURANA: As human beings, and as the mammals that we are, we share the property of enjoying the company of others, [[conversation]]s and communal action, – and so we keep returning to these enjoyable forms of communality in our everyday life. The fact that we are [[closed system]]s is irrelevant in the [[domain]] of [[interaction]]s; we remain lonely inside but together we create a [[domain]] in which our encounters take place. Our conversations take place in the [[flow]] of interactions, in a domain that must be distinguished from what goes on inside us.
The mistake is to confuse two domains that must be kept distinct, and to try erroneously to connect what happens inside the [[nervous system]] with the events in the domain of social relations. That cannot work because each of the two domains must be considered separately. Therefore, the [[closure]] of the nervous system and the fact that we are able to make appointments do not contradict each other at all.
[[BD148]]
MATURANA: Here is a little [[analogy]]. Imagine you buy a new pair of shoes and begin wearing them from time to time. A year later, your feet and your shoes will inevitably have changed. They are no longer the same. The shoes have become much more comfortable although they have not in any way mingled with your feet; shoes and feet still exist as separate and closed [[entity]]es. Their [[boundary]]es are clearly recognisable and have not become permeable for each other in any way. The comfortable feeling due to the continual use of the shoes is not the result of an opening of the two distinct systems; it simply arises in a different [[domain]]. [is it the genesis of a new domain? a [[passive synthesis]]?]
MATURANA: The central point is that foot and shoe, to stay with this ordinary example, both have a [[plastic]], [[variable]], [[structure]]. It [[transform]]s itself depending on the recurring and [[recursive]] [[interactions]] – and therefore foot and shoe can change together and in mutual correspondence in the course of time. The degree of congruence increases. This mutual change requires, however, that the shoes are used with certain regularity and [[frequency]], and that there is a certain comfortable feeling that invites us to put them on more often. I claim that we can describe the [[encounter]]s between human beings and other animals in the same way as the interaction between feet and shoes. The congruent changes – that is the whole secret – are the simple result of recurrent and recursive interactions between systems. These interactions [[trigger]] mutual structural changes that do not affect the [[organization]] of the systems.
[[BD150]]
POERKSEN: What we have now is a theory of [[interaction]], which does not contradict the fundamental [[autonomy]] of the systems and necessarily excludes any kind of reductionism. Keeping different [[domain]]s and the [[phenomena]] arising in them [[distinct]] makes it impossible, if I understand you correctly, to play the game of [[reductionism]] – this is really nothing else but that.
MATURANA: Exactly. And suddenly it is possible to perceive phenomena which do not take place inside a system but in the domain of its [[relation]]s, although they are, of course, in no way independent from the internal features of the interacting systems. Just look at the microphone through which our conversations are recorded. It is standing on the table on the tablecloth. When you pack it away this evening, we will both notice a slight indentation in the tablecloth due to an interaction. The indentation in the cloth is neither an internal feature of the microphone nor of the cloth but is certainly dependent on the characteristics of both – and belongs to the domain of their relations. If we apply this to living systems, we can say: The [[nervous system]] and the whole [[organism]] may be closed, but if they have a [[plastic]] [[structure]] that changes in the course of the interactions they undergo, then a history of relations may unfold that does not intersect with the internal dynamics of the nervous system or the organism (and vice versa).
[[BD151]]
POERKSEN: How would you describe in your language what happens between us? What happens when we meet, talk to each other, make further appointments, and then continue with our discussions?
MATURANA: In my terminology I would say that the [[recurrent]] and [[recursive]] [[interaction]]s [[generate]] structural [[coupling]]. With this term I want to refer to the history of mutual structural changes that makes it possible for a consensual [[domain]] to emerge, a [[behavior]]al domain of interlocking and reciprocal interactions between two structurally [[plastic]] [[organism]]s. With regard to our interview: We keep meeting and, therefore, are not only in recurrent, constantly repeated interaction but also in recursive interaction. Our conversations form the basis for further conversations, the [[element]]s of our conversations refer to themselves and build on each other, – and that is [[recursion]]. Our meetings [[trigger]] structural changes inside each one of us, and they continue as long as we move in the dynamic congruence that leads to structural coupling. Structural coupling arises if the [[structure]]s of two structurally plastic systems change through continual [[interaction]] without destroying the identity of the interacting systems. In the [[flow]] of such coupling, a consensual domain is formed: a behavioural domain within which we act together and in reciprocal correspondence; the changes of state of the coupled systems – more generally – are reciprocally [[condition]]ed through interlocking sequences.
POERKSEN: These three [[concept]]s, – recursive and recurrent interaction, structural coupling and consensual domain – contain answers and problems. However: What [[problem]] do they solve? What [[question]] do they answer?
[[BD153]]
MATURANA: For me these [[concept]]s are [[element]]s of an [[answer]] to the following [[question]]: How is it possible that we, as closed, structure-determined systems, can interact in a harmonious way? As all systems are [[structure]]-determined, an external agent cannot determine what happens inside them. The change is [[trigger]]ed by the perturbing agent but determined by the structure of the [[perturb]]ed system. Instructive interactions are impossible. Of course, an external impact may lead to the disintegration of a system by destroying its [[organization]]. It is also possible for the systems – due to structural change – to lose contact. They may, however, continue interacting by preserving some form of cohesion and maintain their organisation. Here we are concerned with the last variant of interaction. [[SDS]]
POERKSEN: What is the foundation of such an [[encounter]], of such continual contact between systems?
MATURANA: There must be some structural [[congruence]]. To use another everyday example: If you want to enter a locked room without breaking the door open or destroying the lock, you will need the right kind of key to gain access to the new domain. I would say, therefore, that lock and key must have a congruent structure
[[BD154]]
We live as if we had in some way a direct or an indirect access to that which we call [[reality]] to validate our statements or explanations. Yet, we commit [[mistake]]s. We say that we learn through our mistakes, but we punish others, whoever they may be, politicians, children, scientists, parents, philosophers… for the mistakes that they commit. What does this reveal? We treat mistakes as serious failures in our behaviour that reveal a guilty blindness in front of a reality that we should see because we have the ability to do so.
[[From Being to Doing]]
But of what we are not all aware is of the fact that to the extent that natural and artificial “things” operate according to how they are made, we cannot specify by acting on them what happens to them, and all that we can do is to [[trigger]] in them changes that arise determined by the manner they are made. We as living systems are not an exemption, as molecular entities we are like all other molecular entities, and what happens to us at any instant is determined in us by the way we are made at that instant, and not by the external agents that impinge upon us. [[SDS]]
When I became conscious of the fact that external agents do not specify what happens in us, and that they only trigger in us changes determined by the way we are made, I asked myself, what is to know then? How will anything external to me tell me anything about itself if what I see, hear or accept, is determined by the way I am made? In these circumstances the [[question]], what is to know? has to be answered accepting as part of our natural existence the fact that nothing external to us can tell us anything about itself.
I also think that one does [[science]] whenever one proposes a process that would [[generate]], as a consequence of its operation, some experience that one wants to explain. This book is also the history of some philosophical reflections and of the scientific answers to which the questions that arose from those reflections.
[[BD20]]
Human life occurs in daily living. This statement sounds obvious, and it is so. Yet, by saying it I want to emphasise that all our activities, regardless of whether they are homely, artistic, professional, or technical, are only particular cases of our daily living, and do not entail anything different from what we do in our home chores other than the special features of the relational and operational spaces in which they take place, or the different purposes, aims or desires under which we do what we do. This book is a reflection about how we do whatever we do, and about the history of how the various notions presented in it arose in the course of my daily living in the attempt of understanding how we see, how we hear, … and in general how we know what we claim to know.
Somehow I was not interested in essences. I did not want to know how things were in themselves. I wanted to know how they happened.
[[event]]s [[Deleuze]] [[Difference and Repetition]]
[[BD23/4]]
I lived in doing. I saw in doing. I thought in doings. [[event]]s [[enaction]]...
[[living]], [[perception]], and [[cognition]] as a feature of the continuous flow of the living of living systems in general, and of us human beings in particular... although this book does not contain the history of a scientific quest, it tells of the history of the expansion of the understanding of life and of humanness that takes place when a biologist accepts as a matter of daily experience that all that living systems in general, and all that human beings in particular, do and experience takes place in the realisation of their living as living systems, and thinks that life, cognition, and consciousness are biological phenomena to be explained as such with the features of the [[coherence]]s of living without additional assumptions.
[[BD26]]
I began asking [[question]]s such as “How do we do what we do as we do whatever we do as human beings?” or “How do we know what we claim that we know?” or “How do we operate as observers making the distinctions that we make in any domain?”
[[BD28]]
a metaphysical attitude that does not arise from the a priori acceptance of the existence of a transcendental reality is not concerned with the [[essence]]s, but instead accepts that all that a human being does arises through his or her [[body]] dynamics in the conservation of living in [[interaction]]s with the [[medium]] that makes it possible. From such a metaphysical attitude the body and the body dynamics are recognised by the observer as the fundament of all that the human being does, and the observer asks the [[question]]s mentioned above under the general form of “How do we do what we do?” in the full acceptance that our existence as human beings occurs in our relational space in the realisation of our body dynamics. In fact, the implicit or explicit acceptance that we exist as human beings doing whatever we do in the continuous conservation of our human living through our body dynamics is the basic understanding that leads one to abandon the metaphysics of the transcendental reality adopting a new one that takes as starting point for any explanation or rational argument the acknowledgment that we are living systems and do all that we do in the realisation of our living. In this metaphysical view our biology is our condition of possibility. And as a matter of fact it cannot be otherwise since the observer disappears as his or her bodyhood is destroyed. [[SDS]]
[[BD30]]
I had to abandon the notion that the [[observer]] existed by itself as an ontologically independent entity, and I realised as well that the [[question]] I was asking was about my own operation (How do I do what I do in the domain of seeing?), and that my operations were at the same time what I had to explain and my instruments of explaining them.
[[quote]]
I had to explain the observer (myself) and observing (my doing observing) operating as an observer observing, and I had to do so without any ontological assumption about the observing while accepting that the observer arose in its operation as an observer and did not pre-exist its own self-distinction. The task that I began was a circular task and I wanted to explain what occurred in this peculiar circularity (I wanted to explain knowing through knowing) without coming out of it... I moved from the traditional metaphysics that assumes that the world we live pre-exists our living in it, to one in which the world we live exists as it arises with our doing it.... [37] In fact I found myself doing this metaphysical shift in the process of explaining the manner of operation of the nervous system in the phenomenon of perception, and before I became aware that in doing so I acted accepting as a matter of course that I, the observer that was doing the explaining, did not pre-exist to his or her own distinction of himself or herself operating in the observing.
[[BD32]]
The doings of daily living are primary in the sense that whether we like it or not they are our starting point for whatever we do or whatever [[reflection]]s we make. We explain our living with the [[coherence]]s of our living. However, that we do so does not constitute a circular argument because an explanation does not replace what it explains. Explanations only tell what should happen for that which is explained to arise as a result. So, the explanations of the observer and of [[observing]] do not replace the [[observer]] or observing, they only show what processes should take place for an observer and its operation in observing to arise, as well as how the observer and the observing would arise if the conditions that give rise to them and to their operation were to take place.
[[BD35]]
Moreover, scientists frequently argue that their explanations are supported by laws that are a reflection of the [[coherence]]s of nature as an objective [[domain]] of [[process]]es that exists fundamentally independent of what he or she does, and they are not aware that the laws of nature are abstractions of the operational coherences of their living. [[quote]] [[science]]
[[BD40]]
all that is good in [[human]] [[life]] belongs to the domain of what is not permanent, and it is in that domain that love exists as our fundament as human beings, and as our source of well-being.
At the end I wish to express my acknowledgment and thanks to Beatriz Gensch, my [[wife]], for the many conversations that we have had on matters of aesthetics, philosophy, and spiritual life, conversations that have expanded my understanding and enriched my daily living in all dimensions and have brought well-being to me in all that I do. Yet, I want above all to acknowledge that it was through these conversations with her that I became free to talk about love as a scientist.
[[quote]] [[science]] [[love]]
[[BD42]]
POERKSEN: A few pages into your by now legendary paper, [[Biology of Cognition]], we come across a treacherously innocent statement that appears to me to be of central importance to your whole work: “Anything said is said by an [[observer]].” What does this mean?
[[quote]]
MATURANA: What is said can under no circumstances be separated from the person saying it. There is no possibility of validating one’s own assertions with regard to an [[observer]]-independent reality the existence of which is, in addition, considered as evidently given. Nobody can claim to have privileged access to an external reality or truth.
[[assemblage]] [[utterance]] [[ANT]]
[[BD43]]
this [[distinction]] is unhelpful, and I would like to show to what extent all [[observer]]s are part of their observations.
The very assumption that this external reality exists independently from us will immediately show itself to be a fundamentally absurd and nonsensical notion: it cannot be validated in any way.
How can we claim to know of the existence of that absolute reality and at the same time assert its unknowability? This is just an absurd kind of conceptual acrobatics because any talk about that supposedly independent reality is inevitably dependent on the persons talking.
[[BD45]]
When I insist, however, that everything said is said by an [[observer]], I put the spotlight on another key question, which changes the whole traditional system of philosophical discourse about [[reality]], [[truth]] and the [[essence]] of being. This question is no longer concerned with the investigation of an external reality that is taken to be given and to exist independently from us. It is the [[observer]] whose [[operation]]s I want to understand by operating as an observer; it is [[language]] I want to explain by living in language; it is speaking I want to describe more precisely by speaking. In brief: There is no way of approaching what we want to explain from outside ourselves.
The [[observer]] [[observe]]s, sees something, affirms or denies its existence, and does whatever he does. What exists independently from him is necessarily a matter of belief and not of certain knowledge because to see something always requires someone who sees it.
[[BD47]]
My claim is even stronger: The observer is the source of everything. Without the observer, there is nothing. The observer is the foundation of all knowledge, of any assumption involving the human self, the [[world]] and the [[cosmos]]. The disappearance of the [[observer]] would mean the end and the disappearance of the world we know; there would be nobody left to perceive, to speak, to describe, and to explain.
[[BD48]]
POERKSEN: ...the [[perception]]s of [[observer]]s are dependent on their [[distinction]]s... Would you agree with the [[solipsis]]ts?
MATURANA: No, not at all. The simple reason is that I do not experience myself as alone and isolated. On the contrary, I [[experience]] myself sitting in this house together with you and the two of us talking to each other. It is this sort of experience, whether my own or someone else’s, that forms the point of departure of all my further reflections and explanations. Therefore, I cannot take a solipsistic position; such a categorisation of my thinking would be totally misleading.... However, we must now raise the [[question]] of how we can explain the experience of being together with someone else if we cannot [[distinguish]] anything that is independent from us. The answer for me is that [[language]] is a way and manner of living together. – Who is living together? My reply: [[human]] beings. The next question is: What are human beings? I say: Human beings are those special entities that are distinguished in the process of human beings living together. Again, we find ourselves in a circular situation. For me, a human being is not an ontic or ontological entity, an entity existing a priori.
[[BD50]]
To be able to classify an [[experience]] as an [[illusion]] requires that this experience can be related to something else that is not experienced as illusory at the same time. I can only repeat: My starting point is my experience, and that means, all that I experience and [[distinguish]] as perceivable events at a certain point in time. I am not concerned with the existence or the properties of an external [[reality]], nor with the defence of solipsism or any other kind of epistemology. I want to understand and explain the operations that [[generate]] and [[form]] our experiences. In the very act of explaining these operations it becomes evident that we emerge ourselves as the objects and entities we describe.
[[von Foerster]] and his epistemology essay
[[BD51]]
[56] it would be a total misunderstanding to believe that I am proposing or in any way recommending constant [[self-observation]] simply because I am speaking about the operation of observing...
POERKSEN: A terminological point: What, in fact, is an [[observer]]? How would you define the concept?
MATURANA: [[Observing]] is for me a [[human]] operation that requires [[language]] together with the [[awareness]] that one is engaged in observing something. A cat just eyeing a bird does not to me appear to be an observer. It simply watches the bird and, as far as we know, is incapable of commenting on its action or asking itself critically whether it is acting in the right and proper manner; this cat may, from our point of view, behave adequately or inadequately, but it does not reflect its own behaviour. Only human beings can do this. [[second-order]]
POERKSEN: Observing is self-reflection.
MATURANA: Exactly. Observers act in self-awareness, when they use a [[distinction]] in order to [[distinguish]] something; they are mindful when they see and perceive something. Somebody who is simply looking out the window I would not consider to be an observer. The consequence, therefore, is that most of the time in our lives we do not operate as observers; we just carry on without bothering to examine what we are doing.
[[BD53]]
POERKSEN: In your books you speak about a standard [[observer]] and a [[super-observer]]. Do you mean to suggest that there are different degrees of understanding?
MATURANA: No, this [[distinction]] must be interpreted differently. When I formulated it, I was possibly grappling with the description of operations of observing that are identical but nevertheless differ in a certain way. Whenever we observe something, we are all standard observers. However, as soon as we ask ourselves what we are actually doing in that moment, we find ourselves in a different situation and position, although, of course, remaining standard observers; we might say that we become [[meta-observers]]. Such meta- or super-observers treat themselves as objects and observe – operating as observers – their own observations. [[self-observation]] [[self-reference]] [[second-order]]
POERKSEN: “Objectivity is a subject’s delusion,” we read in an address by the biophysicist Heinz [[von Foerster]] to the American Society for Cybernetics, “that observing [59] can be done without him. Invoking objectivity is abrogating responsibility – hence its popularity.” You worked with Heinz von Foerster in the late sixties. How do you interpret these statements? [[quote]]
MATURANA: They deal with the belief that observations can be separated from what is observed, that the person of the observer is marginal and can easily be replaced because observing is a simple process of merely registering what is happening; the observer’s own actions are lost sight of. What is used to confirm some statement comes from outside, it is related to reality or truth. The foundation of any judgment appears to be external to the person of the observer. The usual conclusion is, therefore, that no one can be held responsible for those judgments, as they seem to have nothing to do with personal predilections and interests.
POERKSEN: It seems to me that your reflections point in the opposite direction: We become aware of our responsibility for our perceptions and our claims.
MATURANA: Correct. Becoming aware that one is doing the observing, and then being aware of being aware that it is oneself who makes the distinctions, one attains a new [[domain]] of [[experience]]. Only becoming aware of one’s awareness and understanding one’s understanding can give rise to the feeling of responsibility for what one is doing... Once this has been understood, one cannot pretend any longer to be unaware of one’s own understanding if one is actually aware of it and is also aware of this awareness. Moreover, the concept of the observer is a challenge to study the operation of observing and to face up to the circularity of the understanding of understanding. It is, after all, an observer who observes the observing, it is a brain that wants to explain the brain. Many people think that [60]such reflexive problems are unacceptable and unsolvable. My proposal, however, is to accept this circular situation fully right from the start and to make oneself the instrument by means of which the question of one’s personal experience and one’s own actions is to be answered through one’s very own activities. The point is to observe the operations, which give rise to the experiences that are to be explained.
[[BD58]]
section title: IN THE BEGINNING WAS THE DIFFERENCE; compare with [[The Beginning of Heaven and Earth has No Name]]
the very reference to some reality or some sort of truth, unavoidably involves language. Whatever we are able to say about that [[truth]] or [[reality]] is dependent on the availability of language. What is supposedly independent from us becomes describable only when language is available, emerges only through an act of distinction by means of language. Even for the process of meditation, when we believe that we are moving in a state of pure consciousness, we are forced to admit that the reflection of that state cannot be achieved without [[language]].
Language is not a prison; it is a form of existence, a way and a manner of living together. The simple expression ‘we cannot escape from language’ makes us believe that there exists some other place, a place beyond language, although it may never be reached. I refuse to make such an assumption
[[BD58/60]]
POERKSEN: If I understand correctly, it is one of your goals to find out why we experience something as separate from us, in the first place.
MATURANA: Precisely
[[BD61]]
POERKSEN: So your starting point is the experience of separation in order to establish and justify the insight that we are inevitably involved in the construction of our realities and therefore tied to them.
MATURANA: At the outset, there is the experience of separation, which, finally, turns into the insight of connectedness. Of course, I am not part of the object I am describing; I am not part of the glass here on the table when I am pointing at it. However, the distinction of the glass has to do with me; I am the one who describes it, I am the one who uses the distinction. Or the other way round: If nobody makes this distinction then the material or conceptual [[entity]] that is specified and demarcated from an environment in this way does not exist
[[BD63]]
The tree of knowledge: No experience of living beings is independent from them (drawing by Marcelo M. Maturana).
POERKSEN: The first [[distinction]] we make is, therefore, something like the [[Big Bang]] of knowing, the origin of the construction of a reality. There must be a distinction in order to be able to see anything at all.
MATURANA: Exactly. Only what is [[distinguish]]ed exists. Although it is distinct from ourselves, we are nevertheless tied to it through the operation of distinction. Whenever I distinguish something, the [[entity]] that is distinguished emerges together with some [[background]] in which the distinction makes sense; it brings forth the [[domain]] in which it exists
[[quote]]
[[BD65]]
The central problem for me is whether one is prepared to give up one’s certainties when something unexpected develops.
[[quote]]
[[BDd74]]
Discussion of the Roger [[Sperry]] [[experiment]] with a salamander
[99] The salamander, I would maintain, correlates the activities of its nervous system, which lead to the movement and ejection of its tongue, with the activities of a certain portion of its [[retina]]. If it is shown the image of a worm, it throws out its tongue; it does not, as it would appear to an external observer, aim at a worm in the external world. The correlation given in this case is an internal one. Seen in this way, it is not at all surprising that it does not change its behaviour, that it does not learn.
[[BD77]]
The other attitude I call objectivity in parentheses; its [[emotion]]al basis is the enjoyment of the company of other human beings. The [[question]] of the [[observer]] is accepted fully, and every attempt is made to answer it. The [[distinction]] between objects and the [[experience]] of existence is, according to this path, not denied but the reference to objects is not the basis of explanations, it is the [[coherence]] of experiences with other experiences that constitutes the foundation of all explanation. In this view, the observer becomes the origin of all realities; all realities are created through the observer’s operations of [[distinction]]. We have entered the domain of constitutive ontologies: all [[Being]] is constituted through the [[Doing]] of observers. If we follow this path of explanation, we become aware that we can in no way claim to be in possession of the truth but that there are numerous possible realities. Each of them is fully legitimate and valid although, of course, not equally desirable. If we follow this path of explanation, we cannot demand the subjection of our fellow human beings but will listen to them, seek cooperation and communication, and will try to find out under what circumstances we would consider to be valid what they are saying. Consequently, some claim will be true if it satisfies the criteria of validation of the relevant domain of reality.
[[quote]]
My question is: How can it be that we experience objects as distinct from us although we know that everything said is said by us and cannot be separated from us?
[[BD66]]
[[becoming]] is like the [[machine]]: present in a different way in every [[assemblage]], passing from one to the other, opening one onto the other, outside any fixed order or determined sequence
[[ATP p347-1]]
[[individuation]] must be grasped as the being's [[becoming]] and not as a [[model]] of the [[being]] that would exhaust its [[signification]]. The individuated being is neither the whole being nor the first being; instead of grasping individuation on the basis of the individuated [[being]], the individuated being must be grasped on the basis of individuation and individuation on the basis of [[pre-individual]] being, which is [[distribute]]d according to several [[order]]s of [[magnitude]].
[[IFI p12-2]]
"That
which can only be sensed (the [[sentiendum]] or the [[being of the sensible]])
[[DG102]]
The difference between one place
and another is only an external difference, and thus not the internal,
determining, difference we are seeking. Position, change of position, is
not a difference that touches the being of the being, but only externally
relates the being to o ther beings in the homogeneous medium of [[space]].
[[Bergson]]
[ [[duration]] is an [[experience]] of [[difference in itself]] [[internal difference]] [[difference]] ]
[[DG56]]
[[Gilles Deleuze]] theorizes a [[philosophy]] of the between.
Often used in discussions of the [[assemblage]], [[rhizome]], and [[empiricism]], [[becoming]]s, and others.
"[[signifying]] [[biunivocalization]] and [[subjective]] [[binarization]]" [[ATP p180-1]]
Each of the two binar/biuni relates to a specific regime
[[Mendel]] demonstrated that [[inheritance]] occurs through [[gene]]s, units of heredity that maintaint her structural [[identity]] from one generation to another. As a rule, genes come in pairs because they are aligned along [[chromosome]]s (Strands of genes) that also come in pairs. The exception to this rule is that a male mammal has unpaired Xa nd Y chromosomes with different genes. Classically, a gene has been defined as a part of a chromosome composed of the double-stranded [[molecule]] [[DNA]]. However, many genes do not have the discrete locations we once imagined (bird 2007). Sometimes several genes overlap on a stretch of chromosome. Sometimes a genetic outcome depends on parts of two or more chromosomes. In many cases, part of a chromosome alters the [[expression]] of another part without [[coding]] for any [[protein]] of its own.
A [[strand]] of DNA serves as a template (model) for the [[synthesis]] of [[RNA]] molecules, a single-strand chemical. One type of RNA molecule -[[messenger]] RNA-serves as a template for the synthesis of protein molecules. DNA contains for "bases"- [[adenine]], [[guanine]], [[cytosine]] and [[thymine]]. The orer of those bases determins the order of the corresponding bases along an RNA molecule-adenine, guanine, cytosine, and [[uracil]]. The order of bases along an RNA molecule in turn determinesd the order of [[amino]] acids that compose a protein.
For example, if three RNA bases are in the order CAG then the protein adds the amino acid [[glutamine]]. If the next three are UGG, the next amino acid on the protein is [[tryptophan]]. Any protein consists of some combination of 20 amino acids, in an order that depends on the order of DNA and RNA bases. It's an amazingly simple [[code]], considering the [[complexity]] of body structures and functions that arise from it.
Some proteins form part of the structure of the body. Others serve as [[enzyme]]s, biological [[catalyst]]s that regulate chemical [[reaction]]s in the body. Not all RNA molecules code for proteins. Many RNA molecules perform regulatory functions.
dna 4 1
1 gene does not produce a single outcome. ...at least 10 genes that contribute to eye color. 180 contribute to differences i people's hieght. Each gene that contributes to eye color or height affects other characteristics as well. Furthermore, you express most of your genes in certain cells and not others, and changes in te [[environment]] can increaser or decreasre the expression of a gene. Genetic influences are more complex than we once imagined.
This is the homozygous heterozygous page.
[[ch4 genetics and evolution]]
The [[gene]]s on the [[zsex]] [[chromosome]]s (designated X and Y in mammals) are known as [[sex-linked]] [[gene]]s. All other chromosomes are [[autosomal]] chromosomes and their genes are known as autosomal genes.
.
[[biop 4.1-1]]
[[evolution]] is a change over [[generation]]s in the [[frequency]]s of various [[gene]]s in a [[population]].
[[biop4.1-1c epigenetics]]
[[summary]].
Everything the [[brain]] does depends on the detailed anatomy of its [[neuron]]s and [[glia]]... 'cells that fire together, wire together." Neurons active at the same time become [[connect]]ed. That is true only if neurons active at the same time re also in approximately the same place. The brain cannot connect [[dendrite]]s or [[axon]]s that cannot find each other. Locations, structures, and activites of your nuerons are the basis for everything... The nervous system is more than the sum of its individual cells, just sa water is more than the sum of ooxygen and hydrogen. Our [[behavior]] [[emerge]]s from the [[communication]] among neurons.
[[biop1.1-3]]
Although the [[brain]], like any other [[organ]], needs to receive nutrients from the blood, many chemicals cannot cross from the blood to the brain. The mechanism that excludes most chemicals from the vertebrate brain is known as the [[blood-brain barrier]]
[[biop1.1e]]
The [[blood -brain barrier]] depends on [[endothelial]] cells that form the walls of the capillaries. Outside the brain, such cells are separated by small gaps, but in the brain, they are joined so tightly that they block [[virus]]es, [[bacteria]], and other harmful chemicals from passage.
the barrier keeps out useful chemicals as well as harmful ones. Those useful chemicals include all fuels and [[amino acid]]s, the building blocks for [[protein]]s. For these chemicals to cross the BBB the brain needs special mechanisms not found int he rest of the body. No special mech is needed for small, uncharged molecules such as oxygen and carbon dioxide that cross through cell walls freely. Also, molecules that dissolve in the fats of the membrane cross easily., like vitamins A and D. Water crosses through special protein [[channel]]s in the wall of the endothelial cells. For certain other chemicals, the brain uses [[active transport]], a protein-mediated process that expends energy to [[pump]] chemicals from the blood into the brain. Chemicals for AT include glucose, amino acids, purines, cholines, a few vitamins and iron.
[[biop1.1-2]]
Most cells use a variety of [[carbohydrate]]s and [[fat]]s for nutrition, but vertebrate [[neuron]]s depends almost entirely on [[glucose]], a sugar. Because metabolizing gluces requires oxygen, neurons need a steady supply of oxygen. Although the human brain constitutes only about 2% of the body's weight it uses about 20% of its oxygen and 25% of its glucose.
Why do neurons depend so heavily on glucose? They can and sometimes do use [[ketone]]s, and lactatae for fuel. However, glucose is the only nutrient that crosses the [[blood-brain barrier]] in large quantities.
Although neurons require glucose, glucose shortage is rarely a problem, except during starvation. The liver makes glucose from many kinds of carbohydrates and amino acids, as well as from glycerol. a breakdown product from fats. A more likely problem is an inability to use glucose. To do this, the body needs vitamin B1, [[thiamine]]. Prolonged deficiency, common in chronic alcoholism, leads to death of neurons and a condition called [[Korsakoff's syndrome]], marked by sever [[memory]] impairments.
[[biop1.1-2a]]
Unlike most other body cells, [[neuron]]s have long branching extensions. All neurons include a [[soma]] (cell body) and most have [[dendrite]]s, an [[axon]], and [[presynaptic]] [[terminal]]s. The tiniest lack axons, and some lack well defined dendrites.
A [[motor]] neuron, with its soma in the [[spinal cord]], receives excitation through its dendrites and conducts impulses along its axon to a [[muscle]]. A [[sensory]] neuron is specialized at one end to be highly sensitive to a particular type of stimulation, such as [[light]], [[sound]] or [[touch]].
Dendrites are branching fibers that get narrower near their ends... The dendrites surface is lined with specialized synaptic [[receptor]]s, at which the dendrite receives [[information]] from other neurons. The greater the surface area of a dendrite, the more information it can receive. Many dendrites contain dendritic [[spine]]s, short outgrowths that increase the surface area available for synapses.
The cell body, or soma contains the [[nucleus]], [[ribosome]]s, an [[mitochondria]] Most of a neuron's metabolic work occurs here... In many neurons, the cell body is like the dendrites-covered with synapses on its surface
The axon is a thin fiber of constant diameter... The axon conveys an impulse toward other neurons, an [[organ]], or a muscle.... if you could expand the dendrite of a reasonably typical neuron to the height of a tree, the cell's axon and its branches would extend for more than 25 city blocks
Many vertebrate axons are covered with an insulating material called a [[myelin sheath]] with interruptions known as [[nodes of Ranvier]]. Invertebrate axons do not have myelin sheaths. Although a neuron can have many dendrites, it can have only one axon., but the axon may have branches. The end of each branch has a swelling, called a presynaptic [[terminal]], also known as an end bulb or bouton. At that point the axon releases chemicals that cross through the junction between that neuron and another cell.
Other terms associated with neurons are [[afferent]] [[efferent]] and [[intrinsic]]. An afferent axon brings information into a structure; an efferent axon carries information away from a structure. Every sensory neuron is an afferent to the rest of the [[nervous system]], and every motor neuron is an efferent from the nervous system. Within the nervous system, a given neuron is an efferent from one structure and an afferent to another. E as in exit, A as in admit. If a cell's dendrites and axon are entirely contained within a single structure, the cell is an [[interneuron]] or [[intrinsic]] neuron of that structure. For example, and intrinsic neuron of the thalamus has its axon and all its dendrites within the [[thalamus]].
interesting video here @ 1.1c growth cones and filipodeia
[[Biopch1.1]]
The shape of a neuron determins its [[connection]]s with other cells and thereby [[determine]]s its [[function]].
[[biop1.11]]
[[glia]], or [[neuroglia]], the other [[component]]s of the n[[nervous system]], perform many functions. Glia outnumber neurons in the [[cerebral cortex]] but neurons outnumber glia in several other brain areas, especially the [[cerebellum]]. Overall, the numbers are almost equal.
[[oligodendrocyte]]s produce [[myelin sheath]]s that insulate certain vertebrate axons in the [[central nervous system]]; Schwann cells have a similar function in the [[peripheral nervous system]]... Each oligo forms such segments for 30-50 axons. [[astrocyte]]s pass chemicals back and forth between neurons and blood and among neighboring neurons. [[microglia]] proliferate in areas of brain damage and remove toxic materials. [[radial]] glia guide the migration of neurons during [[embryo]]logical [[develop]]ment. Glia have other functions as well..
The star-shaped astrocytes wrap around the [[synapese]]s of functionaly relted [[axon]]s... By surrounding a connection between neurons, an astrocyte shields it from chemicals circulating in the [[surround]]. Also, by taking up the [[ion]]s and [[transmitter]]s released by axons and then releasing them back, an astrocyte helps [[synchronize]] closely related neurons, enabling their axons to send [[message]]s in [[wave]]s. Astrocytes are therefore important for generating rhythms, such as your rhythm of breathing.
[the astrocyte isntalls itself to form a center of related neurons] Branches of the astrocyte (which is in the center) surround the presynaptic terminals of related axons. If a few of them are active at once, the astrocyte absorbs some of the chemicals they release. It then termmporarily [[inhibit]]s all the axons to which it is connected. When the inhibition ceases, all of the axons are prime to respond again in synchrony. This is how the astro synchronizes associated axons.
Astros dilate the blood vessels to bring more nutrients into the brain areas that have heightened acctivity. A possible role in information [[processing]] is also likely but less certain. According to a popular hypothesis known as the [[tripartite synapse]], the tip of an axon releases chemicals that cause the neighboring astrocyte to release chemicals of its own, thus magnifying or modifying the message to the next neuron. This process is a possible contributor to learning and memory. In some brain areas, astrocytes also respond to [[hormone]]s and thereby infleunce neurons. In short astrocytes are active partenrs of neurons in many ways.
Tiny cells called microglia act as part of the [[immune]] system, removing viruses and fungi from the brain. They [[proliferate]] after brain [[damage]], removing dead or damaged neurons. They also contribute to learning by removing the weakest [[synapse]]s. Oligodendrocytes in the brain and spinal cord and Schwann cells in the periphery of the body build the myelin sheaths that surround and insulate certain vertebrate axons. They also supply an axon with nutrients necessary for proper functioning. Radial glia guide the migration of neurons and their axons and dendrites during embryonic development. When embryological development finishes, most radial glia differentiate into neurons, and a smaller number differentiate into astrocytes and oligodendros
[[biop1.1d]]
If charged [[ion]]s could [[flow]] freely across the membrane, the membrane would [[depolarize]], eliminating the negative [[potential]] inside. However, the membrane has [[selective permeability]]. Oxygen, carbon dioxide, and water cross freely thorugh channels that are always open. Several biologially important ions, including [[sodium]], [[potassium]], [[calcium]], and [[chloride]], cross thorugh membrane [[channel]]s (or [[gate]]s) that are sometimes open and sometimes closed. When the membrane is at rest, the sodium and potassium channels are closed, permitting almost no flow of sodium and only a small flow of potassium. Certain types of stimuliation can open these channels, permitting free flow of either ions.
The [[nack pump]], a [[protein complex]], repeatedly [[transport]]s three sodium ions out of the cell while drawing two potassium ions into it. The na-ck pump is an [[active transport]] that requires energy. As a result of this pump, sodium ions are more than 10x more concentrated outside the membrane than inside, and potassium ions are more conentrated inside than outside.
This pump is only effect because of the selective permeability of the membrane, which prevents sodium ions that were pumped out from leaking right back in again. When sodium ions are pumped out, they stay out. However, some of the potassium ions in the neuron slowly leak out, carrying a positive charge with them. This leakage increases the electrical gradient across the membrane.
Sodium ions are more concentrated outside, potassium inside. Proti and chloride ions bear negative charges inside the cell. At rest, almost no sodium ions cross the membrane except by the NACK pump. Potasium tends to flow into the cell becasue of an electrical gradient but tends to flow out because of the concentration gradient. However, potassium gates retard the flow of potassium when the membrane is at rest.,
When the neuron is at rest, two forces act on sodium, both tending to push it into the cell. First, consider the electrical gradient. Sodium is positively charged and the inside of the cell is negatively charged. Opposite electrical charges attract, so the electrical gradient tends to pull sodium into the cell. Second, consider the concentration gradient, the difference in distribution of ions across the membrane. Sodium is more concentrated outside than inside, so just by the laws of probability, sodium is more likely to enter the cell than to leave it. Given that both the electrical gradient and the concentration gradient tend to move sodium ions into the cell, sodium would enter rapidly if it could. However, because the sodium channels are closed when the membrane is at rest, almost no sodium flows except for what the sodium–potassium pump forces out of the cell.
Potassium is subject to competing forces. Potassium is positively charged and the inside of the cell is negatively charged, so the electrical gradient tends to pull potassium in. However, potassium is more concentrated inside the cell than outside, so the concentration gradient tends to drive it out. (For an analogy, imagine a number of women inside a room. Men can enter the room or leave through a narrow door. They are attracted to the women, but when the men get too crowded, some of them leave. The concentration gradient counteracts the attraction.)
If the potassium channels were wide open, potassium would have a small net flow out of the cell. That is, the electrical gradient and concentration gradient for potassium are almost in balance, but not quite. The sodium–potassium pump continues pulling potassium into the cell, counteracting the ions that leak out.
The cell has negative ions, too. Negatively charged proteins inside the cell sustain the membrane’s polarization. Chloride ions, being negatively charged, are mainly outside the cell. When the membrane is at rest, the concentration gradient and electrical gradient balance, so opening the chloride channels would produce little effect. However, chloride does have a net flow when the membrane’s polarization changes.
[[1.2 nerve impulse]]
In addition to mutations that cause permanent changes in genes, the field of epigenetics deals with changes in gene expression. Every cell in your body has the same DNA as every other cell (except your red blood cells, that have no DNA). However, the activity of a gene can vary. The genes that are most active in your brain are not the same as those active in your lungs or kidneys, and those most active in one part of your brain are not the most active in another part. Many genes that are essential to a developing fetus become less active after birth, and others that did little for the fetus become important after birth (Hannon et al., 2016; Jaffe et al., 2016). At puberty, certain genes that had been almost silent become much more active (Lomniczi et al., 2013). A gene may be active in one person and not another. After all, monozygotic (“identical”) twins sometimes differ in handedness, mental health, or other aspects.
Various experiences can turn a gene on or off. Even forming a new memory or habit increases the activity of certain genes in particular neurons (Feng, Fouse, & Fan, 2007). If a mother rat is malnourished during pregnancy, her offspring alter the expression of certain genes to conserve energy and adjust to a world in which food will presumably be hard to find. If in fact rich food becomes abundant later in life, those offspring are predisposed, because of their gene expression, to a high probability of obesity and heart disease (Godfrey, Lillycrop, Burdge, Gluckman, & Hanson, 2007). Epigenetic changes can be inherited, at least for a generation or two. When mice were conditioned to fear a particular odor, the first and second generations of offspring showed increased sensitivity to that odor (Dias & Ressler, 2014). When male mice were exposed to chronic stressful experiences, their offspring showed a weakened hormonal response to stresses and altered gene expression in part of the brain. The effect was traced to RNA molecules in the father’s sperm (Rodgers, Morgan, Leu, & Bale, 2015).
Epigenetic changes in humans are also critical. Drug addiction produces epigenetic changes in the brain (Sadri-Vakili et al., 2010; Tsankova, Renthal, Kumar, & Nestler, 2007). The experience of feeling socially isolated or rejected alters the activity of hundreds of genes (Slavich & Cole, 2013). How well one of your grandparents was nourished or malnourished in childhood correlates with your chances for a long, healthy life, apparently because of changes in your father’s sperm cells (Pembrey et al., 2006).
How could [[experience]] modify [[gene]] [[expression]]? Standard illustrations of DNA show it as a straight line, which is an oversimplification. In fact, [[protein]]s called [[histones]] bind [[DNA]] into a shape that is more like a string wound around a ball. The histone moleculres int he ball have loose ends to which certain chemical groups can attache. To [a[ctivate]] a [[gene]], the DNA must partially unwind fromt he histones.
figure: [[acetyl]] groups that attach to a loose end of a histone molecule loosen the histone's grip on DNA, exposing more genes to the possibility of being active.
The result of an experience in some way alters the chemical environment within a cell. In some cases the otucome adds acetyl groups COCH3 to the histone tails near a gene, causing the histones to loosen their grip on the DNa, and facilitating expression of that gene. Removal of the acetyl group causes the histones to tighten their grip on the DNA and turns the ggene off. Another possibility is to add or rewmove [[methyl]] groups from DNA, usually at the [[promoter]] regions at the beginning of a gene. Adding them (CH3) to a promotoer turns off a gene, removingt hem turns on a gene. Tsankova et all 2007. severe childhood trauma decreases methylation of many brain genes... klengel at all 2013. what you do at any moment not only affects you know but also produces [[epigenetic]] effects that alter gene expression for longer periods of time. the distinction betwreen genetic effects and experiential effects becoems blurrier than ever.
[img[histone.png]]
[img[DNARNA.png]]
[[biop41.-1b genetic changes]]
If [[variation]]s in some characteristic depend largely on genetic differences, the characetristic has high [[heritability]]. ranges from 0 to once, no contribution to complete control. talks about [[twin study]]s.
[[biop4.1-1c epigenetics]]
[[gene]]s change in several ways, one way is by [[mutation]], a [[heritable]] change in [[DNA]] [[molecule]]. Changing just one base in DNA to any of the other three types means that hte mutant gene will [[code]] for a protein with a different [[amin]] acid at one location in the molecule.... a mutation is rarely advantageous... the human [[FOXP2]] gene differs from the chimpanzee inn just two bases, but those two mutations modified the human [[brain]] and vocal apparatus in several ways that facilitate language devleopment (knopka et all 2009) [[paper]].
Another kind of mutation is a [[duplicateion]] or [[deletion]]. During the process of reproduction, part of a chromosome that ordinarily appearts once might instread appear twice or not at all. When this process hapeens to jsut a tiny portion of a chromosome, we call it a microduplication or microdeletion. most are not helpful... may be involved in some cases of [[schizophrenia]].
[[biop 4.1-1a]]
The [[surface]] of a cell is its [[membrane]] (or [[plasma]] membrane), a structure that separates the inside of the cell from the outside environment. Most chemicals cannot cross the membrane, but protein [[channel]]s in the membrane permit a controlled flow of oxygen, sodium, potassium, calcium, chloride, and other important chemicals.
[[nucleus]]: the structure that contains the [[chromosome]]s
A mitochondrion is the structure that performs metabolic activites, providing the energy that the cell uses for all activities. Mitochondria have [[gene]]s separate from this in the nucleus of a cell, and [[mitochondria]] differ from one another genetically.... Mutated mitochondrial [[genes]] are a possible cause of [[autism]].
Ribosomes are the sites within a cell that synthesize new protein molecules. Proteins provide building amterials for the cell and facilitate chemical reactions. Some [[ribosomes]] float freely within the cell, but others are attached to the [[endoplasmic reticulum]], a network of thin tubes that transport newly synthesized proteins to other locations.
[[biopsych textbook]]
"[[signifying]] [[biunivocalization]] and [[subjective]] [[binarization]]" [[ATP p180-1]]
each of the two binar/biuniv relates to a specific regime
[[facialization]] doesn't consist in transforming the cup into a man or woman but in making a [[black hole/white wall]] [[system]].
[[face]] [[faciality]] [[abstract machine of faciality]]
[[ATP7 p9-1]]
[[asignifying figures of expression]] [[boundary]]
[list of signs we take pictures of, then] All of these are [[component]]s that make up so many asignifying figures of expression that serve to stabilize the boundary formed by the device-driven digital casting out of the boundary, forming a surface of inscription that makes omniscience through the omnipresent. The surface needs to continue to exist; the writing of the graphism on flesh continues the inscriptions existence, cuneiform on a tablet and its use also ensures the continued existence and production of the surface...
What is primary here is inscription, not circulation (AO) and in the digitus we need the production of occupation to occur, what we need are these asignifying figures of expression. Not a question of inscription but of a producing the production of inscription by a production of mind. Before we can even get to say “I see,” we have to get to the voiceless circulation of the unorganism. And see how these asig figs are made to work...
The digitus is drawn up from the boundaries, never from any center.
[interesting sections, then] What makes these digital intensities so intense is that the more intense they get, the more they resonate and find non-linear connections with each other. An action whereby the increase in force relates not to the output of a given force, by the manner in which that force connects through the most irregular of passages to other forces.
With a view to action experience seems in no respect inferior to
art, and men of experience succeed even better than those who have theory without experience. (The reason is that experience is knowledge of individuals, art of universals, and actions and productions are all concerned with the individual; for the physician does not cure man, except in an incidental way, but Callias or Socrates or some other called by some such individual name, who happens to be a man. If, then, a man has the theory without the experience, and recognizes the universal but does not know the individual included in this, he will often fail to cure; for it is the individual that is to be
cured.)
...
Again, we do not regard any of the senses as Wisdom; yet surely
these give the most authoritative knowledge of particulars. But they do not tell us the 'why' of anything-e.g. why fire is hot; they only say that it is hot. [prior to this he discusses how knowledge from experience plus knowledge of causes is superior than just know-how]
...
but the point of our present discussion is this, that all men suppose what is called Wisdom to deal with the first causes and the principles of things... Clearly then Wisdom is knowledge about certain principles and causes.
[[Aristotle]]
Evidently we have to acquire knowledge of the original [[cause]]s (for we say we know each thing only when we think we recognize its first cause), and causes are spoken of in four senses. In one of these we mean the substance, i.e. the essence (for the 'why' is reducible
finally to the definition, and the ultimate 'why' is a cause and principle); in another the matter or substratum, in a third the source of the change, and in a fourth the cause opposed to this, the
purpose and the good (for this is the end of all generation and change).
[[Book 1-1]]
[[A]]
[[A Thousand Plateaus]]
[[About Behaviorism]]
[[Action and Agency in Dialogue]]
[[AIME]]
[[Age of Disruption]]
[[Agony of Power]]
[[Analyses Concerning Passive and Active Synthesis: Lectures on Transcendental Logic]]
[[Anti-Oedipus]]
[[ARTAUD Complete Works]]
[[ATP Seminar]]
[[Atlas of Emotion]]
[[Automatic Society 1]]
[[The Beginning of Heaven and Earth has No Name]]
[[Bergsonism]]
[[Beyond Concepts]]
[[Book1]]
[[Cambridge Companion to Deleuze]]
[[Ch2 synapse video lectures notes]]
[[Chance and Necessity]]
[[Chaosmosis]]
[[Cinema 1]]
[[Cinema Lectures Series 1]]
[[The Concept of Nature]]
[[Contingencies of Reinforcement]]
[[The Conditions of the New]]
[[The Creative Mind]]
[[The Decadence of Industrial Democracies]]
[[Deleuze: A Philosophy of the Event]]
[[Deleuze and Desire]]
[[Deleuze's Foucault]]
[[Dialectic of Enlightenment]]
[[Dialogues II]]
[[The Differend]]
[[Difference and Givenness]]
[[Difference and Repetition]]
[[Discipline and Punish]]
[[Discourse, Figure]]
[[The Embodied Mind]]
[[Emergence and Embodiment]]
[[The End of Certainty]]
[[Expressionism in Philosophy: Spinoza]]
[[Foucault Seminar]]
[[From Being to Doing]]
[[From Negation to Disjunction: Deleuze and Klein]]
[[Gesture and Speech]]
[[individuation in light of notions of form and information]]
[[An Introduction to Cybernetics]]
[[Introduction to Systems Theory]]
[[Key to Process and Reality]]
[[Leibniz, First Seminar]]
[[Leibniz Philosophical Essays]]
[[Leibniz, Second Seminar]]
[[Libidinal Economy]]
[[Lines of Flight]]
[[Logic of Sense]]
[[Madness and Civilization]]
[[Madness and Modernism]]
[[Machinic Unconscious]]
[[Matter and Memory]]
[[Metaphysics]]
[[Mind and Nature]]
[[Mind-Energy]]
[[Nanjing Lectures]]
[[Neural Science 6th ed]]
[[New Essays on Human Understanding]]
[[On actor-network theory. A few clarifications plus more than a few complications]]
[[On The Mode Of Existence Of Technical Objects]]
[[Principles of Behavior 8e]]
[[Quantum Ontology]]
[[The Order of Things]]
[[The Pasteurization of France]]
[[The Phenomenology of Perception]]
[[Playing and Reality]]
[[Process and Reality]]
[[Proust and the Squid]]
[[Psychology of The Child]]
[[Reassembling the Social]]
[[Reflections]]
[[Science Papers]]
[[SEP Peirce]]
[[Social Systems]]
[[Speech Acts]]
[[Spinoza Seminar]]
[[States of Shock]]
[[Steps to an Ecology of Mind]]
[[Storytelling Bewitching the Modern Mind]]
[[Summary Cards]]
[[Symbolic Misery]]
[[Symbiotic Planet]]
[[Technics and Time 1]]
[[Technics and Time 2]]
[[Theory of Society]]
[[Verbal Behavior]]
[[The Web of Life]]
[[Time and Free Will]]
[[Trees of the Brain, Roots of the Mind]]
[[control societies]] come to replace [[power]] with [[belief]]/[[desire]] (are they separate, or two parts of the one...? Desire for belief, belief in desire; a perfect circle) which requires the liquidation inaugurated by simulacra and simulation
[[DnP I 177-2]] is a good [[question]] to be asking myself
Tentative layout
Establishment of what the body is; first [[Stiegler]] and his [[evolution]] from [[T&T]], then [[Foucault]] by way of DnP. Establish the sort of evolutionary body of [[technic]]s and [[language]], then the [[disciplinary]] body borne of a specific historial functionalism of power/knowledge.
Have the Foucault section be opened up by an inclusion of Deleuze/Guattari at one point, then at another a bringing-in of Baudrillard?
-------------------------------------
What of [[A thousand plateaus]]? What do I take from that? Mixed [[semiotic]]s; mixed societies of today; control and discipline are intermingling. Critique of the [[image-thought]]? How? Of the way it puts a cop in everyone's head? The sidewalk secretes a morality; the tinier and tinier forms of law secrete a cop everywhere as well. The face is going to be a big part; critique of binary-removal systems and categories that still operate on the binary logic of the face, especially the 8 person line where we look for P that's in [[Machinic Unconscious]]
2) Where to bring in the ATP footnote about how DnP isn't (shouldn't be?) about power, but [[desire]]?
[[dividual]] is first mentioned around the 340s, 345-346 seem to relate to the topic at hand
------------------------------------
[[Foucault]] section
DnP
[[disciplinary society]] servers to 'correct' prisoners and mold them into good people/citizens/members of society; in a disciplinary society you are expected not just to be good, but to be modeled into a good person. What are the expectations of the digital society? How does it achieve this?
Description then of [[society]] and its disciplinary spaces; functionalism of the [[digitus]] and its [[device]]-driven nature, whereby they act as converters of prior realities into the [[control societies]] reality.
------------------------------------------
[[Mbembe]] section; look at [[DnP p92-1]] for an idea on how to bring in his ideas on the border/outside/zone of exclusion
------------------------------------------
[[Baudrillard]] section [[DnP p92-1]]; the ultimate crime/the perfect crime.
The necessity for [[simulation]] to exist in order to achieve [[hegemony]] [[AoP p36-1]] [[AoP p66-1]]
-----------------------------------------
[[question]]s:
control societies control access; is there room for a discussion of the function of the [[border]] in the work of [[Mbembe]] in this? A new political zone serving as a workshop for the blended digital [[police]] [[State]]/discipline society that blends with the society of control? Is there a way to do research into the functioning of the control societies in less developed nations? What of the effect of the exportation of digital labor, like the masses that sit and tag objects in photos for hours every day? Iraq/Afghanistan biometric tech? Find a book/research on it.
The maximal [[dimension]] of a [[multiplicity]] is called the [[borderline]]. It's a strange thing, this notion of the borderlines as that which allows us to define a particular type of multiplicity,a [[molecular]] multiplicity, as opposed to the [[molar]] type, which is defined through a [[structure]]ing [[organize]]ing principle that remains [[secret]], hidden.
[[ATP10 p7-1]]
Perhaps it always takes a [[monster]] to make the [[borderline]], and we have to ask ourselves why this is.
[[ATP10 p8-1]]
System [[boundary]]s can no longer be understood as edges of the system, as skinds or [[membrane]]s by which the system fortifies itself, so to speak. Boundaries are not parts-subdivisions, one might almost say-of the system, as if there were also "inner" parts that benefit from having no contact with the environment. Rather, a social system is nothing other than the one side, the inner [[side]], the [[operating]] side of the [[form]] of the system, and with every [[operation]] of the system, the distinctness of the system as opposed to the [[environment]] is reproduced. The [[autopoiesis]] of a [[meaning]] system is nothing other than the [[reproduction]] of this [[difference]].
[[TS189]]
A system boun dary never just is, ontologically, but is always coming into being as [[part]] and parcel of the systems total [[autopoiesis]]. As a self-referential [[product]] of the systems operational enclosure, the boundary guarantees that the system is [[autonomous]], or [[information]]-tight. The environment as object cannot enter into the system in the [[mode]] of its own being, cannot dictate to the system. What it can do is [[perturb]] [ [[irritate]] ] its [[observer]] in such a way that the system reorganizes its own [[element]]s to compensate, which compensation must then count for the system's [[cognition]] of the object. ..
[[EE52]]
The [[commodity]] is... an external [[object]], a thing which through its [[quality]]s satisfies human [[need]]s of whatever kind.
In order to become a [[commodity]], the [[product]] must be transferred to the other person, for whom it serves as a [[use value]], though the [[medium]] of [[exchange]].)
[[C1 199]]
3rd chapter, take 2. format is X[pagenumber]
[[Neural Science 6th ed]]
the [[limit]] at the edge of every prior [[society]]
used by [[D&G]] to draw emphasis on occasion
All notes, forever and ever
- 1 -
The [[expression]] is valuable in beginning to separate the different [[mode]]s: it supposes that we question a situation in a key which we soon realize is not the right one and in which it will be pointless to persist. Better simply to change [[key]]. The phrase is attributed to (Ryle, 1949 [200]), who wanted to counter the Bifurcation of soul and body; his example is of a visitor wishing to visit the University of Oxford, who complains after seeing a large number of buildings that he has still not seen the University.
... [[Deleuze]] introduces a certain obscurity into his [[language]]-a [[stutter]]ing, or in his own words, a deterritorialization of language that prevents the reliance on ready-made [[category]]s of [[thought]] that inhibits true philosophical engagement... [philosophy] can only operate by reaching beyond itself, in [[encounter]] with that which is not [[philosophy]]
[[CC5]]
...[[difference]] is to be an [[ideal]] or [[virtual]] [[potential]] for the [[transformation]] of [[identity]]s (the differing between X and Y). This pure difference does not have fixed identity. It is an ongoing [[variation]] of [[relation]]s, rather than any given object, substance or quality.
[[CC?]]
...we could think of this [[virtual]] [[potential]] in human terms as a reserve of shifting [[relation]]s of pliable [[mood]]s and [[passion]]s we [[embody]] at different degrees of [[intensity]]... These are then [[expressed]] in a [[singular]] [[form]]. The potentials are pure [[differential]]s of relations of passions because they can be expressed differently in many individuals. The differentials [[transform]] those individuals or reveal them to be [[process]]es of [[individuation]]... According to Deleuze's definitions of the virtual and the [[actual]], all passions remain as pure virtual potential until they are expressed in actual processes of [[becoming]] at different degrees of intensity.
This potential is [[actualized]] in [[series]] of [[repetition]]s and [[determine]]d by them. Thus repetition is defined as differential [[variation]] across series. So repetition too is defined against [[identity]] and [[representation]] as repetition 'for itself'. This is not the repetition of another some thing (X, X, X,) but the variation along differences (x, x1 x1',) we could, for example, think of repetition as a variation along a series of shades of a color. For Deleuze there is repetition when there is difference in the shades resisting definition according to a fixed identity.
...there can never be a repetition of the same thing... These statements could not come from radical empiricism, given the categorical assertion pertaining to a matter of fact. It is a [[transcendental]] claim about [[necessary]] [[condition]]s.... the [[real]] always presupposes difference in itself.
[[CC37]]
...there is no [[difference]] without [[series]] of [[repetition]]s, and no sieres without difference... these series of repetitions occur in pairs... Paired differnces explain the relation between two series as processes of [[transformation]]. It also explains why difference appears in a series at all... no series of repetitions is uniqe-it is in a [[dynamic]] relation to all other [[actual]] and [[virtual]] series.
[40] difference is differentiated by deleuze according to differences of [[intensity]]... the [[question]]s can be answered, but then the [[problem]]will recur in a different form. An [[ideal]] problem is then an irresolvable driver of creative responses in [[individual]] [[situation]]s.
[[CC38]]
[[simulacrum]] (A thing that is always [[becoming]] what it is not and whose [[identity]] at any given [[point]] cannot be referred to an [[original]].)
[[CC39]]
... [[Deleuze]] introduces a certain obscurity into his [[language]]-a [[stutter]]ing, or in his own words, a deterritorialization of language that prevents the reliance on ready-made [[category]]s of [[thought]] that inhibits true philosophical engagement... [philosophy] can only operate by reaching beyond itself, in [[encounter]] with that which is not [[philosophy]]
[[Cambridge Companion to Deleuze]]
...six of the most important themes of [[Difference and Repetition]]. First, [[difference]] is to be seen as primary and resistant to [[representation]] and to identification. Difference is dissimilar to itself and hence impossible to represent. Difference is always unequal, it cannot be equated to its [[identity]]. Second, difference is [[change]]. It is always in a [[process]] of [[becoming]]. Third, difference is [[generative]]. It forces things to become different, thereby making them different to what they are. The being of a thing-past, present or future-thereby becomes a falsehood. Fourth, then, everything is a [[model]] not a copy of an original, but rather a [[simulacrum]]. So-fifth and sixth themes-such simulacra exist in ever-changing [[series]], not regulated according to the repetition of the same, but rather by the [[creation]] of difference through the [[repetition]] of [[becoming]].
[[CC43]]
[[gap]] [[delay]] [[interval]] which [[Deleuze]] uses to mean[[subject]]
Part 1
Some reflexes don't got through the brain, just a sensorimotor loop through the spine and back out
DEepolarization, excitatroy, Excitatory postsynaptic potentisal (EPSP) Na+ enters the cell
Hyperpolzarization, inhibitory, inhibitory pos potent (IPSP) K+ leaves the cell or CI- enters the cell
EPSP and IPSP magnitude degrades quickly over time
Excitatory signal comes in and causes EPSP, which can be in the form of a nero transmitter same with IPSP
--------------------------------------------------------------------------------------------------
2 potentials strike and then begin to decompose, but given temporal or spatial summation they can compose with one another, summing the effects
temporal summation as one nueron firing a burst vs multiple neurons as input
e/ipsp called graded potentials in that they are varied in strength of effects
--------------------------------------------------------------------------------------------
3
all neurons have a spontaneous firing rate whereby they fire independent of incoming fire rate. EPSPs up it, IPSPs down it. Resting rate is never 0 for a neuron but always x AP's per y time
neurotrans and receptors fit into each other like keys into locks. neurtrans cause graded potentials, EPSP and IPSP polarizing or depolarization
one signal per each little molecule of neurotrans. needs to be cleared out after use, otherwise it may bind again-independent of persynaptic messaging around 12mins binding as tied not necessarily to exhauxstive use but signal from presynaptic term.
in gap there are enzymes that bind with the neurotrans that break it down into tiny molecules that cant do anything, vs reuptake of presynaptic terminal. This gets it out of the gap to rpevent binding a second time.
--------------------------------------------------------------------------------------------------------------------------
4
just because we make a lot of serotonin doesn't mean we realse it, we can store it up and release it as needed
receptors can have some neurotrans that work as bump keys, like THC for endorphins
------------------------------------------------------------------------------------
5
ionotropic receptors-two major components inner and outer ring, intermeshing like a star within a smaller star, very tight. embedded in the membrane, pass from inside to outside. normally are closed. an excitatory neuron channel makes it twist and open. Short lasting, <20ms, effects begin <1ms binding almost immediately pops it open. have a built in ion receptor
metabotropic, unlike inotropic, do not have abuilt in ion receptor. Binding causes the release of a cell that's already in the neuron, a G protein, which pops off the metabotropic receptor on the inside. second messenger system, first the neurotrans that binds, then the G protein. Slower to take effect, ~30ms, longer lasting effects as well. When the G protein finds an ion channel it holds it open for much longer.
Both of these serve to open ion channels, one has an ion channel, the other has s econd messenger that pops off to open the channel
Hormones circulate throughout the blood, vs neurotransmitters in the synaptc gap. Longer effects, can cause secondary messengers to pop off, "activate them"
The [[human]] [[nervous system]] requires an enormous amount of [[assembly]], and... Instead of 'put this piece here and that piece there,' the instructions are "put these [axon]]s here and those [[dendrite]]s there and then wait to see what happens. Keep the connections that work the best and discard the others. Continue making new connections and keeping only the successful ones." Therefore, we say that the brain's anatomy is [[plastic]]. It changes rapidly in early [[development]] and continues changing throughout life.
[[PS38]]
[[biopsych textbook]]
5.1-1
The brain codes [[information]] largely in terms of which neurons are active, and how active they are at any moment. Impulses in certain neurons indicate light, whereas impulses in others indicate sound, touch, or other sensations. In 1838, Johannes Müller described this insight as the [[law of specific nerve energies]]. Müller held that whatever excites a particular nerve establishes a special kind of energy unique to that nerve. In modern terms, the brain somehow interprets the action potentials from the auditory nerve as sounds, those from the olfactory nerve as odors, and so forth. Admittedly, that word somehow glosses over a deep mystery.
[[2.2-2h]]
This [[expression]] refers to the peculiar [[trajectory]] obtained by the [[series]] of [[inscription]]s capable of producing, via the [[hiatus]] of dissimilarity, the [[maintenance]] of [[constant]]s, thus gaining access to that which is distant, [[information]] about which begins to [[circulate]] - once the alignment has been effected -, cascading, with regularity, from [[form]] to form.
- 2 -
These are the [[chain]]s that were diverted, for reasons of political epistemology, in order to define a bridge between known object and knowing subject, even though these two terms, even if they existed, could not define precisely the tiling of forms necessary to establish the reference and production of information about remote beings.
- 3 -
Chains become visible only via the instrumentation of science, because only then does the cascade of [[transformation]]s capable of maintaining information become visible. These chains exist, obviously, in all cases of reference, but if the things thus designated are too close or too common, the telescoping of the successive steps renders their establishment completely invisible.
[[CMO p1/2-1]]
[[functor]]
[[Guattari]]
Tracking relations between all sorts of entities starting from psychometrics
[[TMI p10/11-1]]
[[Deleuze]]
This brings us to an important principle in the analysis of behavior. We distinguish between an [[instance]] of a response and a [[class]] of [[response]]s. A single response, as an instance of the activity of an organism, may be described as fully as facilities will permit. But when we are concerned with the [[prediction]] of future behavior it may be either impossible to predict the great detail of the single instance or, more likely, unimportant to do so. All we want to know is whether or not a response of a given class will occur
[[VB49]]
When I can recognize a thing
from among others without being able to say what its differences or properties
consist in, the knowledge is [[confuse]]d. It is in this way that we sometimes know
something [[clear]]ly, without being in any doubt whether a poem or a picture is
done well or badly, simply because it has a certain something, I know not
what, that satisfies or offends us. But when I can explain the [[mark]]s which I
have, the knowledge is called [[distinct]].
[[LP56]]
My own view is that this opinion about what we don't know springs
from a demand for a way of knowing which the object does not admit of.
The true [[sign]] of a [[clear]] and [[distinct]] notion is one's having means for giving
[[a priori]] proofs of many truths about it. I showed this in a paper about truths
and ideas which was published in 1684 in the Acta of Leipzig [' Meditations
on knowledge, truth and ideas'].
I believe that we have hardly any
perfectly clear ideas of [[sensible]] things
[[U255]]-263 are great
[[U219]]
[[LP23/24]]
The thesis states that [[system]]s are operationally closed. They rely entirely on internal [[operation]]s.
[[IS64]] [[openness]] [[open]] [[information]]
[[closure]] is not a physical concept but characterises the [[self-referential]] working of an internal dynamics. The processes recurring in a particular [[domain]] remain in this domain; we are dealing with the operations of a system that determine its [[boundary]]es and make it a determinate [[entity]]. Therefore, by closure of the nervous system I mean that its [[state]]s of activity always lead to other states of activity and are triggered by states of activity, and that all these diverse states of activity remain within the network of neuronal elements.
[[BD119]]
[[openness through closure]]
[ [[time]]s] essence being to [[flow]], not one of its [[part]]s is still there when another part comes along. [[superposition]] of one part on another with [[measurement]] in view is there fore impossible, unimaginable, inconceivable. [he goes on to critique [[measure]] of time on the basis of his [[concept]] of [[duration]] ].
[[The Creative Mind]]
At least three types of problem prompt us to enlarge the definition of [[subjectivity]]... and... revise the [[model]]s of the [[unconscious]] currently in [[circulation]]: 1 the [[irruption]] of [[subjective]] [[factor]]s at the forefront of current events, 2 the massive development of [[machinic]] [[production]]s of subjectivity and finally 3 the recent prominence of [[ethological]] and [[ecological]] perspectives on [[human]] subjectivity.
Next paragraph gives examples of the way 1 ties directly into [[mass media]] with "[[contagious]] [[affect]]ive [[charge]]s."
[[contagion]]
[[Collective Equipment]] is mentioned, along with [[Freud]]
[[CMO p9-1]]
one has to admit that every [[individual]] and [[social]] [[group]] conveys its own [[system]] of [[model]]izing [[subjectivity]]; that is, a certain [[cartography]]-comprised of [[cognitive]] [[reference]]s as well as [[myth]]ical, [[ritual]] and [[symptom]]atological references-with which it positions itself in relation to its [[affect]]s and [[anguish]]es, and attempts to [[manage]] its [[inhibition]]s and [[drive]]s.
it [the model] tries to manage it [the models]...
[[CMO p10-1]]
I opted for an [[unconscious]] superposing multiple [[strata]] of [[subjectivation]], [[heterogenous]] strata of [[variable]] [[extension]] and [[consistency]]. Thus a more "[[schizo]]" unconscious... An unconscious of [[Flux]] and of [[abstract machine]]s rather than... of [[structure]] and [[language]]...
The important thing is... the fact that the multi[[-component]]ial [[cartography]]c method can co-exist with the [[process]] of subjectivation]], and that a reappropriation, an [[autopoiesis]], of the means of production of subjectivity can be made possible.
[[CMO p11-1]]
How do certain [[semiotic]] [[segment]]s [([[component]]s?] achieve their [[autonomy]], start to work for themselves and to [[secrete]] new [[field]]s of [[reference]]? It is from such a [[rupture]] that an [[existential]] [[singularization]] correlative to the [[genesis]] of new [[coefficient]]s of [[freedom]] will become [[possible]]. This detachment of an [[ethico-aesthetic]] "[[partial-objects]]" from the field of [[dominant]] [[signification]]s corresponds to the promotion of a [[mutant]] [[desire]]... Goes on to relate this through [[Lacan]] and [[Bakhtin]].
[[CMO p12-1]]
[...the idea of the irreversibility of the aesthetic object [which is borne from these detached [[components]]/[[fragment]]s/...?] and the idea of [[autopoiesis]]-notions truly necessary to the [[analysis]] of [[unconscious]] [[formation]]s, pedagogy, psychiatry, and more generally to a [[social]] [[field]] devastated by [[capitalist]] [[subjectivity]]. Thus it is not only in the context of [[music]] and poetry that we see the work of such fragments detached from [[content]], fragments which I place in the category of existential refrains. The polyphony of [[mode]]s of [[subjectivation]] actually corresponds to a [[multiplicity]] of ways of "keeping time." Other [[rhythm]]ics are thus led to [[crystal]]lize existential [[assemblage]]s, which they [[embody]] and [[singularize]].
[refrain]]s delimit [[existential]] [[Territory]]
[[functor]]
[[CMO p13/14-1]]
[we are all]] familiar with such crossings of [[subjective]] [[threshold]]s [[trigger]]ed by a catalyzing [[temporal]] [[module]] (like a song, a chant, a [[refrain]], a...) that plunges us into sadness or indeed, into an ambience of gaiety and excitement. What we are aiming at with this [[concept]] of [[refrain]] aren't just massive [[affect]]s, but [[hyper-complex]] refrains, [[catalyzing]] the [[emergence]] of [[incorporeal]] [[Universe]]s such as those of [[music]] or [[mathematic]]s, and [[crystal]]lizing the most [[deterritorialize]]d [[existential]] [[Territory]]s. This type of [[transversal]]ist refrain evades strict spatio-temporal delimitation. With it, [[time]] ceases to be exterior in order to become an [[intensive]] [[nucleus]] of temporalization.
From this [[perspective]], [[universal]] time appears to be no more than a hypothetical [[projection]], a time of generalized [[equivalence]], a "[[flat]]tened" [[capital]]istic time; what is important are these [[partial]] [[module]]s of temporalization, operating in diverse [[domain]]s (biological, ethological, socio-cultural, [[machinic]], [[cosmic]]) and out of which [[complex]] refrains constituted highly relative existential [[synchronies]].
[[CMO p15-1]]
[[example]] of TV, then Like [[Bakhtin]], I would say that the [[refrain]] is not based on elements of [[form]], [[material]] or ordinary [[sign]]ification, but on the detachment of an [[existential]] "[[motif]]"" (or [[leitmotif]]) which installs itself like an "[[attractor]]" within a sensible and significational [[chaos]]. (reordering of [[force]]s, and of [[function]]s, no longer [[direction]]al but [[dimension]]al...) The different [[component]]s conserve their heterogeneity, but are nevertheless captured by a refrain, which [[couple]]s them to the [[existential]] [[Territory]] of my self.
[[functor]]
[[CMO p16-1]]
...what I call a [[constellation]] of [[Universe]]s. This does not involve Universes of [[reference]] in general, but [[incorporeal]] [[domain]]s of [[entity]]s we detect at the same [[time]] that we [[produce]] them, and which appear to have been always there, from the moment we [[engender]] them. Here is the real [[paradox]] of these Universes: they are given in the creative moment, like a [[haecceity]] freed from [[discursive]] time-(several) [[nucleus]] of eternity lodged between instants. What's more, over and above the [[element]]s of the situation (familial, sexual, conflictual), they involve accounting for the [[projection]] of all the [[line]]s of [[virtual]]ity opening up from the [[event]] of appearance.
Take a simple [[example]]: (the patient who is stuck then decides to attempt to learn to drive once more, which opens up universes). This kind of [[singularity]] can become a [[key]], activating a [[complex]] [[refrain]], which will not only modify the immediate [[behavior]] of the patient, but open up new [[field]]s of virtuality for him: renewal of contact with old friends, places, self-confidence...
It's sometimes necessary to jump at the opportunity, to approve, to run the risk of being wrong, to give it a go, to say, "yes, perhaps this experience is important." Respond to the [[event]] as the [[potential]] bearer of new constellations of Universes of reference. This is why I have opted for the [[pragmatic]] [[intervention]]s orientated towards the [[construction]] of [[subjectity]]s, towards the production of fields of virtualities which would simply be polarized by a symbolic hermeneutic centered on childhood.
[[functor]]
[[CMO p17-1]]
[[analysis]] is... [now] the [[invention]] of [several] new [[catalytic]] [[nucleus]] capable of bifurcating existence. A [[singularity]], a [[rupture]] of [[sense]], a cut, a [[fragment]]ation, the [[detach]]ment of a [[semiotic]] [[content]].. can originate [[mutant]] nuclei of [[subjectivation]].
[[discernibilization]] [[discernment]] [[discernibility]] is mentioned in a sense, on p19 end of para 1 we see the mention of [[existential operator]]s
[[CMO p17/18-1]]
...it [the catalysis caused by art and the artist, and the spectator, and the practice, and the...] selects certain [[segment]]s of these very [[chain]]s of [[redundancy]], to confer on them the [[asignifying]] [[existential]] [[function]] I have just evoked [That of the [[existential operator]]s}, thereby "refraining" them and producing [[virulent]], [[partial]] [[fragment]]s of [[enunciation]] operating as "[[shifter]]s" of [[subjectivation]]. The [[quality]] of the base [[material]] matters little... What does matter is the [[mutant]] [[rhythm]]ic impetus of a temporalization able to hold together the [[heterogenous]] [[component]]s of a new [[existential]] [[edifice]].
The refraining of a certain practice that is taken up? Is that what this and the prior page together are discussing? [[question]] this would fit with the discussion of the patient that takes up driving and all that comes with it...
[[CMO p18-1]]
[in the presence of the [[mass media]],] We are not in the presence of a passively representative [[image]], but of a [[vector]] of [[subjectivation]]. We are actually confronted by a [[nondiscursive]], pathic [[knowledge]], which presents itself as a [[subjectivity]] that one actively meets, an absorbent subjectivity given immediately in all its [[complex]]ity.
[[CMO p20-1]]
The [[paradox]] resides in the fact that [[pathic]] [[subjectivity]] tends to be constantly evacuated from [[relation]]s of [[discursivity]], although [[discursive]] [[operator]]s are essentially based on it. The [[existential]] [[function]] of [[collective assemblage]] consists in this utilization of links of [[discursivity]] to establish a [[system]] of [[repetition]], of [[intensive]] insistence, polarized between a [[territorial]]ized [[existential]] [[Territory]] and [[deterritorialize]]d [[incorporeal]] [[Universe]]s-two metapsychological functions we can describe as onto-genetic. The Universes of referential value confer their [[texture]] on [[machine]]s of [[expression]] [[articulate]]d in [[machinic]] [[phylum]]s. [[complex]] [[refrain]]s, beyond the simple refrains of territorialization, restates the singular [[consistency]] of these universes ([[example]])...
The [[abstract machine]]ic consistency which is thus conferred on assemblages of [[enunciation]] resides in the [[layer]]ing and [[order]]ing of [partial]] [[level]]s of existential territorialization. What's more, the complex refrain functions as an [interface]] between [[actual]]ized registers of discursivity and [[nondiscursive]] Universes of [[virtual]]ity. It is the most deterritorialized [[aspect]] of the refrain, its [[dimension]] of incorporeal Universes of value which takes control of the most [[territorialized]] [[strata]]. It does this through a movement of deterritorialization that develops [[field]]s of the [[possible]], [[tension]]s in value, relations of heterogeneity, of [[alterity]], of [[becoming-other]]...
[Universes of value] involve [[constellation]]s of Universes, within which a [[component]] can affirm itself over others and modify the initial [[referential]] [[configuration]] and the [[dominant]] [[mode]] of valorization...
[once something has gone through [[emergence]] we cannot act as if it hasn't "been invented for the rest of time, both past and future," such as modern instruments, polyphony, tv, social media, data, cars...]. Such is the first [[stratum]] of [[ontological]] [[consistency]] of this [[function]] of [[existential]] [[subjectivation]], which is situated within the perspective of a certain axiological creationism.
[[functor]]
[[CMO p25-1]]
The second ([[stratum]]) is the [[embodiment]] of these [[value]]s in the irreversibility of the being-there of the [[existential]] [[Territory]]s, which confer their character of [[autopoiesis]] and [[singularity]] onto the [[zone]]s of [[subjectivation]]. In the [[logic]] of [[discursive]] [[ensemble]]s which dictates the [[domain]]s of [[Flux]]es and [[machinic]] [[phylum]]s, there is always a separation between the poles of [[subject]] and [[object]]. The truth of a [[proposition]] answers to the law of the excluded middle; each object appears in a relationship of [[binary]] opposition with a "foundation." Whereas in [[pathic]] logic, there is no [[extrinsic]] [[global]] [[reference]] that can be circumscribed. The object relation is [[destabilized]], and the [[function]]s of subjectivation are put into question. An [[incorporeal]] universe is not supported by [[coordinate]]s embedded in the [[world]], but by [[ordinate]]s, by an [[intensive]] ordination coupled for better or worse to these [[existential]] territories. Territories which claim to encompass, in a single movement, the sum of everyday existence but which are in fact only based on derisory [[refrain]]s, [[index]]ing if not their vacuity then at least the [[degree]] [[zero]] of their ontological [[intensity]]: thus Territories never given as an object but always as an [[intensive]] [[repetition]], as piercing existential affirmation. And I repeat, this [[operation]] is effected through the borrowing of [[semiotic]] [[link]]s, detached and diverted from their [[signifying]] and [[coding]] tasks. Here, an [[express]]ive instance is based on a [[matter]]-[[form]] relation, which [[extract]]s [[complex]] [[form]]s from a [[chaos]] (chaotic) [[material]].
[[functor]]
[[CMO p26/28-1]]
We need to free ourselves from a solitary [[reference]] to the [[technological]] [[machine]]s and expand the [[concept]] of machine so as to situate the machine's adjacence to [[incorporeal]] [[Universe]]s of reference. Note that the categories of [[metamodelization]] proposed here-[[Flux]]es, [[machinic]] [[phylum]]s, [[existential]] [[Territory]]s, incorporeal universes-are only of interest because they come in [[four]]s and allow us to break free of [[tertiary]] descriptions which always end up falling back into dualisms. The fourth term stands for an nth term: It is the opening onto [[multiplicity]]. What distinguishes metamodelization from modelization is the way it uses terms to develop [[possible]] [[open]]ings onto the [[virtual]] and onto [[creative]] [[processuality]].
[[functor]]
[[CMO p26/28-1]]
The first type of [[machine]] we are going to consider is the [[material]] [[apparatus]]. They are made by the [[hand]] of [[man]]-according to conceptions and [[plan]]s which respond to the [[goal]]s of [[production]]. These different [[stage]]s I will call finalized, [[diagrammatic]] [[schema]]s. But already this [[montage]] and these finalizations impose the necessity of expanding the [[limit]]s of the [[machine]] stricto sensu, to the [[function]]al [[ensemble]] which associates it with man. We will see that this implies taking into account multiple [[component]]s:
-[[material]] and [[energy]] components
-[[semiotic]], [diagrammatic and [[algorithmic]] components (plans, formulae, equations and calculations which lead to the [[fabrication]] of the machine: components of [[organ]]s, [[influx]] and humours of the human [[body]];
-[[individua]] and [[collective]] [[mental]] [[representation]]s and [[information]];
-investment of [[desiring machine]]s producing a [[subjectivity]] adjacent to these components
-[[abstract machine]]s installing themselves [[transverse]]ally to the [[machinic]] [[level]]s previously considered (material, [[cognitive]], [[affective]] and [[social]]).
When we speak of abstract machines, by "abstract" we can also understand "[[extract]]" in the [[sense]] of extracting. They are [[montage]]s capable of relating all the heterogenous levels that they traverse and that we have just enumerated. The abstract machine is transversal to them, and it is this abstract machine that will or will not give these levels an [[existence]], an [[efficiency]], a power of ontological auto-[[affirmation]]. The different components are swept up and reshaped by a sort of [[dynamism]]. Such a [[function]]al ensemble will hereafter be described as a [[machinic assemblage]]. The term [[assemblage]] does not imply any notion of bond, [[passage]], or [[anastomosis]] between its components. It is an assemblage of [[possible]] [[field]]s, of [[virtual]] as much as constituted [[element]]s, without any notion of generic or species' relation. In this context, utensils, instruments, the most basic tools and the least structured pieces of a machine acquire the status of a [[proto-machine]].
[[CMO p31-1]]
This [[autopoiesis]] [[node]] in the [[machine]] is what separates and [[differentiate]]s it from [[structure]] and gives it value. Structure implies [[feedback]] [[loop]]s. It puts into play a concept of totalization that it itself masters. It is occupied by [[input]]s and [[output]]s whose purpose is to make the structure [[function]] according to a principle of [[eternal return]]. It is haunted by a [[desire]] for eternity. The [[machine]], on the contrary, is shaped by a desire for [[abolition]]. Its [[emergence]] is doubled with [[breakdown]], [[catastrophe]]-the menace of death. It possesses a [[supplement]]: a [[dimension]] of [[alterity]] which it develops in various [[form]]s. This alterity differentiates it from structure, which is based in a principle of homeomorphism.
The difference supplied by [[machinic]] autopoiesis is based on dis[[equilibrium]], the prospection of [[virtual]] [[Universe]]s far from equilibrium. And this doesn't simply involve a [[rupture]] of formal equilibrium, but a radical [[ontological]] re[[conversion]]. The machine always depends on [[exterior]] [[element]]s in order to be able to exist as such. It implies a [[complementarity]], not just with the man who fabricates it, makes it function or destroys it, but it is itself in a relation of alterity with other [[virtual]] or [[actual]] machines-a "[[non-human]]" [[enunciation]], a proto-[[subjective]] [[diagram]].
[[CMO p34/35-1]]
It is, however, totally different when we consider the [[actual]] [[texture]] of these [[Universe]]s of [[reference]]. They are always stamped with [[mark]]s of [[singularity]]... They involve a certain [[pathic]] relationship, and convey irreducibly heterogenous [[ontological]] [[consistency]]s. We thus discover as many types of [[deterritorialize]]ation as [[trait]]s of [[express]]ive [[material]]s. The [[signifying]] [[articulation]] hanging over them-in its indifferent neutrality-is incapable of imposing itself as a relation of [[immanence]] to [[machinic]] [[intensity]]s, to this [[nondiscursive]], auto-enunciating, auto-valorising, [[autopoiesis]] [[node]]. It does not submit to any general syntax of the procedures of deterritorialization. No couplet... can claim the status of an ontological [[binary]] digit. Machinic [[proposition]]s elude the ordinary games of [[discursivity]] and the structural coordinates of EST.
[[CMO p37-1]]
The [[abstract machine]] passes through all these heterogenous [[component]]s but above all it heterogenizes them, beyond any unifying [[trait]] and according to a principle of [[irreversibility]], [[singularity]] and [[necessity]].
[[CMO p38-1]]
Francisco [[Varela]] characterizes a [[machine]] by "the set of interrelations of its [[component]]s independent of the components themselves." The [[organization]] of a [[machine]] thus has no [[connection]] with its [[material]]ity. Next page discusses [[autopoiesis]] of [[institution]]s like universities, and their [[machinic assemblage]] with [[human]]s.
[[CMO p39-1]]
...this mixture of archaic attachments to cultural traditions [generally regressive] that nonetheless aspire to the technological and scientific modernity characterizing the contemporary [[subjective]] cocktail... In such conditions it appears opportune to forge a more [[transversal]]ist conception of [[subjectivity]], one which would permit us to understand both its idiosyncratic territorialized [[coupling]]s ([[existential]] [[Territory]]s) and its opening onto [[value]] [[system]] ([[incorporeal]] [[Universes]]) with their social and cultural implications.
[[Collective Equipment]] is mentioned
[[functor]]
[[CMO p1/2-1]]
Should we keep separate the [[semiotic]] productions of the [[mass media]], [[informatic]]s, [[telematic]]s and [[robotic]]s separate from psychological [[subjectivity]]? I don't think so. Just as social [[machine]]s can be grouped under the general title of [[Collective Equipment]], technological [[machine]]s of [[information]] and [[communication]] operate at the hear of [[human]] subjectivity, not only within its [[memory]] and [[intelligence]], but within its [[sensibility]], [[affect]]s, and [[unconscious]] [[fantasm]]s. Recognition of these [[machinic]] [[dimension]]s of [[subjectification]] leads us to insist, in our attempt at redefinition, on the [[heterogeneity]] of the [[component]]s leading to the production of subjectivity.
Thus one finds in it: 1 [[signifying]] [[semiological]] components which appear in the family, education, the environment, religion, [[art]], sport... 2. [[element]]s constructed by the media [[industry]], the [[cinema]], etc. 3 [[asignifying]] semiological [[dimension]]s that [[trigger]] informational [[sign machine]]s, and that [[function]] in [[parallel]] or independently of the fact that they produce and convey [[signification]]s and [[denotation]]s, and thus escape from strictly [[linguistic]] [[axiomatic]]s.
[[CMO p4-1]]
The [[filiation]] of previous [[generation]]s is prolonged into the [[future]] by [[line]]s of [[virtual]]ity and their [[arborescent]] implications... [[evolution]]ary lines appear in [[rhizome]]s... [what an excellent phrasing, 'evo lines appear in rhizomes']
[[CMO p39-2]]
[[deterritorialize]]d [[smooth]]ing is described; seems to be relation between the ideal event of [[Aion]] (2 in the text) and its actualized event, ie [[Chronos]] (1 in the text).
[[CMO p40-1]]
Technological [[transformation]]s oblige us to be aware of both [[universal]]izing and [[reduction]]ist homogenizations of [[subjectivity]] and of a heterogenetic [[tendency]], that is to say, of a reinforcement of the heterogeneity and [[singular]]ization of its [[component]]s. [[[Universe]]s are mentioned] The [[machinic]] production of subjectivity can work for the better or for the worse. At best there is the [[creation]], or [[invention]], of new [[universe]]s of [[reference]], at worst there is the deadening influence of the [[mass media]] to which millions of individuals are currently condemned. Technological developments together with social [[experiment]]ation in these new [[domain]]s are perhaps capable of leading us out of the current period of oppression and into...
[[functor]]
[[CMO p4-2]]
A [[machinic assemblage]], through its diverse [[component]]s, [[extract]]s its [[consistency]] by crossing ontological [[threshold]]s, [[nonlinear]] thresholds of [[irreversible]]ity, ontological and phylogenetic thresholds, creative thresholds of [[heterogenesis]], and [[autopoiesis]].
[[CMO p43-1]]
The ontological relativity advocated here is inseparable from an [[enunciative]] [[relativity]]. [[knowledge]] of a [[Universe]]... is only [[possible]] through the [[mediation]] of [[autopoiesis]] [[machine]]s. A [[zone]] of self0belonging needs to exist somewhere from the coming into cognitive existence of any [[being]] or any [[mode]]ality of being. Outside of this machine/Universe [[coupling]], beings only have the [[pure]] status of a [[virtual]] [[entity]].
[[CMO p50-1]]
[[existential]] [[machine]]s are at the same [[level]] as [[being]] in its [[intrinsic]] [[multiplicity]]... They are to themselves their own [[material]] of [[semiotic]] [[expression]]. [[existence]], as a [[process]] of [[deterritorialize]]ation, is a specific [[inter]]-[[machinic]] [[operation]] which superimposes itself on the [[promotion]] of [[singular]]zed existential [[intensity]]s... there is no generalized [[syntax]] for these deterritorializations. Existence is not dialectical, no representable. It is hardly livable!
[[CMO p51-1]]
[[desiring-machine]]s which break with the great interpersonal and social organic equilibria, which invert orders, play the role of the [[other]] as against a politics of auto-[[center]]ing on the [[self]]. For [[example]], the [partial]] [[drive]]s and perverse polymorphic [[investment]]s of [[psychoanalysis]] don't constitute and exceptional and deviant [[race]] of [[machine]]s. All [[machinic assemblage]] harbor-even in an [[embryo]]nic [[state]]- [[enunciative]] [[zone]]s which are so many desiring [[proto]]-machines.
Goes on to discuss [[smooth]]ing.
[[CMO p52-1]]
[[machinic]] [[autopoiesis]] asserts itself as a [[non-human]] [[for-itself]] through [[zone]]s of [[partial]] [[proto]]-[[subjectivation]]... discusses the for others as "machinic [[system]]s... in a [[rhizome]] of [[reciprocal]] [[dependence]] and phylogenetic [[alterity]] (situation each actual machinic [[stasis]] at the [[conjunction]] of a passeist [[filiation]] and a [[Phylum]] of future [[mutation]]s). All systems of [[value]]... install themselves at this machinic interface between the [[necessary]] [[actual]] and the [[possible]]ist [[virtual]].
Thus [[Universe]]s of value constitute [[incorporeal]] [[enunciator]]s of [[abstract]] machinic complexions [[compossible]] with [[discursive]] [[reality]]s. [Incorporeal machinic [virtuality? universe?] is compossible with discursive reality?] The [[consistency]] of these zones of proto-subjectivation is then only assured insasmuch as they are [[embody]]ed, with more or less [[intensity]], which guarantee, moreover, their possible recharging with [[process]]ual [[complexity]]. Thus a [[double]] [[enunciation]]: [[finite]] [[territorial]]ized and [[incorporeal]], [[infinite]].
[[CMO p52-2]]
Nevertheless, these [[constellation]]s of [[universe]]s of [[value]] do not constitute universals. The fact they they are tied into [[singular]] [[existential]] [[Territory]]s effectively confers upon them a [[power]] of [[heterogenesis]], that is, of [[opening]] onto singularizing, [[irreversible]] [[process]]es of necessary [[differentiation]].
[[CMO p54/55-1]]
Whether one considers contemporary [[history]], [[machinic]] [[semiotic]] productions, the [[ethology]] of infancy [see prev pages], or [[social]] and [[mental]] [[ecology]], we witness the same questioning of [[subjective]] [[individuation]], which certainly survives, but is wrought by [[collective assemblage]]s of [[enunciation]]. At this stage, the provisional [[definition]] of [[subjectivity]] I would like to propose as the most encompassing would be: "The [[ensemble]] of [[condition]]s which render [[possible]] the [[emergence]] of [[individual]] and/or [[collective]] instances as self-referential [[existential]] [[Territory]]s, adjacent, or in a delimiting relation, to an [[alterity]] that is itself subjective."
We know that in certain social and [[semiological]] [[context]]s, subjectivity becomes individualized; persons, taken as responsible for themselves, situate themselves within relations of alterity governed by familial [[habit]]s, local customs, juridical laws, etc. In other conditions, subjectivity is collective-which does not, however, mean that it becomes exclusively social. The term "collectivity" should be understood in the [[sense]] of a [[multiplicity]] that deploys itself as much beyond the individual, on the side of the [[socius]], as before the person, on the side of [[preverbal]] [[intensity]]s, indicating a [[logic]] of [[affect]]s rather than a logic of delimited sets.
[[functor]]
[[CMO p5-1]]
The [[condition]]s of production sketched out in this redefinition thus together imply: [[human]] [[intersubjective]] instances [[manifest]]ed by [[language]]; suggestive and identificatory [[example]]s from [[ethology]]; [[institution]]al [[interaction]]s of different natures; [[machinic]] [[apparatus]]es (for example, those involving [[computer]] [[technology]]); [[incorporeal]] [[Universe]]s of [[reference]] such as those [[relative]] to [[music]] and the plastic [[art]]s. This non-[[human]] pre-personal part of [[subjectivity]] is crucial since it is from this that its [[heterogenesis]] can develop...
its a [[question]] of being aware of the existence of [[machine]]s of [[subjectivation]] which don't simply work within "the faculties of the soul," interpersonal relations or intrafamilial complexes. Subjectivity does not only produce itself through the psychogenetic stages of [[psychoanalysis]] or the [[matheme]]s of the [[unconscious]], but also in the large-scale social machines of [[language]] and the [[mass media]]-which cannot be described as human
[[functor]]
[[CMO p8/9-1]]
. In other words, speaking intuitively, when the line EY passes through A, it is not the case that the triangle CEA has vanished; rather it continues to subsist 'virtually,' since the relation c/e continues to exist even when the terms have vanished. Rather than saying the triangle CEA has disappeared, Leibniz says, we should say that it has become unassignable and yet perfectly determined. In this case, e = 0 and c = 0 but the relation e/c is not equal to zero, since it is a perfectly determinable relation equal to y/x. Unassignable, yet perfectly determined. This is why the differential relation is such a great mathematical discovery, even in a simple algebraic example such as this one: the miracle is that the differential relation dx/dy is not equal to zero, but rather has a perfectly expressible finite quantity, which is the differential derived from the relation of x to y.
Deleuze derives an important consequence from this analysis of the differential relation. The differential relation can be said to be a pure relation, insofar as it is a relation that persists even when its terms disappear: it thus provides him with an example of what he calls the concept of 'difference-in-itself'. Difference is a relation, and normally - that is to
say, empirically it is a relation between two things with a prior [[identity]] ('x is different from y'). With the notion of the differential relation, Deleuze takes the notion of difference to a properly transcendèntal level. The differential [[relation]] is not only external to its terms (Bertrand Russell's empiricist dictum), but it also determines its terms. Difference here becomes constitutive of identity, that is, it becomes productive and genetic, thus fulfilling Maimon's demand: a genetic philosophy finding its ground in a principle of [[difference]].
When a differential relation reciprocally determines two (or more) virtual [[element]]s, it [[produce]]s what is called a [[singularity]], a [[singular]] [[point]].
[[CN7/8]]
Such an [[assemblage]] of [[ordinary]] and [[singular]] [[point]]s constitutes what [[Deleuze]] calls a [[multiplicity]]-a [[third]] [[concept]]. One could say of any [[determination]] in general-that is, of any [[individual]]- that it is a combination of the singular and the ordinary, of the remarkable and the regular. Singularities are precisely those points where something 'happens' within the multiplicity an [[event]]), or in [[relation]] to another multiplicity, causing it to change nature and produce something [[new]]... the point where someone breaks down... is a singular point in someone's psychic multiplicity, surrounded by a swarm of ordinary points.Every determinate thing is a combination of the singular and the ordinary, a multiplicity is constantly changing, in perpetual [[flux]].
Difference is where we can speak of determination as such [dr]
One can see here that, at the very least, Deleuze is breaking with a long tradition which defined things in terms of an essence or a substance - that is, in terms of an identity. Deleuze replaces the traditional concept of substance with the concept of multiplicity, and replaces the concept of essence with the concept of the event.19 The nature of a thing cannot be
determined simply by the Socratic question 'What is . . .?' (the question of essence, which in Deleuze's view set philosophy on the wrong track from the start), but only through such questions such as 'How?' 'Where?' 'When?' 'How many?' 'From what viewpoint?' and so on - precisely the questions Plato rejected as inadequate responses to the question of essence.20 For Deleuze, the question 'What is singular and what is ordinary?' is one of the fundamental questions posed in Deleuze's ontology, since, in a general sense, one could say that 'everything is ordinary!' as much as one can say that 'everything is singular!' In a psychic multi-
plicity, a new-found friend might suddenly boil over in anger at me, and I would ask myself what I could possibly have done to provoke such a singularity; but then someone might lean over to me and say, 'Don't worry, he does this all the time, it's nothing singular, it has nothing to do with you, it's the most ordinary thing in the world, we're all used to it.'
Assessing what is singular and what is ordinary in any given multiplicity is a complex task. It is why Nietzsche could characterise the philosopher as kind of physician, who assesses phenomena as if they were symptoms that reflected a deeper interrelation of forces within the multiplicity at hand, whether that multiplicity was a person, or a culture, or a meta-
physical system - or a perception.
[[CN11]]
Today, through the use of com-
puters, much more complicated solution patterns have been discovered,
such as the well-known Lorenz attractor. Put simply, the solution to the
equation will be found in one of the points in the attractor, but one
cannot say in advance which point it will be since the series defined by
the equation diverge. This is why we cannot predict the weather more
accurately - not because we do not have all the variables, but because the
weather system itself is objectively problematic. At every moment in its
actuality, it is objectively unassignable which trajectory of the attractor
the weather system will follow, since its problematic structure is consti-
tuted positively by an infinite set of divgerent series , which is nonetheless
entirely determined by the attractor itself.[[CN12]]
the [[virtual]], as Deleuze formulates it, is not subject to a process of realisation, but rather a process of [[actualization]], and the rules of actualisation are not resemblance and limitation, but rather [[difference]] (the differential relation) or divergence (divergent series) - in other
words, creation and novelty. '[[Problematic]]' and 'virtuality' are strictly correlative concepts in Deleuze's work: a problem has an objectively determined structure (a virtuality), that exists apart from its solutions (which are actual). At every moment, my existence (like that of a
weather system) is objectively problematic , which means that it has the structure of a problem, constituted by [[divergent]] series, and the exact tra- jectory that it will follow is not predictable in advance. This is why Deleuze would say that every actuality is always surrounded by a halo of virtualities, which are not mere logical possibilities, but physical realities (even if they remain virtual), precisely because they are what constitute
the problematic structure of my existence. In a moment from now, I will have actualised certain of those virtualities: I will have spoken in a certain manner, or gestured in a certain manner. In doing so, I will not have realised a possibility (in which the real resembles an already-conceptualised possibility), but will have actualised a virtuality - that is, I will
have produced a difference. In other words, when the virtual is actualised, it differentiates itself, it produces the new (the actual does not resemble the virtual in the way that the real resembles the possible). Moreover, when I actualise a virtuality, or resolve a problem, that does not mean that the problematic structure has disappeared. The next moment, so to speak, still has a problematic structure, but one that is now modified by the actualisation that has just taken place. This is what Deleuze mans when he says that conditions and the conditioned are determined at one and the same time, and that conditions can never be
larger than what they condition - thus fulfilling the Maimonian demands for the conditions of real experience. It is precisely for this reason that we can say, even speaking of ourselves, that every event is new , even though the new is never produced ex nihilo and always seems to fit into a [[pattern]] (this pattern is precisely what we call, in psychic systems, our
'character').
[[CN16]]
...the [[concept]] of the [[new]] in [[Deleuze]]... implies conditions in which novelty becomes a fundamental concept at the most basic ontological level... (Being=[[difference]]=the new)... For Deleuze, the [[problem]] of the new is [[coextensive]] with the attempt to [[determine]] the conditions of real [[experience]] (since the real is the new).
[[The Conditions of the New]]
Whereas [[identity]] is the [[condition]] of [[possibility]] of thought in general, it is [[difference]] that constitutes the [[genetic]] condition of [[real]] thought... the search for the genetic elements of real [[experience]] (and not merely the conditions of possible experience), and the positing of a principle of [[difference]] as the fulfillment of this condition-reapper like a leitmotif.
[[CN3]]
[[static]] [[genesis]] (...a genesis that takes place between the [[virtual]] and its [[actualization]])... [[dynamic]] genesis (...a historical or developmental genesis [8] that takes place between [[actual]] terms, moving from one actual term to another)
[[CN5]]
the [[macroscopic]] [[structure]] of an [[artifact]] (not necessarily [[human]] [[form]]ed) results from the application to the [[material]]s constituting it of [[force]]s [[exterior]] to the [[object]] itself. Once complete, this macroscopic structure attests, not to [[interior]] forces of [[cohesion]] between [[atom]]s or [[molecules]] constituting its [[material]], but to the external forces that have shaped it.
[[allopoiesis]] vs [[autopoiesis]]?
[[CNN p9-1]]
the [[source]] of [[information]] [[express]]ed in the [structure]] of a living being is always another, structurally [[identical]] [[object]]... A very rich [[body]] of information, since it describes an [[organization]]al [[scheme]] which, along with being exceedingly [[complex]], is preserved intact from one [[generation]] to the next. The [[term]] we shall use to [[designate]] this [[property]] is [[invariant reproduction]], or simply [[invariance]].
[[seed]] of the [[crystal]] is here discussed.
[[CNN p9-1]]
2 [[criteria]] for determining [[project]]ive [[object]]s; [[repetition]] and [[regular]]ity, He uses the term [[artifact]] for projective objects vs [[natural]] objects
[[CNN xiii]]
[the idea of crystals as presenting as [[artifact]]s] Crystals present perfectly defined [[geometry]]cal [[shape]]s... A [[crystal]], in other words, is the [[macroscopic]] [[express]]ion of a [[microscopic]] [[structure]]... all [[possible]] crystalline structures are known to us.
Discussion of [[bee]]s and how our two [[criteria]] ultimately fail through examination of living beings.
[[CNN p4-1]]
[[teleonomy]]: one of the fundamental characteristics common to all living beings without exception: that of being [[object]]s endowed with a [[purpose]] or [[project]], which at the same time they exhibit in their [[structure]] and carry out through their [[performance]]s... it is indispensable to recognize that it is essential to the [[definition]] of living beings... [who] are distinct from all other structures or [[system]]s present in the [[universe]] through this characteristic [[property]]...
[[treatment]]: how does this create a [[point of survey]] for [[pathology]]?
[[CNN p6-1]]
[this book is] an avowed attempt to [[extract]] the quint[[essence]] of the [[molecular]] [[theory]] of the [[code]].
[[CNN]]
There is a "[[margin]] of [[decode]]ing inherent in the code..."
[[ATP p52-1]]
Excellent [[definition]] of the [[code]]:
When you say "[[God]] prohibited [[Adam]] from eating of the fruit," you aren't [[express]]ing a fact; you are already giving an [[interpretation]]. It happens that this interpretation is from the [[Old Testament]]. It's an interpretation; it's not a fact. You are telling a [[tale]], the very tale told in the Old Testament.And this tale implies a certain [[code]], as we'd say today, What is the code? It's the [[system]] of [[judgement]]. "You are [[translate]]ing a fact"-there is indeed a fact; [[Spinoza]] is going to try to discover this fact-"but when you recount: 'God prohibited Adam and Adam did it anyway," well ,this is a tale, indeed its fine, its interesting, it's a tale that has its code and the code is the system of judgement.
[[S4 p13-1]]
[[strata]] [[judgement of god]] [[body without organs]]
If a person has [[hair]], this hair can move through many [[stage]]s: the hairstyle of a young girl is not the same as that of a married woman, it is not the same as that of a widow; there is a whole hairstyle [[code]]. A person, insofar as she [[style]]s her hair, typically presents herself as an [[intercept]]or in relation to flows of hair that exceed her and exceed her case, and these flows of hair are themselves coded according to very different codes; widow code, young girl code, married woman code, etc. This is ultimately the essential problem of [[coding]] and of the [[territorialize]]ation which is always coding flows with it, as a fundamental means of [[operation]]: [[mark]]ing persons (because persons are always situated at the interception and the cutting off of flows, they exist at the point where flows are cut off.
[[flow]]
[[AO1 p1-1]]
This-the fact of [[difference]] between [[effect]] and [[cause]] when both are incorporated into an appropriately flexible system-is the primary premise of what we may call [[transform]]ation or [[code]]ing.
[[MN102/106 criterion 5]]
[[cognition]] → [[compute]]ing a [[reality]]
[[HE89]]
We must also consider the parallel account that biological epistemology would give: namely, that a [[cognitive]] apparatus must be available on the basis of living [[organism]]s, that [[life]] itself already has to produce a sort of [[cognition]] of its [[environment]], and that all phenomena that one recognizes as living beings are determined, among other things, by the fact that one is actually alive oneself.
[[IS41]]
[[cognition]] is the observation of adequate [[behavior]] in a particular [[domain]], not the representation of an independently existing [[reality]], nor a process of computing according to the conditions of the environment. When an animal or a human being behave adequately and are in coherence with their circumstances, and when observers come to the conclusion that there is adequate behaviour in the situation they [[observe]], then these observers will say that the animal and the human being in question possess knowledge, that they manifest cognition. Knowledge is, in other words, behaviour in a particular domain, which is judged adequate by observers.
[[BD119]], [[BD120]] expands
no [[individuated]] [[enunciation]] here boss man
The previous thoughts can be applied to [[social system]]s if we succeed in identifying an [[operation]] that meets the following conditions: it must be one single operation; it must always be the same; and it must possess connectivity. It is this operation that either ceases or continues as the same operation. I think that we do not have many potential operations to choose from. In actual fact, [[communication]] is the only type of operation that meets these conditions. A social system emerges when communication [[develop]]s from communication. There is no need to discuss the problem of the first communication, for the question "What was the first communication?" is already a question within a communicating system. In the beginning, the system always thinks outwards from its center. Once it has become complex enough, it can ask the question as to how it all began. There may then be different answers. However, they do not disturb the continuation of the communication. On the contrary, they may even quicken it. Thus, the [[question]] concerning the [[beginning]] or [[origin]] is of no particular interest to us; or, to put it differently, it interests us merely as one question among many.
...At this juncture of my argument, I want to say only this much: communication can be conceived as the [[synthesis]] of [[information]], [[utterance]], and [[understanding]]. That is to say, that communication happens when information that has been uttered is understood. "Communication" is the structural equivalent of bio chemical statements by means of proteins and other chemical substances. It is of primary importance that there is a prospect of identifying an [[operator]] that makes possible all social systems, no matter how complex societies, interactions, or organizations might become in the course of evolution. From the viewpoint of an operational theoretical approach, everything exists because of the same basic occurrence, the same type of [[event]]: namely, communication.
[[IS53]]
It is crucial that communication itself draws the distinction between
communication and non-communication.
[[IS55]]
The [[concept]]ualization of a [[theory of society]] needs to enhance its [[potential]] for [[complexity]], namely, for [[interpret]]ing more heterogeneous [[fact]]s with the same concepts and thus ensuring the [[comparability]] of widely differing facts. [[TS17]]
In brief, the [[form]] of [[complexity]] is hence [80] the necessity to [[sustain]] an only selective [[interconnect]]ion between [[element]]s, in other words, the selective [[organization]] of the [[system]]s [[autopoeisis]]. [[TS80]]
[[SS24/26]]
From the viewpoint of this necessity for [[reduction]] (which follows from [[complexity]]), a second [[concept]] of complexity has been developed. In this second sense, complexity is a [[measure]] for [[indeterminacy]] or lack of [[information]] Viewed in this way, it is the information that the system lacks to fully grasp and to [[describe]] its [[environment]] (environmental complexity) or itself (system complexity). From the perspective of individual [[element]]s-for example, specific [[action]]s or [[information-processing]] by systems-complexity iOS relevant only in this second sense, thus only as a [[horizon]] within which [[selection]]s are made. And this second version can be used in [[meaning]] systems to re-introduce the system's complexity within the system: as a concept, as an unknown and therefore effective [[quantity]], as a factor of anxiety, as the concept of uncertainty or risk, as [[problem]]s of planning and decision, or as an excuse. The distinct nbetween both concepts of complexity points to the fact that systems cannot grasp heir own complexity (even less that of their environment) and yet can [[problematize]] it. The system produces and reacts to an unclear [[picture]] of itself. [[SS27/28]]
Somewhere in the [[Machinic Unconscious]] (I believe its near a dog eared page, in the Reference Points for a Schizoanalysis chapter) [[Guattari]] mentions that several [[component of passage]]s take on a [[consistency]] and form the [[machinic nucleus]] of the [[assemblage]]
there are things which are [[possible]] in themselves, but that are not [[compossible]] with each other.
[[L82-1]]
there are things which are [[possible]] in themselves, but that are not [[compossible]] with each other.
[[L82-1]]
...the fact that concepts are adequate only to [[individuate]]d [[real]]ity and not to [[pre-individual]] reality.
[[IFI p5/6-1]]
[[prehension]]s of [[actual entity]]s... are termed [[physical prehension]]s; and prehensions of [[eternal object]]s are termed [[conceptual prehension]]s.
[[KPR p22-1]]
Thus the 'production of novel togetherness' is the ultimate [[notion]]
embodied in the term '[[concrescence]].'
[[P21]]
[[conditioned aversive stimuli]] (stimuli which frequently precede or accompany aversive stimulation) are also [[reinforce]]ing when their withdrawal is [[contingent]] upon [[behavior]]. [[negative reinforcement]]
[[VB88]]
[[conditioned response]] (CR)
• A response elicited (caused) by
• a conditioned stimulus.
[[conditioned stimulus]] (CS)
• A stimulus that elicits (causes) a response
• because of previous pairing with another stimulus.
When I can recognize a thing
from among others without being able to say what its differences or properties
consist in, the knowledge is [[confuse]]d. It is in this way that we sometimes know
something [[clear]]ly, without being in any doubt whether a poem or a picture is
done well or badly, simply because it has a certain something, I know not
what, that satisfies or offends us. But when I can explain the [[mark]]s which I
have, the knowledge is called [[distinct]].
[[LP56]]
[[confuse]]ion - a running together
[[U132]]
[[LP23/24]]
[[distinct]]-[[obscure]]
[[clear]]-[[confuse]]d
we can think of black, for
instance, without thinking of its cause, but that involves staying within the
limits of the knowledge which comes to one straight away, which is either
[[confuse]]d (when one has no analysis of the idea) or [[distinct]] but incomplete
(when one has only a limited analysis). But there is no term which is so
absolute or so detached that it does not involve relations and is not such
that a complete analysis of it would lead to other things and indeed to all
other things. Consequently, we can say that 'relative terms' explicitly
indicate the relationship which they contain.
[[U228]]
POERKSEN: What is the foundation of such an encounter, of such continual contact between systems?
MATURANA: There must be some [[structure]]al congruence. To use another everyday example: If you want to enter a locked room without breaking the door open or destroying the lock, you will need the right kind of key to gain access to the new domain. I would say, therefore, that lock and key must have a congruent structure
[[SDS]]
[[BD155]]
One of the three factors proper to the [[plane of consistency]]
Third of the [[three syntheses]] of the [[map]] of the [[AO unconscious]]
First of the [[three syntheses]], first level of the [[AO unconscious]]
we must come to terms with the notion that it is actually a type of [[operation]] that [[produce]]s the [[system]], provided that there is [[time]]. A mere one-time [[event]] does not suffice. If an operation of a certain type has started and is, as I like to say, capable of [[connectivity]] - that is, if further operations of the same type ensue from it - a system [[develop]]s. For, whenever an operation is [[connect]]ed to another, this happens [[select]]ively. Nothing else happens; the unmarked space or the environment remains outside. The system creates itself as a [[chain]] of operations. The difference between system and environment arises merely because an operation produces a subsequent operation of the same type.
[[IS52]]
would like to track this down in [[ATP]] and [[CS]]
"to take on a consistency" seems to be an [[event]] when an [[assemblage]], a [[strata]], or really any of the terms, comes to be and is identifiable as and justified in being one of those terms.
What about having an analysis of "to fail to take on a consistency?" This would lock us into an analytic from a specific [[point of survey]] that relies on looking at/towards a specificity of terms, a certain type of relations, of systematization.
Got it! "[[consistency]] is the same as [[consolidation]], it is the [[act]] that produces consolidated [[aggregate]]s, of succession as well as of coexistence, by means of the three [[factor]]s just mentioned: [[intercalate]]d [[element]]s, [[interval]]s and [[articulation]]s of [[superposition]]s." [[ATP p328/329-1]]
"[[consistency]] is the same as [[consolidation]], it is the [[act]] that produces consolidated [[aggregate]]s, of succession as well as of coexistence, by means of the three [[factor]]s just mentioned: [[intercalate]]d [[element]]s, [[interval]]s and [[articulation]]s of [[superposition]]s." [[ATP p328/329-1]]
A [[constant]] or [[invariant]] is defined less by its [[permanence]] and [[duration]] than but its [[function]] as a [[center]].
[[ATP p95-1]]
related to the [[conjunctive synthesis]] and [[consumption]]
related to the [[conjunctive synthesis]] and [[consummation]]
Formed from the the [[first articulation]]
Hjelmslev used the term [[content]] for formed matters, which would now have to be considered from two points of view: [[substance]], insofar as these matters are "chosen," and [[form]], insofar as they are chosen in a certain order ([[substance and form of content]].)
[[ATP p43-2]]
[[content]] and expression both impact and form each other; "A stratum always has a dimension of the expressible or of [[expression]] serving as the basis for a relative [[invariance]]; for example, nucleic sequences are inseperable from a relatively invariant expression by means of which they determine the compounds, [[organs]] and functions of the [[organism]].
[[ATP p43/44-1]]
What is a [[story]] that it may connect the As and Bs, its parts? And is it true that the general fact that parts are connected in this way is at the very root of what it is to be alive? I offer you the notion of [[context]], of [[pattern]] through [[time]]. [this is a [[reucursion]]/[[recursive]] notion. What of Luhmann and the use of [[time]] to unfold [[paradox]]?
[[MN13]]
We could have been told something about [[the pattern which connects]]: that all [[communication]] necessitates context, that without context, there is no meaning, and that [[contexts]] confer [[meaning]] because there is classification of contexts. The teacher could have argued that growth and [[differentiation]] must be controlled by [[communication]]. The [[shape]]s of animals and plants are [[transform]]s of messages. [[language]] is itself a form of [[communication]]. The structure of the input must somehow be reflected as structure in the output . Anatomy must contain an analogue of grammar because all anatomy is a transform of message material, which must be contextually shaped. And finally, contextual shaping is only another term for grammar.
[[MN16]]
[[Georges Bataille]] makes use of a continuity/discontinuity [[binary]]
Continuity would be, and we could [[define]] it as the act of a [15] difference in so far as it tends to disappear. Continuity is an [[evanescent]] [[difference]]
[[L82-14]]
continuity or the [[continuous]] is the [[extension]] of a remarkable point onto a series of ordinaries, of a singular point onto a series of ordinaries all the way into the neighborhood of the subsequent singularity. [[l83-15]]
One of the three factors proper to the [[plane of consistency]]
A [[medium]] consists of [[loose]]ly [[couple]]d [[element]]s, whereas a [[form]] joins the same elements in a [[strict]] [[coupling]].
[[TS118]]
The reduction of [[complexity]], the exclusion of a mass of [[event]]s in the environment from the possibility of affecting the system, is the condition for the system's ability to do something with as few [[irritation]]s as such reduction permits. Or, to put the matter in the most abstract terms, the reduction of complexity is the condition of the increase in complexity
[[IS86]]
Every stimulus-response or [[input]]-output formulation of behavior suffers from a serious omission. No account of the interchange between [[organism]] and [[environment]] is complete until it includes the action of the environment upon the organism after a response has been made. The fact that behavior might have important consequences had not, of course, gone unnoticed.
[[Contingencies of Reinforcement]]
A successful [[response]] could be selected by its [[consequence]]s very much as a mutation was said to be selected by its contribution to survival in evolutionary theory.
[[CR25]]
But there is a more important feature: by thoroughly adapting the rat to the box before the lever is made available, most of the competing behavior can be “stamped out” before the response to be learned is ever emitted. [[extinction]] is an active process [[Pessoa]] [[The Entangled Brain]]
By using [[rate]] of responding as a dependent variable, it has been possible to formulate the interaction between an [[organism]] and its environment more adequately. The kinds of consequences which increase the rate (“[[reinforcer]]s”) are [[positive]] or [[negative]], depending upon whether they reinforce when they appear or when they disappear. The class of responses upon which a reinforcer is [[contingent]] is called an [[operant]], to suggest the action on the [[environment]] followed by [[reinforcement]]. We construct an operant by making a reinforcer contingent on a response, but the important fact about the resulting unit is not its [[topography]] but its [[probability]] of occurrence, observed as rate of emission. Prior stimuli are not irrelevant. Any [[stimulus]] present when an operant is reinforced acquires control in the sense that the rate will be higher when it is present. Such a stimulus does not act as a goad; it does not [[elicit]] the response in the sense of forcing it to occur. It is simply an essential aspect of the occasion upon which a response is made and reinforced. The difference is made clear by calling it a [[discriminative stimulus]] (or [[SD]]).
An adequate formulation of the interaction between an organism and its environment must always specify three things: (1) the occasion upon which a response occurs, (2) the response itself, and (3) the reinforcing consequences. The interrelationships among them are the “contingencies of reinforcement
If a conspicuous stimulus does not have an [28]
effect, it is not because the organism has not attended to it or because some central gatekeeper has screened it out, but because the stimulus plays no important role in the prevailing contingencies. The other [[cognitive]] processes invoked to salvage an input-output formula can be disposed of in the same way.
[[CR25]]
It is only when we have analyzed [[behavior]] under known [[contingency]]es of [[reinforcement]] that we can begin to see what is happening in daily life. Things we once overlooked then begin to command our attention, and things which once attracted our [[attention]] we learn to discount or ignore. [[topography]] of behavior, no matter how fascinating, then takes second place to evidences of [[probability]]. A [[stimulus]] is no longer merely the conspicuous onset or termination of an energy exchange, as in reflex physiology; it is any part of the occasion on which a response is emitted and reinforced. Reinforcement is much more than “being rewarded”; a prevailing probability of [[reinforcement]], particularly under various [[intermittent]] schedules, is the important variable. In other words, we no longer look at behavior and [[environment]] as separate things or events but at the interrelations among them. We look at the contingencies of reinforcement. We can then interpret behavior more successfully
[[CR25]]
When the variables discovered in an experimental analysis prove to be manipulable, we can move beyond interpretation to the [[control]] of [[behavior]]
[[CR29]]
[[program]]med instruction is a technique taken directly from the [[operant]] laboratory, and it is designed to maximize the [[reinforcement]] associated with successful [[control]] of the [[environment]]. A program is a set of [[contingency]]es which shape [[topography]] of response and bring behavior under the control of stimuli in an expeditious way. An equally important advance is the arrangement of contingencies of reinforcement in the classroom which take over the function of “discipline
[[CR32]]
A few contingencies which have been studied experimentally may be roughly described as follows. An experimental space contains one or more operanda such as a lever projecting from a wall which may be pressed by a rat or a translucent disk on the wall which may be pecked by a pigeon, various sources of stimuli such as sounds and lights, and reinforcing devices such as a food or water dispenser or a source of aversive stimulation such as a bright light or an electric grid to deliver shocks. Any stimulus arising from the space, the operandum, or special stimulating devices prior to a response is designated “SD.” A response, such as pressing the lever or pressing the disk, is “R.” Food presented to a hungry organism is a positive reinforcer (“Srein“), a bright light or shock a negative reinforcer. The interrelations among SD, R, and Srein compose the contingencies of reinforcement. All three terms must be specified.
(1) Operant reinforcement. A hungry rat presses the lever and receives food. (Frequency of pressing increases.) A pigeon pecks the disk and receives food. (Frequency of pecking increases.)
(2)Escape. The experimental space is brightly lighted. A rat presses the lever and reduces the intensity of the light. (The lever is then pressed more quickly when the light appears, or more often in sustained light.)
(3 ) Avoidance. A rat is shocked every twenty seconds except that a response to the lever postpones the next shock for twenty seconds. (Frequency of response increases and many shocks are avoided.)
(4) Stimulus discrimination. A rat presses the lever and obtains food when a light is on, but no food follows the response when the light is off. (Frequency of responding is higher in the presence of the light than in its absence—“SΔ.”)
(5) Response differentiation. Food appears only when the lever is depressed with a force above a given value. (Responses showing the required force appear more frequently.)
(6)“Superstition.” The food dispenser operates every twenty seconds regardless of the behavior of the rat. (Any behavior occurring just before the appearance of the food is reinforced, and similar coincidences become more likely as the behavior is strengthened. The rat develops a “superstitious ritual.”)
(7) Chained operants. Pecking a green disk changes the color to red, and pecking the red disk is followed by food. (The frequency of occurrence of the chain of responses increases.)
(8) Observation. A discrimination is set up under which a pigeon pecks a red disk but not a green. The color slowly fades, however, until a discrimination becomes impossible. Pecking another disk reverses the fading. (The pigeon pecks the other disk to produce enough color to make a discrimination.)
(9) Matching to sample. Three disks are arranged in a row. The middle disk is either red or green, the other two unlighted. A response to the middle disk lights the side disks, one red and one green. A response to the matching disk is reinforced with food. (Responses to the matching disk increase in frequency.)
(10) Delayed matching. As in (9) but the middle disk is darkened before the side keys are illuminated. (If the side keys are presented immediately, the pigeon is able to match. A short delay makes matching impossible. “The pigeon cannot remember the color of the middle key.”)
(11) Mediated delayed matching. There are five disks—one in the center and the others within easy reach at the four points of the compass. Center is either red or green. A response darkens it and projects white light on North and South. If Center was red, a response to North illuminates East and West, one red and one green. A response to the matching disk is reinforced. If Center was green, a response to South illuminates East and West, and a matching response is reinforced. Two chains are thus set up: (i) The pigeon pecks Center red, North white, and red on either East or West; (ii) The pigeon pecks Center green, South white, and green on East or West. The pigeon matches successfully because it responds to the red on East or West when it has just responded to North and to the green on East or West when it has just responded to South. Responding on North and South can then be protracted—for example, by requiring a number of responses to illuminate East and West. The number can be greatly increased. A long delayed matching response to East or West is mediated by the stimuli generated by responding to North or South.
(12) Schedules of reinforcement. Reinforcements may be scheduled in many ways. Each schedule, with given values of the parameters, generates a characteristic performance
.
a. Fixed interval. A response is reinforced only when it occurs after the passage of a period of time (for example, five minutes). Another period begins immediately after reinforcement.
b. A fixed ratio. Every nth response is reinforced.
c. Variable interval or ratio. The interval or number in a. and
b. need not be fixed but may vary over a given range around some average value.
d. Multiple schedules. One schedule is in force in the presence of one stimulus, a different schedule in the presence of another stimulus. For example, a fixed interval prevails when the key is red, and a variable issue when the key is green. (A characteristic performance is obtained under each stimulus.)
e. Differential reinforcement of rate of responding. A response is reinforced only if it follows the preceding response after a specified interval of time (DRL) or before the end of a given interval (DRH). In DRL the interval might be, for example, 3 minutes; in DRH, one half second.
(13) Multiple deprivation. Pecking one disk is reinforced by food, pecking another disk is reinforced by water, pecking a third disk is reinforced with either food or water at random. Under different conditions of hunger and thirst the rate of responding on the third disk is the average of the rates on the first two.
Some contingencies in the field of verbal behavior are as follows:
(14)“[[mand]].” In the presence of a listener (SD), the response Water is reinforced when the listener gives the speaker water.
(15) [[echoic]] behavior. When someone says Water, the speaker says Water, and reinforcement is contingent on the similarity of the two sounds.
(16) [[textual]] behavior. When looking at the printed word Water, the speaker is reinforced if he says Water.
(17)[[intraverbal]] behavior. Upon hearing or reading the word Water, the speaker is reinforced if he emits a thematically related response such as Ice or Faucet.
(18) “[[tact]].” In the presence of a glass of water, a river, rain, and so on, the speaker is reinforced when he says Water.
[[quote]] [[Skinner]]
[[CR34]]
[[creativity]] is not to be conceived as an 'external gency with its own ulterior purposes'-it must not vio;ate the [[ontological principle]] but must be explicable by an appeal to [[actual entity]]s... creativity is the [[concept]] that must account for the perpetual "creative advance into :ty" that is the cornerstone of [[Whitehead]]'s [[process]] [[philosophy]].
[[KPR p31-1]]
...there are two poles of the [[perception-image]], because we have on the one hand thing-[[perception]]s and on the other the perceptions I have of things.
[[prehension]] vs [[apprehension]]
[[6CS7]]
[[ATP p31-1]]
[[ATP p33-4]]
Multiplicities are [[metastable]] within a given range or [[threshold]]; they can dance around, fling themselves about, roams as nomads, vary, change [[state]]s, be divided, come together within that range and threshold; beyond that they change the nature of [[multiplicity]]. Soccer player to Tuareg
[[ATP p33-4]]
"...the pack, is constituted by a line of flight or deterritorializeation that is a component part of it, and to which it accredits a high positive value"
No [[line of flight]] exists on its own; it is always a line [[from]] or [[to]]? No, I think it is neither from nor to but of the [[middle]], [[rhizome]], a [[perpendicular]] [[line]]. What happens when we are far off along our line of flight and change beyond our threshold of metastability? [[question]]
[[ATP p34-3]]
"There are only multiplicities of multiplicities forming a single [[assemblage]], operating in the same assemblage. packs in masses and [[mass]]es in [[pack]]s"
[[ATP p36-1]]
"The distinction to be made is not at all between exterior and interior, which are always relative, changing, and reversible, but between different types of [[multiplicity]]s that coexist, [[interpenerate]], and change places-[[machine]]s, cogs, motors, and [[element]]s that are set in motion at a given moment, forming an [[assemblage]] productive of [[statement]]s"
[[ATP p36-3]]
"We can no longer even speak of distinct machines, only of types of interpenetrating multiplicities that at any given moment form a single machinic assemblage..."
[[example]] [[improv]]
Let us take, for example, a child out to dinner with his family and their friends; he is bored, fidgety, itching in his place. The doldrums of adulthood, quiet conversation and a collared shirt bore our little man. He needs to escape, but also has to, is forced to stay in place; someone gives him a phone to pacify his needs.
What of the multiplicity(s?) has changed? The boy-phone assemblage is borne, an assemblage within the great familial-dinner assemblage. [[intra assemblage]]? [[infra assemblage]]? What [[threshold]]s were crossed, what has been divided, where is the new metastability established? Clearly, the intensities and intensive states of the boy are different; so too are that of the parents, no longer needing to worry either about pacification or reactions from family friends. Social decorum maintained in the dim glow of the screen.
To exit this, what would be needed? How can we exit without reverting to the prior multiplicity of intensities, the prior assemblage? How could we carry out these intensities with us during a return to the prior conditions. Sure, the phone could run out of battery, we could fall back on the idea of a [[technical]] [[machine]] failing; what is there to be gained by a [[diagram]] of the multiplicity at work in the assemblage here? How can we use this to apprehend what's at hand? What [[actions and passions]] have shifted; clearly the [[affect]]s circulating [[differ]] now as well.
'I feel.... bored, stuck in place, a [[desire]] to leave, like I want to walk around..." is replaced, a statement of (even though an I feel wouldn't be said, but lived) "I feel absorbed in the game, no longer bored, able to relax, relaxing, relaxed, like talking,..." The assemblage is now capable of producing new statements
Each of these above changes; are they changes in the manner of the wolf and jaw, wolf and anus but mentioned here in [[ATP p32-3]]? I’d say yes.
There are now differing choices for conversation that are more than likely too appear; he has the option to put the phone down, discuss his game with an [[other]], or perhaps they engage him. This affords a break in the gameplay but we're still in the same multiplicity (or are we now discussing the assemblage at large? I believe so; perhaps it changes with the [[point of survey]]).
A boy to immerse at once
[[phrase]]
A phone to allow escape
A friend to enter conversation
Our basic [[datum]] is not the occurrence of a given [[response]] as such, but the [[probability]] that it will occur at a given time. Every verbal [[operant]] may be conceived of as having under specified circumstances an assignable probability of [[emission]]—conveniently called its “[[strength]].” We base the notion of strength upon several kinds of evidence. [[antecedent]]
[[VB55]]
The [[probability]] that a [[verbal]] [[response]] of given [[form]] will occur at a given time is the basic [[datum]] to be [[predict]]ed and [[control]]led. It is the “[[dependent variable]]” in a [[functional analysis]]. The [[condition]]s and [[event]]s to which we turn in order to achieve prediction or control—the “[[independent variable]]s”—must now be considered.
[[VB62]]
Congratulations! You found the tiddler with my name. See the links below in the reference section (below the horizontal line)? Good.
Now edit this tiddler: change the title from `Dave Gifford` to your own name, and save changes.
Are the links still there? Great! That's because Stroll renamed the links to `Dave Gifford` to whatever your name is. Do a search for your name in the search window in the sidebar, and you will see your name comes up in the same tiddlers there as well.
Now go back to [[Welcome to Stroll]] to continue the tutorial.
[[Deleuze and Desire]]
[[Deleuze]] objects to the idea that human [[desire]] could be analyzed by means of a universal structure. The [[pattern]]s of our [[behavior]] are [[construction]]s, [[emerge]]ing out of [[interaction]]s of a [[body]] with its surroundings.
...reject any [[ontology]] that would take a privileged, [[transcendent]] point as departure for philosophical analysis... [[God]], [[Idea]]s. or [[subject]] do not form the fundamental basis that is able to explain the functioning of reality. [[immanence]] is always the starting point.
[[DD14]]
Each object consists of a [[virtual]] and an [[actual]] part. The actual part of an object may be observed and known. The virtual part, despite being fully [[realize]]d, remains hidden. It precedes the [[actualization]] of an object. Deleuze understands... the virtual as the realm of [[problem]]s, while the actual.. as one of [[solution]]s. The actual is hence a solution provided for the problems characterizing the virtual. An actual object is an [[expression]] of a [[problematic]] [[field]].
[[sense]] belongs to the [[realm]] of the virtual. It is [[real]] but at the same time never fully actualized. It does not [[consist]] of pre-determined [[relation]]s between various structural [[element]]s but may be understood as a [[dynamic]] realm of [[problem]]s. [[individual]] [[pattern]]s of [[behavior]] are not an [[expression]] of [[universal]] and [[determine]]d [[structure]]s. Rather, they are an actualization of the [[possibility]]s [[emerge]]ing in the realm of the virtual... Reality, if not chaotic, is contingent on [[nature]]. Sense is continually changing. It is an expression of [[event]]s which continually undermine the actualized patterns or structures... emphasize the importance of the individual relation towards [[chance]]. It's affirmation in the [[production]] of sense is [[possible]] but only within precisely defined conditions.
[[DD15]]
For [[Deleuze]]], the structures present in the [[unconscious]] are always temporary. The [[meaning]]s of words or the social roles... are not an [[expression]] of a higher and unchanging order. [[sense]] cannot be reduced to any [[finite]] [[determination]]. It is not a universal [[structure]]. It displays the characteristics of an [[event]]. The [[actual]] [[possibility]]s for individual [[behavior]] are a [[product]] of contingent interactions. This does not mean sense is equivalent to complete [[chaos]]. It is a [[construct]]ion of [[material]] interactions. Sense is [[produce]]d by an individual in the interactions of a [[body]] with its surroundings. [[example]] on the page includes social roles, and word meaning in a given group.
[[DD16]]
The [[process]] that leads to the [[production]] of [[sense]] is called [[individuation]]... For [[Deleuze]], each [[entity]] is a [[product]] of the process of [[ontogenesis]]. The entity is produced by its [[surrounding]]s and [[express]]es the [[problem]]s characterizing it. Individuation is not predetermined. An individual is always able to [[transcend]] the [[given]] [[material]] circumstances and [[develop]] their own independent relationship towards [them]. Having the ability to generate sense and change their surroundings, the individual functions within a [[problematic]] or [[virtual]] [[field]] and not solely according to [[actualize]]d [[structure]]s. During the process of individuation they develop [[partial]] [[solution]]s to the [[problem]]s encountered, in this manner expressing part of the complexity of their surroundings. An individual actualizes the virtual; be [[realize]]ing the [[immaterial]] [[event]]s, they escape the complete determination by the actual, producing new connections between existing material entities.
...An active involvement with their [[territory]] and an active construction of sense is far from self-evident.
[[DD17]]
The alternative tot he structuralist psychoanalysis developed by [[Deleuze]] in [[Logic of Sense]] consists of two [[element]]s. Deleuze emphasizes not only the [[dynamic]] nature of [[sense]] but also the fundamental role played by the [[body]] during the [[production]] of sense. The body [[produce]]s its own [[sign]]s in the direct physical [[interaction]]s with external [[object]]s. These exact signs contribute to the [[emergence]] of sense and to changes on the [[level]] of the [[actual]]. The body is not an empty container, destined to receive the signs proper to the [[symbolic]] order. Its activity allows for the emergence of sense.
[[DD18]]
[for D N G] use of an [[actualized]] [Oedipal] [[structure]] inhibits the full development of [[desire]].... [[art]] and [[literature]] diagnose the symptoms of our time, allowing us to develop a relationship with them. They allow us to reconstruct desire, to constitute [[response]]s to the [[problem]]s [[emerge]]ing in our [[surrounding]]s... [[Klein]]'s work allows [[Deleuze]] to demonstrate that our psychic life consists of various [[form]]s of [[organization]], known as [[position]]s. In the account of the [[dynamic]] [[genesis]], he adapts her analysis of the working of the paranoid-[[schizoid]] and manic-[[depressive]] positions.
[[DD19]]
The positions are characterised by different [[topology]]cal [[dimension]]s;
Deleuze speaks of the [[depth]]s, [[height]]s, physical and metaphysical [[surface]]s.
The different [[position]]s are also characterised by different internal objects or
[[phantasm]]s. Deleuze analyses the working of [[simulacra,]] the object of the
heights, the [[image]]s, amongst which are the image of the [[phallus]] and in the
end, the phantasm proper. We will notice that these positions lead to
experiences of [[pleasure]], [[tension]], [[fear]] and [[aggression]]. We will also observe
that they are characterised by different ways in which to deal with the
negative experiences. We will see, for example, that the fears of the [[schizoid position]] may be overcome by the continuous [[introjection]]s of good [[partial object]]s or by the construction of the simulacrum of the body, without organs.
A weak ego, continually threatened by [[bad]] partial objects, can introject [[good]]
partial objects or reject the mechanism of introjections completely.
This section is a sort of [[actualize]]ation/[[differenciation]]
The
image of the phallus [[emerge]]s given the [[develop]]ment of the previous positions,
without mediation of an external structure of meaning. The image of the phallus
does not presuppose any primacy of the symbolic or real father. It is an image
projected on the genital zone by both a boy and a girl, and is an expression of the
good intentions on the side of the ego.
[[DD21]]
We will furthermore observe that the consequences of the loss of the
image of the [[phallus]] are understood by Deleuze in a very particular manner.
This loss is not a structural given, but an event dependent of the direct
experience of the subject. This loss of one‟s own reparative capacities leads
to an orientation at the metaphysical [[surface]], where narcissism is overcome.
The ego constructs its own proper [[phantasm]] and starts to experience itself as
a result of events. It develops a more independent relationship towards the
external and [[actualize]]d [[structure]]s and engages the world in a more open and
risky manner. The [[ego]] becomes capable of producing [[sense]].
[[DD22]]
the [[Logic of Sense]] provides a systematic analysis of the [[topology]] of [[desire]]. The disruption, caused by social and political [[structure]]s of [[power]] per se, is put between brackets. The advantage of this procedure is twofold. It allows for a thorough analysis of the various ways in which an individual [[body]] may invest in similar structures of power. It also allows for an analysis of the reasons why certain kinds of desire are preferred to others by those very same structures.
[[DD23]]
A [[summary]] of fundamental [[concept]]s
Deleuze‟s main aim in his analysis of the [[dynamic genesis]] of [[sense]] in The Logic
of Sense is to demonstrate that our [[desire]] is not primarily organised by external
[[structure]]s. The [[body]] is not an unwritten surface subscribed to a pre-given system
of meaning, as it is in [[Lacan]]‟s early work. Rather, it fully contributes to the
[[emergence]] of sense. Our [[unconscious]] is not directly structured as a language; our
thought and speech are, first of all, an [[expression]] of primary interactions of a
body with its surroundings. Structures of sense do not contain any universals;
sense emerges in the process of [[genesis]] and is the product of a variety of
[[experience]]s undergone by an [[individual]] – it is a [[construction]]. While saying that
[[thought]] and the [[body]] are not two entirely separate ontological realms, assuming
this position does not lead to a complete annihilation of the difference between
both. The dynamic genesis of sense is an analysis of the process during which
thought separates itself from the body. Sense has [30] to liberate itself from limitations imposed upon it by the [[actual]]
interactions of the body with [[environment.]] Sense belongs to a [[topology]]cal
[[dimension]] that is different to the dimension to which the body belongs. It
is a property of a [[surface]], while the body belongs to what he calls the
[[depth]]s.
[[DD25]]
For both [[Deleuze]] and [[Klein]], a
[[position]] is a systematic manner in which the [[ego]] relates to the surrounding
[[world]]. Its interactions are mediated by various internal objects. These
[[object]]s are not grafted onto the desiring [[body]] from the outside but [[emerge]]
out of the process of continual interaction of the body with the outside world.
[[DD29]]
The [[ego]] can
only now master its [[desire]], by tracing its own path on the metaphysical surface
and responding to [[problem]]s in its [[environment]]. It is important to realise that this
surface cannot be equated with the [[symbolic]] order, as defined by, for example,
[[Lacan]]'s early work. [[sense]] and [[thought]] do not form a unified and organised
whole, but consist of a variety of [[partial]] systems instead. The [[series]] is part of a
[[multiplicity]] that can never be unified. The [[metaphysical surface]] is both [[virtual]]
and [[actua]]l in nature, consisting of various forms of organisation, which mutually
influence each other.
[[DD30]]
The [[static genesis]] differs from the [[dynamic genesis]] because, in case of the
former, the existence of the division between [[body]]es (things) and [[thought]], is
directly presupposed. In the case of the static genesis, [[language]] directly refers to
things by means of [[proposition]]s. The dynamic genesis, on the other hand, [34] is the process of separation between both. It analyses the [[condition]] in terms
of which an [[event]] may become possible in the first place. As we will
discover, the dynamic genesis of sense is also an analysis of the conditions
under which we may speak of a full, [[univocal]], use of language. It reveals
that the dualist distinctions, such as nature-convention, nature-custom and
nature-artifice, are not ontologically primary. They are always preceded by a
more fundamental distinction between the [[depth]]s and the [[surface]]. The
dualist oppositions are a product of a process during which depths express
themselves on the surface. Language and words [[emerge]] from [[matter]], while
the [[physical surface]] plays the role of an intermediary. The organisation of the
bodily [[sensation]]s, brought about on the physical surface of the [[body]],
contributes to the emergence of a language.
[[DD32]]
The fragile individual [[organism]] can be
destroyed or entirely changed at each moment. A road along a variety of
[[singular]] points that must be passed is full of risks and possibilities. An
[[embryo]] is what Deleuze calls a [[larval subject]]. It is not an entirely
predetermined [[entity]] that [[express]]es an existing [[structure]]. The skin, brain,
heart and other organs emerge in the process of [[genesis]]. The organism
emerges in a particular [[environment]] and is, in the first instance, the result of
the processes of [[individuation]]. A structured organism emerges out of the
specific interactions of the larval subject with its [[environment]].
[[larval self]]
[[DD33]]
[[partial object]]s as [[secondness]] are my [[margin]] [[note]]s, 38 looks at [[passive synthesis]] in the amrgin [[DD35]]
The general[[problematic]] of [[Deleuze]]'s thought, [[Zourabichvili]] argues, is not [[Being]], but [[experience]].
[[Deleuze: A Philosophy of the Event]]
...the [[affirmation]] of [[univocity]] addresses the relation between the [[object]]s of [[experience]] and the [[expression]] of [[sense]] (hence the emphasis on saying, on how the [[sense]] of existence is said).
[[DE1]]
inner cover quote: "It's not a matter of bringing all sorts of things together under a single [[concept]], but rather of relating each [[concept]] to [[variable]]s that explain its [[mutation]]s."
[[Francois Zourabichvili]]
[[reread]] p31-46
[[DF p1-1]]
[[Deleuze]] [[Foucault]]
[[delirium]]... an essential [[break]] with [[truth]]
[[MnC p121-1]]
The [[probability]] that a [[verbal]] [[response]] of given [[form]] will occur at a given time is the basic [[datum]] to be [[predict]]ed and [[control]]led. It is the “[[dependent variable]]” in a [[functional analysis]]. The [[condition]]s and [[event]]s to which we turn in order to achieve prediction or control—the “[[independent variable]]s”—must now be considered.
[[VB62]]
see [[satiation]]
In a given [[verbal]] [[community]], certain responses are characteristically followed by certain consequences. Wait! is followed by someone’s waiting and Sh-h! by silence. Much of the verbal behavior of young children is of this sort... These effects are not inevitable, but we can usually find one consequence of each response which is commoner than any other... When a response is characteristically reinforced in a given way, its likelihood of appearing in the behavior of the speaker is a function of the [[deprivation]] associated with that [[reinforcement]]
A “[[mand]],” then, may be defined as a verbal operant in which the response is reinforced by a characteristic consequence and is therefore under the functional control of relevant conditions of deprivation or aversive stimulation In particular, and in contrast with [70] other types of verbal operants to be discussed later, the response has no specified relation to a prior stimulus. [instead it is with [[deprivation]] ]
[[VB69]]
The [[information]] in a description depends on the [[observer]]’s ability to draw conclusions from this [[description]].
[[HE38]]
the desire to build or create the new, a better society, something that is impossible in the structures as we have them today...
Never a [[lack]]
[[machinic assemblage]] of desire
"with desire defined as a process of production without reference to any exterior agency, whether it be a lack that hollows it our or a pleasure that fills it in)." [[ATP p154-1]]
[[molecule]]
[[matter]]
[[particle]]
[[element]]
[[unformed]]
[[flow]]s
All these terms are related in some way, they appear at this moment as being related to types of matter prior to stratification, or [[destratified]]
[[strata]]
[[stratum]]
The new [[archivist]] proclaims that henceforth he will deal only with [[statement]]s. He will not concern himself with what previous archivists have treated in a thousand different ways: [[proposition]]s and [[phrases]]... Is this perhaps an [[atonal]] [[logic]]?
In order, these are diagonal to a vertical hierarchy, and a horizontal relationship.
If the [[repetition]] of [[statement]]s is [[subject]] to such strict [[condition]]s, this is not by virtue of [[externall]] [[condition]]s but as a result of that [[internal]] materiality that makes repetition itself the [[pwer]] that a statement is alone in possessing. A statement always defines itself by establishing a specific link with something else that lies ont he smae [[level]] as itself: that is, something else which concerns the statement itself (and not the [[meaning]] or [[element]]s of that statement).
This 'other thing' may also be a statement, in which case the statement openly repeats itself. But rather than being a statement, almost inevitably it is something foreign, something outside. That is to say, it involves the pure [[transmission]] of unique elements which remain indeterminate [[point]]s, since they are not yet defined and [[limit]]ed by the [[curve]] of the statement that joins them up and assumes a certain [[form]] in their [[presence]]. [[Foucault]] shows, then, that a curve, a [[graph]], a [[pyramid]] are statements, but that what they [[represent]] is not a statement. Similarly the letters written out by me, AZERT, are a statement, even though these same letters do not form a statement on a keyboard.
[[DF p9/10-1]]
[[Foucault]]s choice of criteria: the [[word]]s, [[phrase]]s and [[proposition]]s examined by the [[text]] must be those which revolve round different focal [[point]]s of [[power]] (and resistance) set in play by a particular [[problem]]. For [[example]]...
[[DF p11/12-1]]
...[[statement]]s are essentially rare... this is one of the characteristics that makes them different from [[proposition]]s and [[phrase]]s.
[[DF p1-1]]
Whether [[discursive]] or [[nondiscursive]], [[formation]]s families and [[multiplicity]]s are [[historical]]. They are not just compounds built up from their coexistence but are inseparable from 'temporal reactors of derivation'; and when a new formation appears, with new [[rule]]s and [[series]], it never comes all at once, in a single [[phrase]] or act of creation, but emerges like a series of 'building blocks', with gaps, [[trace]]s and reactivations of former [[element]]s that survive under the new rules.
Despite [[isomorphism]]s and [[isotopy]]s, no formation provides the [[model]] for another. The theory of [[division]] is therefore an essential part of the [[system]].
[[DF p17-1]]
...the first to [[invent]] this new [[concept]]ion of [[power]]... is the [[subject]] [[matter]] of [[Discipline and Punish]]. even though [[Foucault]] touches on it only in a few pages at the beginning of the [[book]]... he adopts a method that is completely different from the [[thesis]].
[[DF p21-1]]
[[power]]... is less a [[property]] than a [[strategy]], and its [[effect]]s cannot be [[attribute]]d to an appropriation 'but to dispositions, manoeuvres, tactics, [[technique]]s, [[function]]ings'; 'it is exercised rather than possessed; it is not the "privilege", acquired or reserved, of the [[dominant]] [[class]], but the overall effect of its strategic [[position]]s.'
This new [[functionalism]] or functional analysis certainly does not deny the existence of class and class-struggle, but illustrates it in a totally different way, with [[landscape]]s, characters and behaviour that are different from those to which traditional [[history]], even of the [[Marx]]ist variety, has made us accustomed. We are shown 'innumerable [[point]]s of confrontation, focuses of instability, each of which has its own risks of conflict, of struggles, of an at least temporary inversion of power-relations.'
Inatead of [[analogy]], [[homology]], or [[univocal]]ity, we have a new kind of possible [[continuity]]. In brief, power is not [[homogenous]] but can be defined only by the particular points through which it passes.
[[DF p24-1]]
...the [[State]] itself appears as the overall [[effect]] or result of a [[series]] of interacting wheels or [[structure]]s which are located at a completely different [[level]], and which constitute a '[[microphysic]]s of [[power]]'. Not only private [[system]]s, but explicit parts of the [[machine]]ry of the State have an origin, a behaviour and a [[function]] which the State ratifies, [[control]]s or is even content to cover rather then institute.
[[DF p25-1]]
One of the basic ideas in [[Discipline and Punish]] is that modern societies can be defined as disciplinarian, but [[discipline]] cannot be identified with any one [[institution]] or [[apparatus]] precisely because it is a type of power, a [[technology]], that traverses every kind of apparatus or institution, linking them, prolonging them, and making them [[converge]] and [[function]] in a new way. This holds even when the particular parts or [[wheel]]s are as obvious a part of the [[State]], as the [[police]] or [[prison]]...
[[DF p25-2]]
In so far as it administers [[punishment]], [[prison]] possesses a necessary [[autonomy]] and in turn reveals a 'disciplinary [[supplement]]' which goes beyond the [[machine]]ry of [[State]], even when used by it. In brief, [[Foucault]]'s [[functionalism]] throws up a new [[topology]] which no longer locates the [[origin]] of [[power]] in a privileged place, and can no longer accept a [[limit]]ed [[local]]ization (this [[concept]]ion of social [[space]], like the [[continuity]] mentioned above, is that of contemporary physics and mathematics).
Here we can see that local has two very different [[meaning]]s: [[power]] is local because it is never [[global]], but it is not local or localized because it is diffuse.
[[DF p25/26-1]]
A [[function]]al [[microanalysis]] takes... a strict [[immanence]] where [[center of power]]s and disciplinary [[technique]]s form multiple [[segment]]s, linked to one another in which the [[individual]]s of a [[mass]] traverse or inhabit, [[body]] and soul (family, barracks, school, factory...) The thing called [[power]] is characterized by [[immanence]] of [[field]] without [[transcendent]] unification, continuity of [[line]] without [[global]] centralization, and contiguity of [[part]]s without distinct totalization: it is a [[social]] [[space]].
[[rigid]] [[segmentarity]]
[[DF p26-1]]
[[power]] has no [[essence]]; it is simply [[operation]]al. It is not an [[attribute]] but a [[relation]]; the [[power-relation]] is the set of possible relations [[between]] forces, which passes through the [[dominated]] [[force]]s no less than through the [[dominating]], as both these forces constitute unique [[element]]s.
[[DF p27-1]]
Far from [[operate]]ing in a general or appropriate sphere, the [[power-relation]] establishes itself wherever [[individual]] features, however tiny, are to be found: [[relation]]s [[between]] [[force]]s such as 'boundary disputes, quarrels between parents and children, domestic tiffs, drunkenness and debauchery, public squabbles and a load of [[secret]] affairs'.
[[power]] seems to not be something that an individual has, like a object, an 'I have power' but something that exists in the unfolding/operation/[[flow]] of a [[process]]; there is a very [[function]]al aspect that is pre-human that is on display here. Not an 'I have power' but a being-used by power. Power as an [[event]], as an (element?) within a [[haecceity]]
[[DF p27-2]]
[[power]] does not come about through [[ideology]], even when it concerns the [[soul]]; it does not necessarily separate through [[violence]] and [[repression]], even when it weights on the [[body]]. Or rater, violence [[express]]es well the effect of a [[force]] on something, some object or being. But it does not express the [[power-relation]], that is to say the relations between force and force, 'an action upon an action'.
A relation [[between]] force is a [[function]] of the type 'to incite, to provoke, to combine...'. In the case of [[disciplinary]] [[society]]s, we should say: to allocate, to classify, to compose, to normalize. The first is indefinite and varies in each case. Power 'produces [[reality]]' before it represses. Equally it produces [[truth]] before it ideologizes, abstracts, or masks.
[[grammar]] [[control societies]] [[discipline]] [[event]]
[[DF p28-1]]
A discussion of [[power]] and [[sexuality]], then power and [[law]]/[[State]]
[[DF p28/29-1]]
[[Foucault]] also tries to assure us, though: if it is true that [[statement]]s are essentially rare, no originality is needed to produce them... A statement always represents a [[transmission]] of particular [[element]]s distributed in a corresponding [[space]]. As we shall see, the [[formation]]s and [[transformation]]s of these spaces themselves pose [[topological]] [[problem]]s that cannot be adequately described in terms of [[creation]], beginning or [[foundation]]. When studying a particular space, it matters even less whether a statement has taken place for the first time, or whether it involves a [[repetition]] or reproduction.
What counts is the [[regularity]] of the statement; it represents not the average, but rather the whole statistical curve. In effect the statement is to be associated not with the [[transmission]] of particular elements presupposed by it but with the shape of the whole [[curve]] to which they are related, and more generally with the [[rule]]s governing the particular [[field]] in which they are distributed and reproduced.
[[DF p2-1]]
Previous pages discuss [[content]]/[[expression]]. then
[[form]] here can have two [[meaning]]s: it forms or [[organize]]s [[matter]]; or it forms or finalizes [[function]]s and gives them aims. Not only the [[prison]], but the hospital, the school, the barracks and the workshop are formed matter. Punishment is a formalized function, as is care, education, training, or enforced work. The fact is that there is a kind of correspondence [[between]] them, even though the two forms are irreducible (in fact, care was not the function of the seventeenth-century hospital and the penal law in the eighteenth century does not refer essentially to [[prison]]). So how can we explain such a coadaptation? The reason lies in the fact that we can conceive of pure matter and pure functions, [[abstract]]ing the forms which embody them.
Seems like the first is content, then expression. Content-matter, expression-function.
[[DF p29-2]]
When [[Foucault]] defines [[Panopticism]], either he specifically sees it as an optical or luminous arrangement that characterizes [[prison]], or he views it [[abstract]]ly as a [[machine] that not only [[affect]]s visible [[matter]] in general (a workshop, barracks, school or hospital as much as a prison) but also in general pass through every articulable [[function]]. So the abstract [[formula]] of Panopticism is no longer 'to see without being seen' but to impose a particular conduct on a particular [[human]] [[multiplicity]].
We need only insist that the multiplicity is reduced and confined to a tight [[space]] and that the imposition of a [[form]] of conduct is done by distributing in space, laying out and serializing in [[time]], composing in space-time, and so on. The list is endless, but it is always concerned with [[unformed]] and un[[organize]]d matter and unformalized, unfinalized [[function]]s, the two [[variable]]s being indissolubly linked.
[[DF p33-1]]
Prior pages discuss [[Tarde]], [[assemblages, and diagrams/AM, then on 37 "The [[diagram]] acts as a non-unifying [[immanent]] cause that is [[coextensive]] with the whole social [[field]]: the [[abstract machine]] is like the cause of the concrete [[assemblage]]s that execute its [[relation]]s; and these relations [[between]] [[force]]s take place 'not above' but within the very tissue of the assemblages they produce.
[[DF p33/34-1]]
there is a correlation or [[mutual presupposition]] between cause and effect, between [[abstract machine]] and concrete assemblage]]s (it is for the latter that [[Foucault]] most often reserves the term '[[mechanism]]s')
[[DF p37-1]]
Things can be realized only though doubling or dissociation, creating [[divergent]] [[form]]s among which they can then be distributed.
[[ramify]]
[[metaphysics]]
[[DF p37-2]]
It is not an exaggeration to say that every [[mechanism]] ([[assemblage]] is a mushy mixture of the visible ([[content]]) and the articulable ([[expression]]): 'The prison [[syste]] combiones ins a single [[figure]] [[discourse]]s and [[architecture]]\s', [[program]]s and mechanisms.
[[DF p38-1]]
[[Foucault]]: 'there is no [[power-relation]] without the correlative constitution of a [[field]] of [[knowledge]] that does not presuppose and constitute at the same time [[power]] relations.' Footnote 26 contains more info
[[power/knowledge]]
[[DF p38-2]]
There are many places from which any [[subject]] can produce the same [[statement]], and they can vary greatly. But precisely because different [[individual]]s can intervene in each case, a statement accumulates into a specific [[object]] which then becomes preserved, transmitted, or repeated. This accumulation resembles the building up of a stock of provisions; it is not the opposite of rarity, but an effect of the same rarity. In this way it replaces notions of [[origin]]s and a return to origins: like [[Bergson]]ian [[memory]], a statement preserves itself within its own [[space]] and continues to exist while this space endures or is reconstituted.
[[DF p3/4-1]]
We must distinguish [[between]] three different [[realm]]s of [[space]] which encircle any [[statement]]. First of all there is [[collateral]] space, an [[associate]] or [[adjacent]] [[domain]] formed from other statements that are part of the same [[group]]... There is no homogenous space that remains unlocalized: the two [[element]]s merge at the [[level]] of the [[rule]]s of formation. The important [[point]] is that these rules of formation cannot be reduced either to [[axiom]]s, as in the case of [[proposition]]s, or to a single [[context]], as in the case of [[phrase]]s.
Propositions refer vertically to axioms on a higher level which in turn determine certain [[constant]] and [[intrinsic]] [[factor]]s and define a homogenous [[system]]. The establishment of such homogenous systems is indeed one of the [[condition]]s of [[linguistic]]s. As for phrases, one of their members can be found in one system and another in a different system, in accordance with certain [[extrinsic]] [[variable]] [[factor]]s.
[[DF p4-1]]
Discussion of [[strata]] [[content]]/[[expression]] [[form]] [[substance]] as they apply to [[institution]]s, such as [[prison]]s and [[school]]s and [[law]] and [[statement]]s
Substance of students, form of the school, prisoners/convicts and the prison
Form of the [[statement]], substance of the [[object]] of the statement.
"Just as penal law as a [[for of expression]] defines a place of visibility ('[[Panopticism]]', that is to say a place where at any moment one can see everything without being seen).
[[DF p39-1]]
A way of seeing and saying, [[discursive]] practices and [[form]]s of self-evidence: each [[stratum]] is a combination of the two, and in the move from one stratum top the next they vary in terms of [[composition]] and combination.
[[strata]] [[control societies]] [[content]] [[expression]]
[[DF p48-1]]
A [[statement]], however, is something completely different: it is inseparable from an [[inherent]] [[variant]]. Consequently, we never remain wholly within a single [[system]] but are continually passing from one to the other (even within a single [[language]]). A statement operates neither [[laterally]] nor [[vertically]] but [[transversally]], and its [[rule]]s are to be found on the same [[level]] as itself. Perhaps [[Foucault]] and [[Labov]] are similar in this respect, especially when the latter demonstrates how a young Black can move back and forth between 'Black English' and 'standard American' in accordance with rules which are in themselves [[variable]] and [[optional]] and which allow us to define [[regularity]]s but not [[homogeneity]]s.
Even when they seem to operate within the same [[language]], statements of a [[discursive formation]] move from description to observation, calculation, institution and prescription, and use several systems or languages in the [[process]]. A [[group]] or [[family]] of statements is in fact 'formed' by rules of [[change]] or [[variation]] to be found on the same level, and these rules make the 'family' a [[medium]] for [[dispersion]] and [[heterogeneity]], the very opposite of a homogeneity.
[[DF p4/5-1]]
...there is nothing prior to [[knowledge]], because knowledge, in [[Foucault]]]'s new [[concept]] of it, is defined by the [[combination]]s of the [[visible]] and the [[articulable]] that are unique to each [[stratum]] or historical [[formation]]. Knowledge is a practical [[assemblage]], a [[mechanism]] of [[statement]]s and [[visibility]]s. There is therefore nothing behind knowledge (although, as we shall see, there are things outside knowledge.
That is to say that knowledge exists only according to widely varying [[threshold]]s which impose particular [[layer]]s, [[split]]s, and [[direction]]s on the stratum in question. In this respect, it is not enough to speak of a 'threshold of epistemologization': the latter is already moving in a direction that leads to [[science]], and will still cross a threshold of 'scientificity' and ultimately a 'threshold of [[formalization]]'. But other threshold, moving off in other directions, also leave their [[mark]] on the stratum: thresholds involving [[ethic]]s, [[aesthetic]]s, [[politic]]s, etc.
Knowledge is not science and cannot be separated from the various thresholds in which it is caught up, including even the experience of [[perception]], the [[value]]s of the [[imagination]], the prevailing ideas or commonly held [[belief]]s. Knowledge is the [[unity]] of stratum which is distributed beneath different [[orientation]]s, of which science is only one. There are only [[practice]]s, or [[positivity]]s, which are constitutive of knowledge: the [[discursive]] [[practice]]s of [[statement]]s, or the [[nondiscursive]] practices of [[visibility]]s. But these practices still exist beneath [[archaeological]] thresholds whose shifting points of [[demarcation]] constitute the historical differences between strata.
[[unity of composition]]
[[DF p48-2]]
...the task of [[archaeology]] is [[double]]: it must open up [[word]]s, [[phrase]]s, and [[proposition]]s, open up [[quality]]s, [[thing]]s, and [[object]]s. It must [[extract]] from words and l[[language]] the [[statement]] corresponding to each [[stratum]] and its [[threshold]]s, but equally extract from [[thing]]s and [[sight]] the [[visibility]]s and '[[self-evidence]]s' unique to each [[stratum]].
[[DF p51-1]]
...the historical [[being]] of [[language]]... constitutes a [[form]] of [[exteriority]] in which the [[statement]]s of the corpus under consideration appear by way of [[dispersal]] and [[dissemination]]. It is a [[distribute]]ive [[unity]].
Everything which has just been said about the statement and its [[condition]]s must also be said about [[visibility]]. [see last few pages]
[[DF p53-1]]
As [[statement]]s are inseparable from [[system]]s, so [[visibility]]s are [[inseparable]] from [[machine]]s. A machine does not have to be [[optical]]; but it is an [[assemblage]] (he says [[assembly]]) of [[organ]]s and [[function]]s that makes something [[visible]] and [[conspicuous]] (the machine [[prison]]...).
[[DF p56/57-1]]
[[Foucault]] provided a general [[formula]]... A first [[light]] opens things up and brings forth [[visibility]]s as flash and shimmerings, which are the 'second light'.
is [[DnP p185-1]] a good example? I think yes.
[[DF p58-1]]
..the [[visible]] cannot be reduced to a perceptible [[thing]] or [[quality]]... [[visibility]]s are not defined by sight but are [[complex]]es of [[actions and passions]], actions and reactions, multisensorial complexes, which emerge into the light of day... [[thought]] is what sees and can be described visibly.
[[DF p58-2]]
The conclusion we can [[draw]] is that each historical [[formation]] sees and reveals all it can within the [[condition]]s laid down for [[visibility]], just as it says all it can within the conditions relating to [[statement]]s. Nothing is ever [[secret]], even though nothing is even immediately [[visible]] or directly readable. And in both cases... they are two [[form]]s of [[exteriority]] within which [[dispersion]] and [[dissemination]] take place, sometimes of [[statement]]s, sometimes of [[visibility]]s. [[language]] 'contains' [[word]]s, [[phrase]]s, and [[proposition]]s, but does not contain [[statement]]s which are disseminated in accordance with certain [[nondecomposable]] distances. Statements are [[disperse]]ed in accordance with their [[threshold]] and [[family]]. This applies equally to [[light]], which contains [[object]]s, but not [[visibility]]s... it is a mistake to think that [[Foucault]] is interested in the [[environment]]s of [[enclosure]] as such: [[hospital]]s and [[prison]]s are first and foremost places of visibility dispersed in a [[form]] of exteriority, which refer back to an [[extrinsic]] [[function]], that of setting one apart and [[control]]ling.
[[DF p59-1]]
This is the nature of the [[associate]] or [[adjacent]] [[space]]: each [[statement]] is inseparable via certain [[rule]]s of change ([[vector]]s). And not only is each statement in this way inseparable from a [[multiplicity]] that is both 'rare' and regular, but each statement is itself a [[multiplicity]], not a [[structure]] or a [[system]]. This [[topology]] of statements contrasts both with the [[typology]] of [[proposition]]s and with the [[dialectic]] of [[phrase]]s. It is our belief that a statement, a [[family]] of statements, or a [[discursive formation]] is first of all defined for [[Foucault]] by certain [[inherent]] [[line]]s of [[variation]] or by a [[field]] of vectors which cut through the associate space: the statement therefore exists as a [[primitive function]], or as the first meaning of the [[term]] [[regularity]].
[[DF p5-1]]
The second [[area]] is that of [[correlative]] [[space]], which is not to be confused with the [[associate]] space. Here we are concerned with the link a [[statement]] entertains, not with other statements, but with it's [[subject]]s, [[object]]s, and [[concept]]s. In this we might discover new differences between a statement on the one hand and [[word]]s, [[phrase]]s or [[proposition]]s on the other. In fact phrases are linked to a so-called [[subject of enunciation]] who seemingly has the power to begin a [[discourse]]: this involves a linguistic [[I]] that cannot be reduced to [[he]] even when it is not explicitly formulated, since it sets things in motion or is [[self-referential]].
The phrase is therefore analyzed from the double viewpoint of the [[intrinsic]] [[constant]] (the [[form]] of the I) and the [[extrinsic]] [[variable]]s (where he who says I creates a [[sense]] of [[form]]). The situation is completely different for a statement, which refers back not to a unique form but to certain intrinsic positions (within an [[assemblage]]; a [[collective assemblage]]?)which are extremely variable and form part of the statement itself.
For example, if a literary statement refers us back to an author, an anonymous letter can equally imply an author, but in a completely different sense; while an ordinary letter refers to a signatory, a contract necessitates an underwriter, a poster implies a copywriter, a collection indicates the existence of a compiler and so on. All this forms part of a statement, even though it has nothing to do with the nature of a phrase: it is a [[function]] derived from the [[primitive function]]: that is, a function derived from the statement.
[[DF p6-1]]
It is neither a [[history]] of mentality, nor of [[behavior]]. Speaking and seeing, or rather [[statement]]s and [[visibility]]s, are pure [[element]]s, [[a priori]] [[condition]]s under which all ideas are formulated and behavior displayed, at some moment or another.
[[DF p59/60-1]]
The link between the [[statement]] and a [[variable]] [[subject]] in itself constitutes a [[variable]] that is intrinsic to the statement... The same statement can therefore offer
several different positions for the speaking [[subject]], involving an author and a narrator or a signatory and an author, as in... a reporter and whatever is reported, as in [[indirect discourse]] (and above all in free indirect discourse, where the two different positions occupied by the speaking subject imply one another Note: [[subject of the statement]] and [[subject of enunciation]]?)
But all these positions are not the various [[form]]s of a primordial [[I]] from which a statement stems: on the contrary, these positions stem from the statement itself and consequently [[become]] the categories of 'non-person', 'he', 'one', 'He speaks' or 'One speaks', which are defined by the [[family]] of statements. Here [[Foucault]] [echoes [[Blanchot]] in denouncing all [[linguistic]] personology and seeing the different positions for the speaking subject as located within a deep anonymous murmur. It is within this murmur without beginning or end that Foucault would like to be situated, in the place assigned to him by statements. And perhaps these are Foucault's most moving statements.
[[DF p6-2]]
A [[proposition]] is supposed to have a [[referent]]. That is to say that while reference or [[intentionality]] is [[intrinsic]] and [[constant]] in propositions, whatever fulfills that purpose is [[extrinsic]] and [[variable]]. But this is not the case with [[statement]]s; a statement has a '[[discursive]] [[object]]' which does not derive in any [[sense]] from a particular [[state]] of things, but stems from the statement itself. It is a derived object, defined precisely by the [[limit]]s to [[line]]s of [[variation]] of the statement existing as a [[primitive function]].
[[DF p7-1]]
...[[power]] is a [[relation]] between forces, or rather every relation between [[force]]s is a 'power relation'... force has no object other than that of other forces, and no being other than that of relation: it is 'an action upon an action, on existing [[action]]s, or on those which may arise in the present or future'; it is 'a set of actions upon other actions.'... to incite, to induce, to seduce... and so on... Therefore we should not ask what is power and where does it come from, but how is it practiced? p71
[[DF p60-1]]
The [[power]] to be [[affect]]ed is like a [[matter]] of force, the power to affect is like a [[function]] of [[force]]...
The [[form]]s which give functions ends and means (education, care, punishment, production) or the formed [[substance]]s acted upon by the function (prisoners, the sick, schoolchildren, madmen, workers, soldiers, and so on)...
A [[category]] of power exists, as a [[pure]] disciplinary function. [[Foucault]] will therefore name this the [[diagram]], a function that must be 'detached from any specific use,' as from any specified substance.
We can therefore define a diagram in several different, [[interlock]]ing different ways: it is the presentation of the relations between forces unique to a particular [[formation]]; it is the [[distribution]] of the power to affect and the power to be affected; it is the mixing of non-formalized pure functions and unformed pure matter.
[does it formalize the functions and form pure matter through its use on forms and substances listed above? power abstracted to the level of [[diagrammitism]]?]
[[DF p70-1]]
Between the [[relation]]s between [[force]]s constituting [[power]] and the relations between [[form]]s constituting [[knowledge]], is there not once again a difference similar to the one experienced between the tow forms or formal [[element]]s of knowledge? Between power and knowledge there is a difference in nature or a heterogeneity; but there is also a mutual [[presupposition]] and [[capture]]; and there is ultimately a primacy of the one over the other. First of all there is a difference in nature, since power does not pass through forms, but only through forces. Knowledge concerns formed [[matter]]s ([[substance]]s) and formalized [[function]]s, divided up [[segment]] by segment according to the two great formal [[condition]]s of seeing and speaking, [[light]] and [[language]] ([[double articulation]]): it is therefore [[strata]]fied, archivized, and endowed with a relatively [[rigid]] [[segmentarity]].
Power, on the other hand, is [[diagrammatic]]: it mobilizes non-stratified matter and functions, and unfolds with a very [[supple]] segmentarity. In fact, it passes not so much through forms as through particular [[point]]s which on each occasion [[mark]] the application of a force, the action or reaction of a force in relation to others, that is to say and [[affect]] like 'a state of power that is always [[local]] and [[unstable]]'. This leads to a fourth definition of the [[diagram]]: it is a [[transmission]] or [[distribution]] of particular [[feature]]s.
[[DF p72/3-1]]
...the [[correlative]] [[space]] is the [[discursive]] order of places or positions occupied by [[subject]]s, [[object]]s, and [[concept]]s in a [[family]] of [[statement]]s. This is the second sense of '[[regularity]]', for these different places represent particular [[point]]s. The [[system]] of words, [[phrases]] and [[propositions]], which operates through the use of an [[intrinsic]] [[contrast]] and an [[extrinsic]] [[variable]], differs fundamentally from the [[multiplicity]] of statements, which operates on the principle of an [[inherent]] [[variation]] and an [[intrinsic]] [[variable]]. What seems accidental from the viewpoint of words, phrases and propositions [[become]]s the [[rule]] from the viewpoint of statements. In this way [[Foucault]] lays the foundations for a new [[pragmatic]]s.
[[DF p7/8-1]]
the [[complementary]] [[space]] of [[nondiscursive]] [[formation]]s ('instructions, political events, economic practices and [[process]]es').... Any [[institution]] implies the existence of [[statements]] such as a constitution, a charter, contracts, registrations and enrolments. Conversely, statements refer back to an institutional [[milieu]] which is necessary for the formation both of the [[object]]s which arise in such examples of the statement and of the [[subject]] who speaks from this [[position]] (...the position of the writer in society...the doctor in the hospital... in any given period, together with the new [[emergence]] of objects).
But here again, [[between]] nondiscursive formations of institutions and the discursive formations of statements, there is a great temptation to establish either a sort of vertical parallelism such as might exist between two [[expression]]s symbolizing one another (primary relations of [[expression]]) or a horizontal [[causality]] in which [[event]]s and institutions would determine the nature of the supposed author of the statement (secondary relations of reflection.) At all events, a [[diagonal]] movement creates a third possibility: discursive relations [[become]] associated with a nondiscursive [[milieu]], which are not in themselves situated either inside or outside the group of statements but form the above-mentioned [[limit]], the specific [[horizon]] without which these objects could neither appear nor be assigned a place in the statement itself,
[[DF p9-1]]
treat the [[encounter]] as the [[sign]] of what is to be [[thought]].
[[ethics]]
[[DG99/100]]
"That
which can only be sensed (the [[sentiendum]] or the [[being of the sensible]])
[[DG101]]
the [[encounter]], like the [[simulacrum]], is precisely a difference without
model, a difference that evades the [[model]]. If problems are understood
in terms of their intrinsic solvability, then they are understood in an
empirical sense, which in turn leads us to transcendental accounts based
on [[conditioning]] rather than [[genesis]], external difference rather than
internal and essential difference. For this reason, the [[perplicate]]ion which
takes place in the [[sentiendum]] forces us to problematize recognition, to
determine the manner in which it is based on poorly analyzed composites
and [[mix]]tures, to rediscover true differences in nature or kind lying
beneath the differences in degree belonging to recognition. It is in this
respect that the sentiendum forces us to pose a [[problem]]. The sentiendum
functions as a sort of imperative
[somewhere in [[Difference and Repetition]] [[question]]s are imperatives].
[[DG102]]
Since
[[image]]s too must be [[actualize]]d, they have a [[virtual]] [[dimension]] that lacks
any [[resemblance]] to the [[actual]] as well (see DR 1 00-101, 208-2 1 ) . The
[[differential]]s are [[potential]] or virtual in that they preside over a [[becoming]],
a [[duration]], which is not yet completed.
this becoming is creative in that it creates its own form of
being in [[unfold]]ing.
[[DG103]]
If irregular [[function]]s are important,
then this is because they represent a form of [[movement]] that cannot be
graphed or visualized in intuition. This means that there are possibili
ties of [[thought]] not in service of [[intuition]] which are also not dogmatic.
[[DG106]]
Habitus can no less account for this passing
than the notion of time as a collection of instants because [[habitus]] re
quires a sense of this passing in order to effect its [[synthesis]].
[[DG107]]
the aim of Deleuze's transcendental or superior
empiricism would be to discover or uncover those [[differential]]s or rules
out of which our [[intuition]] is [[produced]] (here it bears noting that these
rules are not representations of the regularities we find in our intuition,
but are, as Deleuze argues, the [[genetic]] factors that produce our intu
ition).
For Deleuze the [[given]]
is that which must be accounted for or produced such that it does not
explain but must be explained. The given is the result of a genesis or
[[production]] and is thus not an origin but that which must be originated.
As we shall see later in this book, the qualitative givens of [[experience]] are
the result of differentials (in the sense of calculus). Insofar as differen
tials function as the productive rules for the qualitative givens of being,
The empiricism of Deleuze's position thus refers not to the thesis
that intuition or sensibility functions as the origin of our knowledge but to the opposition between the
[[clear]] and the [[obscure]] or [[confuse]]d as it functions in intuition. Given that
very few of our intuitions have the deductive and constructive attributes
that we find in mathematical intuition, thought finds itself most fre
quently dependent upon obscure and confused intuitions in its think
ing. In other words, in most cases we are [[unconscious]] of the productive
rules governing our intuitions and must thereby have recourse to re
ceptive [[affectivity]]-which consists only of the effects of these rules-in
order to arrive at a knowledge of being.
[[genesis]] [[transcendental empiricism]]
[[DG9]]
[[Habitus]] is not something per
taining simply to psychic life, to the little ticks we develop in the course
of our [[develop]]ment, but is the biological principle par excellence. As
such, it pertains to the organization of the [[brain]] as well. It is for this rea
son that Deleuze is able to say that [[Memory]] is an originary dimension of
being itself, or as we saw before, that [[memory]] is [[Being]]. When the brain
itself, when [[matter]] itself, comes to be understood in terms of habitus,
then it becomes dependent upon this dimension of Memory in effect
ing its syntheses. Memory becomes the [[ground]] upon which these syn
theses can effectuate themselves.
memory as the ground of matter (habitus)
[[DG109]]
To say that [[Memory]], [[mnemosyne]], or the [[memorandum]]
can only be remembered is to say ( 1 ) that it is not lived in [[sensibility]]
or as an [[actuality]], and (2) that in remembering the memorial we place
ourselves directly within [[memory]] or the [[past]]. In other words, [[memory]] is
an ontological dimension of [[experience]] itself and is not the memory of
once lived, but now past, empirical experiences. Deleuze thus pairs that
which is remembered and memory as such.
[[DG110]]
One will notice that the process of [[actualization]] always implies an inter
nal temporality, variable according to what is [[actualize]]d. Not only does
each type of social production have a global internal [[temporal]]ity, but its
organized [[part]]s have particular [[rhythm]]s. As regards time, the position
of structuralism is thus quite clear: time is always a time of actualization,
according to which the elements of [[virtual]] [[coexistence]] are carried out
at diverse rhythms. Time goes from the virtual to the [[actual]], that is, from
structure to its [[actualize]]ation, and not from one [[actual]] form to another.
("HRS" 268-69)
Insofar
as experience is spatialized and composed of mixed composites and
differences in degree, and insofar as [[Memory]] is essentially forgotten,
the relations organizing and informing our [[experience]] become invis
ible or efface themselves. We fail to recognize a specifically structural causality
[[DG111]]
[[paradox]] has the form of an [[encounter]].
[[DG112]]
For Deleuze, [[time]] does not move in a
linear fashion from [[instant]] to instant, but progresses by perpetually
[[divide]]ing itself between [[past]] and [[present]] like a river dividing its [[flow]] at a
fork between two streams.
[[DG113]]
representation, [[presence]], is already pervaded by
[[difference]] and absence . Presence always already differs from itself.
The first [[passive synthesis]] of time [[contract]]s differences to form what
Deleuze calls a "[[signal]]-[[sign]] system." In other words, it sets up a system
of temporal relations between differences which function as signs of
[[retention]] and [[expectation]] within [[experience]].
It is necessary for there to be a system of sign relations preceding any act
of active representation on the part of consciousness. One might say that
there must be a system of "[[index]]icals" upon which active representation
is based.
[[DG114]]
The [[past]] is the third term functioning as
the medium of communication in which [[event]]s [[unfold]]. It is the pure
past, the [[past]] as such, which enables the [[active synthesis]] to reproduce
the former present in the present present, and which allows the first
[[passive synthesis]] to [[contract]] differences in the formation of a living
present or [[duration]].
[[DG115]]
different [[dimension]]s of the [[past]]
are [[actualize]]d with the [[emergence]] of a [[present]].
[[DG116]]
we can see how Deleuze's strategy functions to overcome
the opposition between [[being]] and
[[thinking]] in that [[thought]] is no longer
conceived of as a [[representation]] of being but is instead productive of
being itself. For Deleuze, thought produces its [[intuition]]s through the
[[differential]]s or [[rule]]s that function as productive principles.
In this respect it is
better to say that it thinks than I think.
Being creates, we are part of that creation. Being is not,
for Deleuze, our creation.
The thought involved in the production of intuition is not the thought of
a subject but is thought that unfolds on the part of being itself.
Deleuze's [[transcendental empiricism]] is
an attempt to formulate an ontology--not an epistemology or theory of
knowledge-that locates intelligibility at the level of the [[aesthetic]] or
[[sensible]] itself and to determine what consequences follow from this
position.
[[DG11]]
To [[live]] within an [[event]] is to live within a [[field]] in which truth has
been [[actualize]]d in a particular way, making certain [[truth]]s possible.
[[DG118]]
the ontological dimension
of the past is fully at work in all of our [[experience]].
There is no such thing as a
general [[memory]], an abstract memory. Rather, memories always have the [124]
character of events. What is general in memory is not memory as such,
but the [[motor]] [[diagram]]s or schemes that come to be formed between
memory and [[habit]], between the first synthesis of time and the second
synthesis of time. For it is in the dimension of the future as it is found in
[[habitus]] that generality, serving as the foundation of the [[active synthesis]]
of recognition, comes to characterize our experience.
[[essence]] was defined in [[Leibniz]]ian
fashion as a point of [[view on the world]] centering around individuating
difference.
[[DG120]]
It is the degrees of [[contract]]ion and [[relax]]ation which ensure the
[[singularity]] of each [[level]] of [[memory]]. This point can be elucidated by
drawing on an empirical example. Here we can only use empirical ex
amples to elucidate the point because ( 1 ) memory as such is necessar
ily forgotten and is thus unspeakable, and (2) because any discussion of
memory constitutes a creative actualization of memory which draws it
into empirical experience. To say that the Revolutionary War was a war
for American independence from England represents a very relaxed
degree of the past. This is because it leaves the relations composing the
war highly unspecified. A greater contraction of such a memory would
consist in claiming that the war was brought about due to a lack of rep
resentation with respect to taxes. Finally, the greatest degree of contrac
tion would consist in living through an individual skirmish expressive
of the war as an event. In each of these cases the degree or level of the
past involved is distinct from the others, yet nonetheless they all express
one another in a manner similar to Russian dolls embedded within one
another. Each contraction involves a specification of relations moving
forward in degrees of ever-greater complexity. It is in this sense that the
past coexists with itself. Not only do the various levels of memory [[coexist]] with one another, but they [[express]] or [[implicate]] one another as well.
[[DG123]]
[[memory]] serves as the condi
tion for the possibility of [[structure]]. If structural causality must be op
posed to mechanical causality, to the causality of the present, this is
because structure does not function like billiard balls exchanging force,
forever changing their configurations, but perpetually reproduces a
pattern within mechanical causality, inhibiting the deterministic rela
tions among objects, allowing for a veritable infinity of [[variation]]s on a
[[theme]].
[[DG125]]
It is
always a matter of returning to the [[system]] underlying [[surface]] manifesta
tions which function as [[genetic]] [[principle]]s.
[[genesis]]
[[DG127]]
with the [[dimension]] of [[memory]], something abso
lutely [[novel]] can be introduced into being through the relation between
the [[level]]s of memory and the first [[passive synthesis]], creating new ways of
[[experience]]ing the world or of being in the [[world]] altogether.
[[DG128]]
[essence]] and [[encounter]] are briefly mentioned
[[DG12]]
Deleuze conceives of a
[[genesis]] of sensibility itself within [[sensibility]], which I referred to earlier
as the experience of experience producing [[experience]].
The [[contemporaneity]] of the past with the present, its [[coexistence]]
with the present, its [[preexistence]] with respect to the present, and the
[[coexistence]] of the past with respect to itself form the four [[paradox]]es of
the pure [[past]].
[[DG129]]
the [[sign]]
which forces us to think, which can only be [[sense]]d, calls into question
the nature of our [[experience]].
[[DG131]]
It is not a taste for the bizarre and the unusual which leads us to seek the
[[model]] of [[thought]] in "stranger and more compromising adventures,"
but rather that these examples are better able to reveal what belongs to
thought by right as opposed to examples that homogenize thought ac
cording to a model of "normal functioning."
[[schizophrenia]]
quotes from DR 135
Just as
we can be certain that there is thought without being certain of what is
thought in the case of the [[formation]]s of the [[unconscious]], so too should [139]
we treat the [[encounter]] as a [[sign]] that thought is taking place without be
ing certain of what is being thought.
[[DG132]]
if the [[image of thought]] must be rejected, it is not to be rej ected on the
grounds that it is moral (this only characterizes what it is) , but on the
grounds that it is inadequate for articulating the form of [[being]] that
it seeks to articulate. What ought to be sought is an amoral Image of
thought, capable of accounting for both moral and immoral images of
thought.
For Deleuze, "feeling ourselves thinking" is not the defining feature of thought, but that
which forces [[thought]] to [[think]].
[[DG138]]
...a finger always calls for [[recognition]] and
is never more than a finger, that which is hard is never hard without also
being soft, since it is inseparable from a [[becoming]] or a relation which in
cludes the opposite within it (the same is true of the large and the small,
the one and the many) . The [[sign]] or point of departure for that which
forces thought is thus the coexistence of contraries, the coexistence of
more and less in an unlimited qualitative becoming. Recognition, by
contrast, measures and limits the quality by relating it to something,
thereby interrupting the mad-becoming. (DR 141)
It is not [[thought]] which the [[sentiendum]] introduces to us, but rather the
[[being of the sensible]] embodied in the [[coexistence]] of contraries in one
and the same becoming. Where recognition selects and limits becoming
to one of the qualities, the being of the sensible shows that both of the
[[quality]]s belong to the same becoming.
[[Logic of Sense]] [[Alice]] [[sensible]]
[[DG140]]
[[essence]] does not
belong to things or [[subject]]s, but rather to the forces [[conditioning]] these
beings, whether these [[force]]s be linguistic, social, historical, or affairs of
[[power]].
Language, the social, the historical, or power become the new es
sences. Peoples, things, time periods, social organizations become the
new [[accident]]s.
Regardless of what Foucault himself thinks he is doing, when he
claims that "man" is the construction or a result of a particular historical
episteme, when he shows that the body is constructed by forces of power,
or that there is no sexuality as such, he does not thereby abolish essence,
but rather shows that such things are unsuitable beings for determining
essence.
[[DG141]]
[[difference]]: The Transcendental Condition
of the Diverse Given
we need a concept of [[essence]]
which is not drawn from the empirical but which instead explains how
this empirical is generated. It is this instance which Deleuze identifies in
difference. "Difference is not diversity. Diversity is given, but difference
is that by which the given is given, that by which the given is given as
diverse" (DR 222)
Difference is
not diversity. Difference is the [[condition]] for [[diversity]].
[[DG145]]
In passing from one
faculty to another and back again the [[problematic]] [[field]] does not remain
unchanged, but changes the nature of [[experience]] itself. It is for this
reason that we can claim that [[problem]]s or [[Idea]]s and [[cogitanda]] are iden
tical while nonetheless claiming that they differ. Thus we can claim that
[[problem]]s are [[essence]]s.
[[DG146]]
[[Idea]]s are not an obj ect or referent thought by the faculties, but
are instead the very process the [[faculty]]es undergo in being [[problematize]]d.
[[DG147]]
[[essence]] is distinct from the subjects and objects
it [[individuate]]s, it nonetheless does not exist outside of these subjects
and objects. Moreover, essence is not independent of its subjects and
obj ects but is the very process in which they [[unfold]]. Hence, in a strange
way, essence is dependent upon subj ects and objects to the same degree
that subjects and obj ects are dependent upon essence. Another way of
putting this would be to say that there is no [[virtualize]]ation without [[actualize]]ation.
the claim that "essence . . . [[implicate]]s, [[envelop]]s, wraps itself
in a subject," that it coils around itself constituting a [[subjectivity]], refers
us to precisely the sort of activity described by the [[play]] of the [[faculty]]s. Essence is not independent of this play, but is rather that which is
produced through the play of the faculties... it can
only be produced in a disharmonious play of the faculties as an effect.
In order to think essence one must think [[recursive]]ly or iteratively, after
the fashion of [[Mandelbrot]], where an operation is repeated upon itself,
producing a new effect in the process. It is for precisely this reason
that [[transcendental empiricism]] is an account of [[learning]] rather than an
[[epistemology]] or an account of coming to know.
[[learning]] assumes a transformation of oneself and how
we relate to the world.
[[Difference and Repetition]]
[[DG148]]
[[other-structure]] is mentioned for the first time
"The Other-structure is the condition under which
we are produced as social [[subject]]s."
[[DG13]]
we cannot say that [[faculty]]s are
mental, but must instead conceive them ontologically in a manner akin
to [[Bergson]]ian [[tendency]]es. The faculties are tendencies within being, not
a subject. Deleuze is thus highly misleading when he evokes the faculties.
The tendencies or faculties are [[condition]]s for subjects, not the reverse.
[[Deleuze]] is perpetually concerned
to [[determine]] faculties like [[sensibility]], [[memory]], [[thought]], [[language]], and
so on in their being rather than their empirical manifestation.
[[DG149]]
The claim that we ought to be tolerant of the views of others is not
simply one [[point of view]], but a regulative principle governing all points
of view.
While there is some merit to reading Deleuze in this way, few
things are more challenging to the supposed presence and fullness of
the subject than the Deleuzian concept of perspective or point of view.
The reason for this is that a point of view or a perspective is not some
thing that belongs to a subj ect, but rather a subj ect belongs to, occupies,
or is occupied by a point of view or [[perspective]]. Another way of saying
this would be to claim that there is not a relativity of [[truth]], but a truth of
relativity. Perspective is indeed a condition for the production of truth
because it exercises a selection which allows diversity or beings to show
forth, to manifest themselves. In other words, while the entire cone of
memory may be expressed, it is not entirely actualized. But this relativ
ity is not a relativity to a subj ect. Consequently, for Deleuze perspective
does not depend on the subject for its being. There is a being proper
to perspective as such. Perspectives are not individuated by their inclu
sion or possession by a subj ect, but rather subj ects and individuals are
individuated by perspectives. The perspective precedes the subject such
that the subject occupies its perspective like a zebra occupies the plains.
It does not exist within the confines of interiority, but is rather an ob
jective structure or style which the subject itself occupies much as one
might occupy a field or plane as a medium of movement.
[[Leibniz]] book
[[DG151]]
A [[perspective]] or [[point of view]] does not [[express]] my subjective
apprehension of the world right now, at this moment, but instead
constitutes a sort of [[system]] or [[structure]] which allows for this subjective
apprehension to take place.
[[DG152]]
an approach beginning with [[problem]]s or the idea
of the [[problematic]] proves superior insofar as we tend to think the be
ing of the problem as that which is not yet [[actualize]]d, and which is thus
independent of individual entities.
[[individual]]s (whether they
be subjects or objects) are not the primary individuating factors of be
ing but must themselves be [[individuate]]d by the [[individuating factor]] of
[[difference]] or [[essence]]...
[[essence]] or [[difference]] does not exist outside of the subjects and objects
[[express]]ing it,
Deleuzian essences are absolutely [[singular]] and thus completely
individuated. It is in the process of [[actualize]]ation, or actualizing essence,
that generalities or what Deleuze calls "[[quality]]s," "[[species]]," and "[[part]]s"
are produced.
[[problem]]s as [[genetic]] instances presiding over the production
of [[solution]]s
[[Difference and Repetition]]
[[DG153]]
We then find here one of the reasons why Deleuze refers to prob
lems as "Ideas." [[Idea]]s or [[problem]]s will be seen to be the [[sufficient reason]] of [[instance]]s or the [[actual]].
[[DG154]]
In the case of [[Plato,]]
this return of the Image of thought consists in universalization of the
[[Idea]]s rather than asking "which one?" "how many?" "how much?" Rath
er than determining the conditions of [[real experience]], Plato remains
tied to the illusion of [[recognition]] that universalizes its own contingent
organization. Although these questions might initially appear to pertain
to instances, they are in fact questions pertaining to the structure and
organization of problems or Ideas: Which Idea or problem of justice?
How many [[dimension]]s or [[singularity]]s does it contain?
[[DG158]]
[[problem]]s or [[Idea]]s have the [[structure]] of [[fiction]]s
because they cannot be said to constitute articles of [[knowledge]], even
though they are what, in another respect, renders knowledge possible.
The principles of [[organization]], of [[structure]], of systematicity are not
themselves objects of verification in a [[denotation]].
[[Idea]]s... as regulative
principles organizing our knowledge.
[[DG159]]
This page has a ton of [[Kant]] on it.
In claiming that [[problem]]s are [[fiction]]s, we ensure that problems
are no longer defined by the criteria of knowledge or [[denotate]]ive [[truth]]
and falsity, but instead must be evaluated in terms of their own intrin
sic criteria.
[[DG164]]
In [[Deleuze]] it is [[being]]
that is [[creative]], that [[create]]s, not the [[individual]].
[[DG165]]
the transcendental [[concept]] of [[problem]]s does
not assume that the problematicity of problems resembles their [[solution]]s, but rather that problems have an immanent [[organize]]ation of their
own irreducible to any particular case of solution. In this respect, all
solutions are absolutely [[creative]] insofar as they represent novel [[actualize]]ations of the problematic [[field]].
[[DG166]]
[[structure]] is the condition of both
[[denotation]] and [[manifestation]]: it is their [[genetic]] principle. Structure,
according to Deleuze, is just what a [[problem]] is and has the status of
being [[virtual]]. "The idea is . . . defined as a structure. A structure of
an [[Idea]] is a 'complex theme, ' an internal multiplicity-in other words,
a system of multiple, non-localisable connections between differential
elements which is incarnated in real relations and actual terms" (DR
183) . If structures, Ideas, or problems are irreducible to either the Real
or the Imaginary, this is because the relations and singularities of which
the [[multiplicity]] is composed are not actual entities, nor the relations
between actual entities. For instance, a structural relation is not a
relation of tallness between two individuals. Relations such as tallness
are only possible on the basis of structural relations which generate the
specific [[space]] within which these individuals are [[actualize]]d.
[[DG167]]
we no longer treat each individual color as an [[essence]],
but rather as a [[variation]] on the [[style]], [[theme]], or [[multiplicity]]. Just as we
saw earlier in the case of "white light," an essence problematically en
velops all its variations. Consequently, structural essences do not trace
themselves from the [[actualize]]d entity, from the form, but instead seek
to determine the [[singularity]]es or [[position]]s and relations belonging to
the multiplicity.
To claim that [[singularity]]es or [[variable]]s are [[ordinal]] (rather than cardi
nal) is to claim that they define a [[position]] rather than a progression in
a series. An ordinal position is not a place from which one can move to
another place. No, to do so would be to either occupy the [[structure]] and
thus assume the positions, or to subtract a position from the multiplicity,
thus forming another multiplicity. Rather, the ordinality of positions is
defined in terms of the other positions belonging to the multiplicity and defines ( 1 ) the variations in continuity the multiplicity can undergo, and
(2) the determination belonging to the multiplicity as such. Each posi
tion does not so much define a space or form, but rather a series of
variations going from zero to infinity in a general [[becoming]]. It is for
this reason that the multiplicity of color is simultaneously "white light"
(degree zero) and all the [[individuate]]d colors found in traversing the
positions as they relate to one another.
[[DG168]]
[[thought]] is the [[faculty]] of [[problem]]s
[[DG170/171]]
To [[learn]] is to enter into the [[universal]] of the [[relation]]s which constitute
the [[Idea]], and into their corresponding [[singularity]]s. The idea of the sea,
for example, as [[Leibniz]] showed, is a system of liaisons or [[differential]]
relations between [[particular]]s and singularities corresponding to the
degrees of variation among these relations-the totality of the system be
ing incarnated in the real movement of the waves. To learn to swim is to
conjugate the [[distinct]]ive points of our [[body]]s with the [[singular]] points of
the objective Idea in order to form a [[problematic field]]. This conjugation
determines for us a [[threshold]] of consciousness at which our real acts are
adjusted to our [[perception]]s of the real relations, thereby providing a [[solution]] to the [[problem]]. (DR 165)
[[DG172]]
The rejection of the [[subject]] does not mean that there are no subjects,
but that the subject cannot function as the ultimate ground in the form
of the supremely individuated world. In other words, the subject is not
ontologically primitive, nor is the difference between finitude and in
finitude a difference in kind.
[[DG173]]
a first critical [[problem]]: What are the [[condition]]s under which critique is possible? Under what conditions is it possible to
break with the [[image of thought]] ? Deleuze's solution to this problem will
be part of what he calls "[[transcendental empiricism]]," which is ( 1 ) what
we might call an "[[apprentice]]ship in [[sign]]s" following his argument in
the brilliant Proust and Signs, and which is (2) that which delivers us
to the conditions of real rather than merely possible experience. In one
respect, then, transcendental empiricism is not simply a metaphysics
or ontology (as Bruce Baugh has suggested), but rather a methodol
ogy of "anti-methodology." Where methodology is subject to the criti
cism of assuming the nature of the being it investigates in advance-as,
for instance, in physics where the variables are already determined in
advance as "places"-transcendental empiricism proceeds under the
force of a "sign that can only be [[sense]]d" which "engenders thinking
within [[thought]]" and which in turn explicates a new domain of [[experience]]. On the other hand, with Bruce Baugh, we can say that transcen
dental empiricism is only comprehensible in terms of a particular sort
of ontology which accounts for the [[genesis]] of thought within thinking
or which sees [[being]] and thought as identical.
[[DG15]]
The [[notion]] of a [[transcendental field]] is thus the [[Idea]] of [[time]] independent of subjects and objects
and out of which subj ects and obj ects are [[generate]]d.
[[DG178]]
[[power]] is the very thing that
[[produce]]s the [[subject]].
[[DG181]]
[[relation]]s preside over the [[genesis]] of the [[term]]s. [terms if they're in hte [[virtual]], [[part]]s if they're in the [[actual]]?] Consequently, relations
are external to their terms in the sense that "[[movement]]s" can take
place among the terms which do not themselves effectuate a qualitative
[[transformation]] of the [[Whole]]. Such a point can be seen with respect
to [[speech]] and [[language]], where [[speech act]]s do not necessarily effect
the linguistic [[Idea]] itself.
a [[multiplicity]] is just a set of [[relation]]s and [[singularity]]es defining a [[theme]], [[style]], or
[[differential]] [[essence]]. We must not confuse Deleuze's claim that relations
are external to their terms with the claim that relations are external to
singularities. A term is not a singularity, but rather an actualized object.
As we shall see, if relations are external to their terms, this is because
relations and the singularities they emit are a necessary condition for the
possibility of the [[actualize]]ation of an obj ect and thus cannot themselves
be dependent upon the object. For instance, a speech act is dependent
upon the linguistic relations and phonemic singularities it actualizes in
its enunciation.
In contrast to the spatial relations we find in empirical experience,
the relations belonging to the whole are differential relations. Unlike spa
tial relations which are premised on negation and contradiction, dif
ferential relations are not born of oppositions, but rather constitute a
properly internal difference. 'Just as we oppose difference in itself to
negativity, so we oppose dx to not-A, the symbol of difference to that of
contradiction" (DR 1 70) . Where relations of contradiction and oppo
sition are defined by oppositions between terms, differential relations
only have value by virtue of a reciprocal synthesis or determination.
[[important]] [[Difference and Repetition]]
[[DG190]]
the tripartite relationship between, the [[determinable]], and the [[complete determination]] is
also a feature that follows necessarily from the transcendental structure
of time. As such, we are to think [[sufficient reason]] dynamically as an
[[unfold]]ing [[movement]] rather than as the description of a static thing
subsumed under a form. If [[Idea]]s must necessarily begin as being un
determined, this is because time itself is open, because it never effects
closure, because experience undergoes [[mutation]]s.
[[DG200]]
In contrast to Kant, Deleuze, following [[Maimon]], will attempt to
show how [[Ideas]] are generated within the [[sensibility]] itself, and in fact
function as the [[genetic]] condition of sensibility. Deleuze thus offers a
new aesthetic and critique of the given. Rather than treating sensibility
in terms of irreducible atomic sensations or what can be sensed, De
leuze instead attempts to account for the very production of sensibility
in the sense that a biologist might conceive an evolution of aesthetics in
the animal world. For the moment, what is important is the relationship
between Ideas, the cogito, and time. If Ideas have an essential relation
ship to time, it is by virtue of the openness they maintain.
...[[cogito]] is the name of that which lives its [[Idea]]s as [[affect]]s.
[[DG201]]
Ideas no longer belong to consciousness, but rather
consciousness is produced in and through [[unconscious]] [[differential]]
Ideas. Time itself becomes the "subject." Ideas do not belong to the
subject; rather, the [[subject]] belongs to its [[Idea]]s.
Ideas provide an ideal continuity belonging to sensibility. This continu
ity is the unfolding movement of the differential as it traces its [[variation]]s.
what Ideas define
is an ideal [[topology]]cal or [[differential]] [[essence]] characterizing a [[field]] of
[[variation]]s or [[permutation]]s. In other words, there is no Idea of redness
or squareness, but rather redness and squareness are permutations be
longing to an Idea.
[[DG202]]
[[Idea]]s remain
critical in the Deleuzian sense insofar as ( 1 ) they are [[unconscious]] and
thus not reducible to the primacy of the conscious and self-identical
subj ect characterized by recognition, and insofar as (2) they only bear
the ideal of [[complete determination]].
[[DG203]]
Where before we relied on the [[transcendental]] [[structure]] of [[time]], we now
find that we can no longer assume such a [[structure]], but must instead
account for the [[condition]]s under which various temporal [[field]]s are gen
erated. Similarly, we can no longer refer to the primacy of the [[given]] in
experience insofar as experience is composed of [[quality]]es which are not
themselves the ground of [[experience]], but which are produced through
the [[Idea]]s. We thus arrive at a strange effect of experience producing the
[[structure]] of [[experience]]. The [[ground]] becomes [[groundless]].
[[DG204]]
Ultimately, material or empirical definitions find themselves unable to
maintain the difference they strive to explain and are thus arbitrary and
insufficient. More importantly, the reason they are unable to arrive at the
being of the [[being]] they seek to comprehend is that they seek to locate
this being in the material content (sense-data) of its manifestations.
In the case of [[sadism]] and [[masochism]], they take pleasure and pain as
mere givens, as the defining or determining features of sadism and
masochism, without determining the [[condition]]s under which this pain
and pleasure in their particular manifestation are [[possible]]. As a result,
such approaches are led to postulate a complementarity between sadism
and masochism that betrays their reality.
[can't take pain an pleasure as givens that then relate to the [[condition]]s of the [[structure]] of S and M, but must instead ask how that structure qua [[multiplicity]] [[produce]]s pain, and how each position, S and M, accounts for them in themselves, rather than in some additional supplementary [[dimension]] of analysis a la [[overcoding]] ].
[24]
What the empiricist misses is the specific
organization-what Deleuze will later call a multiplicity or an [[Idea]]-that
gives pleasure and pain their specific value in sadism and masochism.
In other words, empiricism
is unable to account for the internal unity or essence of a phenomenon
. . . It is unable to account for the distinctive features or determinations
making up phenomena.
[[DG18]]
Moreover, the
difference between [[concept]]s and [[intuition]]s is for [[Deleuze]] a difference
in [[degree]] rather than in [[kind]]... the difference between a concept
and an intuition is the difference between a clear intuition and a con
fused perception. In short, it is not a difference in kind at all, but a [[variation]] on a [[principle]]... for Deleuze concepts do not subsume intuitions
at all, which means that Deleuze is able to avoid the [[problem]] of how
the [[clear]] and [[confuse]]d are related to one another altogether.
[[DG23/24]]
This
criticism finds its definitive formulation in the claim that [[transcendental]]
philosophies leave conditions external to that which they [[condition]] . . .
that they restrict themselves to a perspective of mere [[conditioning]].
[[DG28]]
Deleuze's definition of [[transcendental empiricism]] is very simple: transcendental empiricism is that philosophical position which [[determine]]s the [[condition]]s of
real rather than [[possible experience]].
[[real experience]]
[[DGx]]
Here we find the core reason supporting
Deleuze's critique of [[Plato]]. If allusion to [[simulacra]] undermines the
relation between [[model]]s and [[copy]]s, then this is because the order
of simulacra announces a [[difference]] other than that found in the
relationship of a model to a copy or in resemblance between copies. A
simulacrum is a difference without a model.
[[pure difference]]
[[DG29]]
Logically the problem
arises as a paradox involving [[signification]] and [[denotation]], or in this
case [[consciousness]] (the [[condition]]/[[conditioning]]) and [[experience]] (the
[[conditioned]]).
[[DG30]]
Existence is therefore supposed to occur in
space and time, but these are understood as indifferent milieux instead
of the production of existence occurring in a characteristic [[space]] and
[[time]]. (DR 211)
[The [[intensive]] produces [[spatio-temporal]] [[dynamism]]s, rather than having pre-given space-time]
[[DG31]]
There are two problems at work here. First, the [[self]] or Person thus
appears as the [[invariant]] within [[variance]]. For this reason, the Self or Person
which is treated as invariant comes to be understood as the [[condition]]
under which [[Being]] is [[individuate]]d, whether it be in the form of God
bestowing essences or a transcendental subject organizing experience.
However, insofar as the domain of appearances comes to be treated as
the variant and the domain of the Self or Person comes to be treated as
the invariant, an external difference between the Self and appearances,
the individuated and the chaotic, comes to be established.
It is this [[problem]] that will lead Deleuze to adopt a [[stoic]] conception
of [[sense]]. From the stoic [[point of view]], sense is not to be located in the
[[predicate]] affixed to the [[subject]], but in the [[verb]]. Consequently, when
stating the sense of the [[proposition]] "the tree turns green," we do not [38]
locate the sense in the general predicate "green" but rather uncover the
sense by stating that "the tree greens." ...We no longer say that
greenness is and the tree is, but that the tree greens.
[[DG33]]
Rather than simply [[conditioning]] [[experience]], such an account would
theorize the [[unfold]]ing, [[develop]]ment, or [[production]] of experience in
and through experience. Once again we see how Brehier's reading of
[[stoic]] ontology is relevant here. In situating sense in the [[verb]] and [[event]]s,
the stoics are able to avoid treating sense as a transcendent model and
posit it as [[immanent]] to the facts out of which it is exuded... The aim is not simply to describe
experience but to give an account of [[experience]].
[[DG37]]
we fall prey to a transcendental
[[illusion]] not when we go beyond the limits of [[experience]], but rather
when we illicitly universalize and naturalize a specific [[actualize]]ation of
[[real experience]]. Such an account would remain transcendental in that
it would still refer to genetic conditions as the transcendental factors
enabling this production of experience. As we will see later, Deleuze,
following [[Maimon]], locates these conditions in the [[differential]]s (in the
sense of calculus) of [[experience]], which allows him to ( 1 ) pose a conti
nuity between the [[sensible]] and the [[intelligible]] such that the sensible is
the intelligible and the intelligible is sensible; (2) posit a real [[genesis]]
of experience capable of going all the way to the [[singular]] [[individual]]
without a gap between [[concept]]s and [[intuition]]s; and (3) undermine the
opposition between the finite and the infinite.
Unlike a category of the under
standing or a form, a [[differential]] is not opposed to the [[particular]] but is
continuous with it and is [[intelligible]]... [[Deleuze]] is in fact a hyper-rationalist who discovers intelli
gibility even in the apparent chaos of the matter of intuition. In short,
in an obscure manner that we will not be able to fully clarify here, the
differentials are not applied to [[experience]], but are the very medium [[milieu]] of
experience. Maintaining this point is crucial for Deleuze's project. The
differentials are not [[representation]]s of [[sensation]]s, but are the [[genetic]]
conditions of sensations. Hence Deleuze can proudly say:
The elementary concepts of representation are the categories defined as
the conditions of possible experience. These, however, are too general
or too large for the real. The net is so loose that the largest fish pass
through. No wonder, then, that aesthetics should be divided into two
irreducible domains: that of the theory of the [[sensible]] which captures
only the real's conformity with possible experience; and that of the the
ory of the beautiful, which deals with the reality of the real in so far as it
is thought. Everything changes once we determine the conditions of [[real experience]] which are not larger than the [[conditioned]] and which differ
in kind from the categories: the two senses of the aesthetic become one,
to the point where the being of the sensible reveals itself in the work of
art, while at the same time the work of art appears as experimentation. (DR 68)
[[DG40]]
receptivity is no
longer [[receptivity]], but has become spontaneity, [[productivity]]. Later we
will see why this is so, but for now we merely point it out. It is also able
to account for the [[condition]]s of [[real experience]], rather than possible experience,
because it treats diversity or the given as the result of a genesis from
[[differential]]s rather than the [[passive]] recipient of conditioning by abstract
categories.
[[DG41]]
Deleuze proceeds directly to the [[synthesis]] of [[difference]]
through [[repetition]] as a way of accounting for the [[genesis]] or [[structure]]
of [[experience]]. This shift is significant, for as Deleuze says, repetition is
not based on generality, but is a repetition of the [[singular]] (DR 1 ) . In
sofar as repetition is always a repetition of the singular, Deleuze is able
to [[articulate]] the [[condition]]s of [[real experience]] rather than all possible experience.
Here experience is no longer pervaded by generality and sameness,
but instead takes on the. singularity and creativity proper to it. However,
this creativity is no longer a singular irrationality, but is rather a novel [[intelligible]] structure. Finally, the chapters on [[individuation]] provide an
account of the [[actualize]]ation or genesis of experience resulting from the
syntheses of repetition exercised upon difference or the [[differential]]s
composing the experience. If the account of repetition is not sufficient
to account for the production of experience, this is because Deleuze
must demonstrate that repetition does not simply [[condition]] experi
ence passively, but rather, he must show how experience is [[unfold]]ed
[[genetic]]ally in a process of actualization. In other words, he must dem
onstrate how these syntheses account for the [[givenness]] of the [[given]] for
experience.
[[DG42]]
These [[genetic]] [[essence]]s contain within them all the possible [[variation]]s of
the phenomena in question on the basis of a sort of topological [[diagram]]
capable of [[express]]ing the [[becoming]] of the essence, but are also no larger
than that for which they serve as a [[condition]], for they are able to specify
the precise conditions under which this particular form of [[diversity]] [45]
is [[produce]]d. Furthermore... the [[concept]] is itself treated as a thing
[[DG42/43]]
Mathematical thought is akin
to the thought of [[God]], to infinite thought, in that it seems to [[produce]]
its objects of thought in the very act of thinking them. Not only does
mathematical thought allow me to intuit objects that I have never intu
ited in [[receptive]] [[experience]]; but it also allows me to think objects that
cannot be intuited in receptive experience, as in the case of "pathologi
cal" functions and actually infinite sets.
[[Maimon]] [[infinite analysis]] [[maths]] [[mathematical]]
[[DG44/45]]
we can no longer rely on the supremely [[individuate]]d contents of the [[self]] to [[determine]] or arrive at the [[condition]]s of
[[real experience]]. It is here that Deleuze diverges from phenomenology,
though it could still be argued that his position is in fact a radicalization ogf [[phenomenology]]
[[DG46]]
[[Deleuze]] is quite happy to say that [[representation]], identity, and recognition are real [[phenomena]] of our [[experience]].
We recognize things. We identify things. We represent things. If we did
not do these things, then there would be no problem of representation
and identity. The problem, rather, is what emerges when representa
tion and identity are taken as metaphysically or epistemically primitive
terms upon which the questions of philosophy are posed. According to
Deleuze, when representation and identity are taken as metaphysically primi
tive, philosophy falls into insoluble [[problem]]s. [[transcendental empiricism]] at
tempts to navigate a way through or beyond these insoluble problems.
[[transcendental empiricism]]
for the moment it is sufficient to note
that what is of importance is the transcendental difference, the [[internal difference]], presiding over the [[genesis]] of [[experience]].
What we seek is not the empirical difference characterizing the thing
extrinsically in terms of something else, but the internal difference
presiding over the genesis of a [[world]]. Hence the paradoxical term
[[transcendental empiricism]]. On the one hand, we cannot anticipate what
these [[difference]]s will be in advance and must thus resort to a sort of
[[empiricism]]. On the other hand, these differences are not what is given
in experience, but rather, as Deleuze says elsewhere, that by which the
given is [[given]].
[[DG47/48]]
What is needed is some point of beginning
that breaks up the [[unity]] of the object while still serving as its [[sufficient condition]] and which calls into question the primacy of the person.
[[Deleuze]] does not appeal to
an immediate [[intuition]] shared by all of us, but rather treats intuition as a
practice or method.
[[Bergson]]
[[DG51]]
The difference between one place
and another is only an external difference, and thus not the internal,
determining, difference we are seeking. Position, change of position, is
not a difference that touches the being of the being, but only externally
relates the being to o ther beings in the homogeneous medium of [[space]].
[[Bergson]]
[ [[duration]] is an [[experience]] of [[difference in itself]] [[internal difference]] [[difference]] ]
[[DG53]]
[[Deleuze]] thus refers to [[duration]], which contains all the differences in
kind or [[internal difference]]s, as that which changes in nature whenever it
is divided, and he calls it a [[multiplicity]]. A multiplicity is neither one nor
multiple, but a sort of unity representing a heterogeneous [[becoming]].
Duration divides up and does so constantly: that is why it is a multiplicity.
But it does not divide up without changing in kind, it changes in kind in
the process of dividing up: this is why it is a nonnumerical multiplicity,
where we can speak of "indivisibles" at each stage of the division. There
is other with out there being several; [[number]] exists only [[potential]]ly. (B 42)
[[nondecomposable]] [[distance]]s
[[DG53]]
Perhaps the best way to think [[multiplicity]]s is in terms of the [[concept]] of [[structure]]. What is definitive of structure is not the notion of
signifiers or language, but rather the idea of a set of elements characterized only in terms of their [[relation]]s to other [[element]]s or in terms of
relational identities. We could also say, that the central characteristic
of structure is the [[immanence]] of elements with respect to one another
in relations of [[reciprocal]] [[conditioning]]. Insofar as the elements are all
mutually dependent upon one another for their being, we cannot say
that a structure is many. However, insofar as the structure consists of a
set of ordered [[relation]]s and elements which are in some sense [[distinct]],
we also cannot say that the structure is one. In other words, structures
know no center.
[[virtual]] [[Idea]] with its [[dimension]]s, and [[singularity]]s which are determined by [[differential]]s?
[[DG58]]
We lay aside the side [of [[duration]] ] that repeats identically or the differences in degree
which repeat without producing a [[new]] kind, the side that does not [61]
differ from itself, in order to [[determine]] the [[tendency]]s characterizing
the phenomenon in question. These tendencies are [[force]]s, [[potential]]s,
[[differential]]s, or [[movement]]s which [[develop]] themselves through a
process of [[actualize]]ation, and which serve as the [[internal]] [[condition]]s for
the phenomenon.
[[DG58]]
It is now clear why these [[internal difference]]s serve as the [[condition]]s of
[[experience]]. And, more importantly, why they are the conditions of [[real experience]]
rather than possible experience. If [[tendency]]s, [[duration]]s, [[continuous]]
[[multiplicity]]s are transcendental conditions of experience, it is because
they are the acts internal to experience which make it be through a
process of actualization... these conditions are no broader than that
which they condition. Nevertheless, these conditions are not the given
insofar as experience itself presents nothing but composites, mixtures,
differences in degree.
It is because experience presents us with nothing but composites, mix
tures, differences in degree, and because thinking in terms of these
mixtures leads us to problems on the order of transcendental [[illusion]]s,
that we must go beyond what is given in experience to the transcendental
conditions governing the [[production]] of experience.
[[DG60/61]]
Unlike [[Kant]]ian conditions, [[Deleuze]]an [[condition]]s are not external to that
which they condition, but are rather [[genetic]] [[condition]]s of [[experience]]
which produce that which they serve as [[necessary condition]]s for. In one
respect, then, the conditions are identical to that which they [[produce]].
Where Kantian conditions condition the matter of intuition and remain
external to it, Deleuzian conditions [[generate]] this matter of [[intuition]] and
are internal to it.
[[genesis]]
We can thus say that the [[given]] is an [[expression]], [[product,]] or result of
a combination of tendencies such that it [[actualize]]s these [[tendency]]s.
It is for this reason that the conditions of experience are no broader
than that which they condition, that they are unique to that which they
condition. Finally, it follows from this that they are conditions of real
rather than all possible experience, since they are no broader than that
which they condition.
[[real experience]]
[[DG61]]
his is the
flaw of Dionysian and empiricist approaches to Deleuze which take
him as the herald of becoming, chaos, and flux. Deleuzian becoming
is not a chaos, but the [[unfold]]ing of [[differential]]s that are [[intelligible]]
entities. The Dionysians take Deleuze to be the champion of never
ending becoming without being able to qualify anything in particular.
As a result, their discourse becomes empty and monotonous in that it
is unable to qualify anything singular or specific. Such a perspective is
no less generalist than the Kantian forms of intuition. In contrast to the
Djonysian version of Deleuze, it is the genitive "of" in the phrase [64] "
[[being of the sensible]]" which is all-important. This phrase is ambiguous in that
it simultaneously suggests [[sensible]] being and that which engenders
sensibility within being. As such, it is well suited for overcoming the
exteriority of condition and conditioned that Deleuze seeks. To say that
something is the being of the sensible is to identify it neither with the
sensible as given, nor with the general form belonging to the sensible as
such. Rather, the being of the sensible is that which makes the [[diversity]]
of experience be as it is, which produces it in its being, which allows it
to manifest itself. It is essence, intensity, internal difference such that it
inheres in the sensible while nonetheless differing from it.
[[DG62]]
The [[being of the sensible]] is none other than [[duration]], [[tendency]], or
[[act]]. In this respect, Deleuze is able to claim that [[transcendental empiricism]] reconciles the two halves of [[aesthetic]]s (the theory of the [[sensible]]
and the theory of [[beauty]]) insofar as it is able to explain how the being of
the sensible allows for a [[genesis]] of [[experience]] (thus treating experience
as an aesthetic production in the sense of artistic production), which in
turn creates a domain of experience or the given (the aesthetic in the
sense of sensible receptivity). In other words, we are entitled to say that
transcendental empiricism is the experience of experience producing
experience, on the condition that we understand that the term experi
ence here plays on two registers of [[signification]], between experience as
transcendental lived condition, and experience as the [[given]] [[diversity]] of
the sensible.
[[DG63/64]]
[[genesis]] rather than external [[conditioning]]...
...the [[tendency]]s we discover in
[[experience]], the [[internal difference]]s which are the [[being of the sensible]]...
[[DG64]]
The
crucial questions to ask in the context of these problems are ( 1 ) what is
the "thing" which the condition is perfectly tailored to, (2) what does
it mean to claim that the [[condition]]s of [[experience]] are no broader than
that which they condition, and (3) what is meant by [[real experience]]?
In fact, it is a mistake to believe that for Deleuze the aim of [[intuition]]
is to account for this given, here and now. Rather, the object of intuition is
not the ephemeral [[event]] in the form of an actualized happening charac
terizing a state of affairs, but rather what might be called a [[style]], [[diagram]]
of [[becoming,]] or morphological [[essence.]] Here, once again, the [[differential]] sheds light on what Deleuze is up to. We can think of the object as a
value generated by the function, whereas the function is a style of becoming. Where becoming conceived in terms of coming-to-be and passing
away is always broader than the [[duration]] it purports to describe, the func
tion is able to reach all the way to the individual event and continuous
transformation at any moment in the history or process of its unfolding.
A [[morphology]]cal essence does not characterize a thing, but a possible
[[world]], a system of appearances, a way of being; for instance, the worlds
of Proust, Joyce, or Kafka, but also the unique patterns of seashells one
finds on Nagshead beach in North Carolina or the migration patterns of
birds. To be sure, one of Deleuze's central preoccupations throughout
his work is the being of the event, as is clearly evident from The Logic of
Sense and The Fold: Leibniz and the Baroque. However, he is always careful to
distinguish between what happens as a spatio-[[temporal]] [[actualize]]ation of an
event, and the [[Idea]]l event as the being of the happening.
[[DG65]]
The concrete case or real being is never the object of thought, of
intuition, but rather is the opportunity for [[intuition]]. What we seek in ,
the case is not an adequate description of the [[case]] (which would very
likely be impossible) , but rather the style or [[morphology]]cal [[essence]] that
inheres throughout a [[series]] of cases. We seek to determine the [[world]],
[[structure]], or [[system]] to which the case belongs.
reminds me of the [[Nietzsche]] book intro
Consequently, we can say that the object, the theme, the thing which the
concept is identical to is not what is given in experience, but is rather [68]
the essence or [[style]] functioning as the principle of that experience or
world.
[[DG66]]
It is not the [[given]] which is the thing, but rather the [[tendency]], the
[[movement]], the [[act]]. As such, the [[concept]] is not identical to the object
given in [[experience]], but rather to the tendency insofar as it functions
as a [[style]] or [[essence]] of a possible [[world]]. The concept is the thing, not a
re-presentation of the thing. As Deleuze puts it in [[Difference and Repetition]],
"Only an empiricist could say: concepts are indeed things, but things in
their free and wild state, beyond 'anthropological predicates' " (DR xx
xxi) . Concepts, for Deleuze, are therefore an ontological rather than
an epistemological category. A concept is not, according to Deleuze,
something that people have in their minds, but is rather a way of being
namely, the being of an intensive [[multiplicity]]. In this respect, Deleuze
reveals an important affinity to Plato.
A style or essence is what we might refer to as an identity of [[difference]], or an identity produced through difference. It is not a type or
kind, but rather a rule of [[production]], a [[genetic]] factor. It is an identity
that maintains itself through [[topology]]cal [[variation]]s. It is for this reason
that we speak of [[morphology]]cal [[essence]]s or [[diagram]]s of [[becoming]].
[[DG67]]
[[topology]]cal thought is
similar to Husserlian free [[variation]], with the difference that the aim here
is not to discover the invariant [[essence]] without which the being could not
be what it is, but rather to see what sorts of variations a set of [[singularity]]es
is able to undergo while maintaining a structural identity. Both points of
view are in a sense "structural"; however, the former seeks to determine
what it can understand of a triangle under its fixed form, while the latter
seeks to determine what it can understand of the [[structure]] by setting it in
variation... what is of con
cern is the relational or structural identity of [[relation]]s among singularities
characterizing the [ [[event]] ] as it undergoes variation.
...a difference is called "[[temporal]]" because it refers to variations
undergone in a [[topology]]cal space
[[topological variation]]
[[DG68]]
To divide a continuous
[[multiplicity]] is to either subtract or add relations or [[singularity]]es so
as to bring about a mutation in the [[topology]]cal identity which brings
about an accompanying qualitative change. Additionally, we are able to
understand why Deleuze claims that identity is a product of difference,
rather than difference a product of identity. In the first place, topological
structures differ in themselves. In other words, the value of all the terms
within the [[structure]] is only determinable in relation to the other terms.
Second, the [[variation]]s that the [[relation]]s and [[element]]s can undergo
[[produce]] effects of identity rather than assuming them from the outset.
[[differential]]
we need only note that the
singularities composing the topology only take on their identity with
respect to each other.
[[DG69]]
[[Difference and Repetition]] quote
[[Idea]]s contain all the varieties of [[differential]] relations and all the dis
tributions of [[singular]] points coexisting in diverse orders "perplicated"
in one another. When the [[virtual]] content of an Idea is [[actualize]]d, the
varieties of relation are incarnated in distinct [[species]] while the singular
points which correspond to the values of one variety are incarnated in
the distinct parts characteristic of this or that species. The Idea of color,
for example, is like white light which perplicates in itself the genetic
elements and relations of all the colors, but is actualised in the diverse
colors with their respective spaces; or the Idea of sound, which is also
like white noise. There is even a white society and a white language, the
latter being that which contains in its virtuality all the phonemes and re
lations destined to be actualised in diverse languages and in the distinc
tive parts of a given language. (DR 206)
When [[Deleuze]] refers to "white society" he is not talking about Caucsians,
but rather the Idea or [[topological structure]] of society insofar as it con
tains all its possible nuances or degrees of difference through variation
insofar as it is determined by a set of [[tendency]]s and their relations. It is
in this respect that the concept becomes a concrete [[universal]].
[[DG70]]
Where [[universal]]s defined by divisions in a genus according to
specific differences (which function roughly as the intension of the
concept) find that they encounter a gulf between the specific differences
of the concept arrived at by tracing oppositions and individuating
differences belonging to the singular being, the notion of a concrete
universal as a topological entity containing aU its variations encounters
no such problem. Because a [[topology]]cal [[essence]] is composed of all
the degrees of difference or [[structure]]al [[variation]]s, it passes all the way
from "white noise" or the chaos of the undetermined to [[individuate]]ing
difference. As a result, Deleuze would claim that there is no concept of
the color red, but only of white light, of which red is a variation. If red
does not form a proper Deleuzian [[concept]], then this is not because it
is not real but because it does not mark the joints of being. Red marks
a difference in degree from other colors, whereas color as such is a
difference in kind. It is precisely in this sense that Deleuze's position
evades the alternatives of realism and nominalism.
the given is [[given]] by the [[Idea]] and its variations without being identi
cal to it, nor being its origin. Like Platonic forms, Deleuzian Ideas are
a condition of [[Being]]s. Unlike Plato, these Ideas do not stand opposed
to the individuals they generate. On the other hand, they do not have a
purely mental existence because the concept itself is a thing, because it
is a real condition of [[real experience]], because the subject itself is a temporal
determination in a continuity between subjects and objects.
[[DG71]]
t is precisely this movement o f turn and return which characterizes
Difference and Repetition, The Logic of Sense, and Foucault. In Difference and
Repetition this movement manifests itself in Deleuze's account of indi
different/ ciation, which explains how difference and [[repetition]] are syn
thesized in the production of [[sensibility]]. In The Logic of Sense this move
ment manifests itself in the centrally important and seldom-discussed
accounts of the static ontological and logical geneses, which explain the
"[[differenciation]]" of the proposition into the propositional dimensions
of [[denotation]], [[manifestation]], and [[signification]]. In Foucault it appears
once again in the account of how power links the heterogeneous do
mains of [[speaking]] and [[seeing]].
[[DG72]]
There is no sure and certain method for thinking, but only the constraint
of the [[encounter]] which forces us to think. The selection of forces for
thought is not carried out by a sovereign subject exercising its will to
think, but rather it is as if we were selected by these [[force]]s. In short, there
is something fortuitous in thought which cannot be produced through a
simple act of will.
[[DG74/75]]
In part, then, [[Deleuze]]
contrasts an existential conception of [[thought]] based on a startling [[encounter]] of an amorous or violent nature with an academic conception
of [[knowledge]]. Thought emerges from a lived encounter that disrupts
[[habit]] and functions like a trauma or an amorous encounter that calls to
be comprehended. Knowledge, by contrast, seeks [[recognition]] so that it
might prevent such encounters and establish the smooth continuity of
experience.
[[DG75]]
This is why the [[encounter]] must be opposed to [[habit]] and
[[association]], both of which strive to establish the continuity of [[experience]].
In this respect, we might say that the Deleuzian encounter performs a
sort of involuntary transcendental [[epoche]]. Where the phenomenological
epoche is performed by the transcendental subj ect, the Deleuzian epoche
is a sort of performance on the part of [[being]] itself that is imposed upon
me by an involuntary encounter. I am selected by the encounter, by
being. I cannot perform this epoche myself, I cannot will it, I can only be
open to it when it takes place.
It is for this reason that Deleuze's "phenomenology" of the en
counter is anti-methodological and requires an [[apprentice]]ship in [[sign]]s.
Here the sign, of course, is the encounter. It is anti-methodological
because it relies on the constraint of the [[contingent]] encounter as the
condition under which [[thought]] is engendered in [[thinking]]. It is not the
immanent and self-conscious ego possessing sovereign power over its
ability to think which exercises the power to think, but rather the [[unconscious]] thinking under the constraint of the encounter. On the other
hand, such thought requires an apprenticeship or training in signs to
engender an openness to the encounter, to prevent it from covering
over the difference which manifests itself with the subjects and objects
resulting from the syntheses of [[habitus]].
[[DG76]]
It is precisely this dogma, this assumption of the non-productivity
of [[intuition]], of its lack of intelligibility as opposed to the rational struc
ture of concepts, that Deleuze's [[transcendental empiricism]] is designed
to overcome. As Deleuze states very clearly in Difference and Repetition:
It is strange that aesthetics (as the science of the [[sensible]]) could be
founded on what can be represented in the sensible. True, the inverse
procedure is not much better, consisting of the attempt to withdraw the
pure sensible from representation and to determine it as that which
remains once representation is removed (a contradictory flux, for ex
ample, or a rhapsody of sensations) . Empiricism truly becomes transcen
dental, and aesthetics an apodictic discipline, only when we apprehend
directly in the sensible that which can only be sensed, the very being of
the sensible: [[difference]], [[potential]] difference and difference in [[intensity]]
as the reason behind qualitative diversity. (DR 56-57)
Here Deleuze's statements are no mere comment on aesthetics or the
nature of sensibility, but rather go straight to the heart of the central
problems around which Western metaphysics has been organized. For
to criticize aesthetics for founding itself on what can be represented
and by this Deleuze means not simply the branch of philosophy that
studies art, but aesthetics as it characterizes the theory of sensibility
from Plato to the present-is to criticize aesthetics for having reduced
the given to [[passive]] [[receptivity]] rather than seeking, in the manner of a
Leibniz or Maimon, to give a [[genesis]] of the sensible itself. Deleuze seeks to
determine the [[condition]]s under which receptivity is itself possible. This project
is very different from determining the conditions under which experience
is possible in that Deleuze rejects the Kantian claim that experience can
only properly be said to occur when there is a synthesis of concepts and
intuitions.
[[DG5]]
This aim of presenting
an account of thought which is no longer based on the moral [[image of thought]] arises out of the project of determining the [[condition]]s
under which [[thought]] is [[possible]].
[[DG77]]
The [[image of thought]]
is not a [[Foucault]]ian [[episteme]] or [[structure]] of [[power]], but a constitutive
[[dimension]] of [[thought]].
[[DG80]]
Insofar as
the [[image of thought]] is entitled to make certain claims in principle,
it constitutes a sort of [[transcendental]] [[structure]] whose [[condition]]s of
[[genesis]] or [[individuation]] must themselves be [[determine]]d.
[[DG82]]
It is
as if there is a constitutive, a priori blindness to the [[contingency]] of our
[[knowledge]].
"Concepts only ever designate possibilities. They lack the claws
of absolute necessity-in other words, of an original violence inflicted
upon thoughts; the claws of a strangeness or an enmity which alone
would awaken thought from its natural stupor or eternal possibility"
(DR 139)
this [[violence]] is the [[encounter]]
[[DG83]]
[[passive synthesis]] blurs [[subject]] and [[object]]
As such, the first passive synthesis is not
an activity of intentional consciousness, but precedes any [[intentional]]ity
and renders [[intentionality]] possible in the first place. In this way, the
distinction between subject and object is blurred in that the first passive
synthesis precedes both subjects and objects.
[[DG85]]
[[expectation]] as [[general]]ity
[[DG88]]
However, here the target of criticism
is the standard thesis that ( 1 ) [[intuition]] is [[passive]] and merely [[receptive]],
and without productivity, and that (2) the givens of intuition are with
out intelligibility or logos. Here we are presented with yet another way of
conceiving Deleuze's avowed anti-Platonism. To be an anti-Platonist is
not simply to reject the forms as determinative of being and what counts
as real, but also to reject the thesis that the field of [[sensible]] [[given]]s is a
rhapsody of unintelligible and irrational appearances.
It is for this reason that Deleuze's [[transcendental empiricism]] is
better conceived as a hyper-[[rationalism]] than as an empiricism.
Consequently,
following the example of [[mathematics]] in which thought seems to actu
ally create its mathematical objects of intuition by thinking them with
out needing the object to be present to one of the five senses, Deleuze
seeks to comprehend [[sensibility]] in general as [[producing]] the objects of
intuition rather than merely receiving them passively.
What is important is that Deleuze wishes to argue that all sensible
givens and not simply mathematical intuitions are the result of a pro
ductive or creative intuition that produces the objects of [[sense]]. When
Deleuze tells us that the aim of philosophy ought to be to determine
the conditions under which something [[new]] can be created (D vii), we
ought to understand that Deleuze is asking how it is possible for forms
of [[intuition]] or [[sensibility]] to be produced. However, as we shall see, this
production is not the work of a sovereign subject, but is a production
that occurs at the level of being itself.
[[DG8/9]]
It is for this reason that Deleuze opposes a [[violence]] of the senses
to that of recognition and a discordant exercise of the [[faculty]]s to that
of the harmonious use of the faculties. Later we shall determine just
how it is possible to distinguish among the faculties, but for the moment
I will focus here on this discordant use of the faculties. This violence or
force which forces us to think has the triple role of calling into ques
tion the conservative [[structure]] of the living present or [[habitus]], of intro
ducing a difference into [[thought]], and of engendering thought within
thought. For thought is essentially rare and is incapable of engendering
itself. If thought must be engendered within thought, this is because the
subject, formed from syntheses of habitus, is powerless to begin thinking
on its own because the subj ect always only recognizes itself in its attempt
to [[think]].
[[passive synthesis]]
"something in the world forces us to think. This something is an object
not of recognition but of a fundamental encounter. What is encountered
may be Socrates, a temple or a demon. It may be grasped in a range of
affective tones: wonder, love, hatred, suffering. In whichever tone, its
primary characteristic is that it can only be sensed. In this sense it is op
posed to recognition. In recognition, the sensible is not at all that which
can only be sensed, but that which bears directly upon the senses in an
object which can be recalled, imagined or conceived. The [[sensible]] is
referred to an object which may not only be experienced other than by
sense, but may itself be attained by other faculties. It therefore presup
poses the exercise of the other faculties in a common sense. The object
of encounter, on the other hand, really gives rise to sensibility with re
gard to a given sense . . . It is not a [[quality]] but a [[sign]]. It is not a sensible
being but the [[being of the sensible]]. It is not the given but that by which
the given is given. It is therefore in a certain sense the imperceptible
[ insensible] . It is imperceptible precisely from the point of view of recog
nition-in other words, from the point of view of an empirical exercise
of the senses in which sensibility grasps only that which also could be
grasped by other faculties, and is related with the context of a common
sense to an object which also must be apprehended by other faculties.
[[DG89]]
[[transcendental empiricism]] is an empiricism insofar as it must rely
on the [[force]] of an [[encounter]] to [[engender]] [[thought.]] Here it is not the
object of the encounter that is important. The aim is not to represent
the object, or to [[draw]] a [[sensation]] from the obj ect. Rather, the object of
the encounter is the occasion of thought, but not that which is to be
thought. It is in this respect that transcendental empiricism diverges
from classical empiricism in that its object is that which is, in a certain
sense, [[imperceptible]].
In order to understand why this is so, we must recall that [[quality]]es are produced through the first synthesis of time or habitus. Insofar
as the notion of a quality implies homogeneity, [[identity]], sameness, and
insofar as time without synthesis implies nothing but an ever-flowing
flux of differences, quality must be a product of the first synthesis of
time. If this is the case, then it is because the concept of quality involves
identity, an [[individuation]], which requires a leap beyond the given in
duration. To think quality is to think the one that insists in the many. It
is not to think this red here, but redness as a common quality of many
red thises. In contrast to the quality recognized which is characterized
by familiarity, the encounter has the property of being both contingent
and necessary.
is this why qualities are on the [[actual]]? because they are in the realm of homogeneity, identity, etc? [[Difference and Repetition]]
In opposition to the philosophical ideal of "method," Proust sets
the double idea of "constraint" and of "chance. " Truth depends on
an encounter with something that forces us to think and to seek the
truth. The accident of encounters and the pressure of constraints are
Proust's two fundamental themes. Precisely, it is the sign that consti
tutes the object of an encounter and works this violence upon us. It is
the accident of the encounter that guarantees the necessity of what is
thought. (PS 16)
[[DG92]]
Where thought tied to [[recognition]] is concerned,
we remain trapped within the grip of an abstract system of possibilities
which fails to establish the necessity of that which is [[thought]]. By contrast,
thought tied to the [[encounter]] contains all the necessity of the concrete
insofar as it commands us to think. The encounter is thus [[imperative]] in
nature. It is that which we must think or that which we cannot avoid
thinking or that which it falls to us to think.
[[question]] [[imperative]]
In other words, the encounter does not measure the
requirements of the [[sentiendum]] against the requirements of recognition.
Instead, the encounter is an encounter with difference as such, with[[ internal difference]], with difference as it manifests itself for the [[sensibility]]
alone. Difference is no longer shackled to external and empirical differ
ences between the faculties, between the subj ect and object, between objects,
but instead becomes the internal difference or [[tendency]] characterizing
sensibility as [[duration]] itself. We might say that under [95]
the constraint of the encounter, we discover a [[variation]] within the [[topology]]cal or [[morphology]]cal [[essence]] belonging to the faculty of sensibility
itself.
[[sensible]]
[[DG93]]
The [[Logic of Sense]] discovers a [[faculty]] of [[language]]
which consists of that which can only be spoken, but which is at the
same time silence or the unspeakable. The [[limit]] defining language be
comes the possibility of nonsense, while the differences contained in
language are those of [[sense]]. In this case, the obj ect of transcendental in
quiry is not this or that particular language, but rather language as such,
the [[internal difference]]s which constitute the specific being of language.
In other words, The Logic of Sense is concerned with the conditions under
which language is possible. These are not [[condition]]s pertaining to all
possible experience, because not all experience is characterized by lan
guage; but they are also not conditions characterizing just one specific
case of language to the exclusion of all others.
If such an account is referred to as providing the conditions of
concrete or [[real experience]], it is because it no longer assumes the col
laboration of the faculties (which would likely tie language to either its
representative or referential function) , but instead delivers us to the be
ing of language as such. Deleuze is here able to simultaneously arrive at
language as such, at the being of language, and to give a formulation of
language that merges with individual languages themselves. Individual
languages are like points defined on the curve that is language as such.
They maintain continuity with the being of language, while being [[singular]] inflections of this being.
[97]
To be sure, Deleuze begins with concrete cases in thinking the be
ing of language (in The Logic of Sense these cases consist of the [[stoic]]s and
the works of [[Lewis Carroll]]) , but these cases serve to [[engender]] thought
within thought, rather than serving as cases to be represented. The
aim is not to represent Carroll, but to discover the forces of nonsense
and sense in his literature as constitutive features of language. What is
sought in each case is the [[transcendental]] [[dimension]] characterizing the
phenomenon in question.
[[DG94]]
From this we can also see j ust how broad Deleuze's [[notion]] of "[[faculty]]"
Speaking somewhat cryptically, we might say that faculties do not
belong to subjects (if for no other reason than Deleuze's critique of
the subject) , but rather subjects are precipitated from faculties. In fact,
granting that Deleuze must indeed rej ect finitude as a corollary to his
critique of [[representation]], it follows that he cannot treat the subject as a
metaphysically primitive term, but must instead give an account of how
subjects are possible. Consequently, these faculties are none other than
the tendencies characterizing being. They are the [[differential]]s or joints
of being itself, and not faculties of a subject's mind. It is for this reason
that Deleuze qualifies faculties with the genitive "[[of]]' when referring to
the "[[being of the sensible]]," "the being of language," "the being of [[memory]]," and so on. In all of these cases, the [[tendency]] is not identical to [98]
[[sensibility]], [[language]], or memory as we find them in our [[experience]], but
rather is that by which sensibility, language, or memory is given. They
are the [[genetic]] conditions allowing for the [[givenness]] of the [[given]].
is.
[[genesis]]
[[DG96]]
What is of concern where the [[tendency]] is
concerned is not the linear distribution between the particular and gen
eral, between the universal and [[particular]], but rather the internal logic
of the tendency, its [[topology]]cal or [[morphology]]cal [[essence]]. The morpho
logical essence is neither general nor particular, but rather [[singular]]. It
contains all the degrees of difference without presupposing any particu
lar [[order]] [[hierarchy]] among them.
the
relevant epistemological opposition characterizing Deleuze's thought is
not that between the active spontaneity of concepts and the passive re
ceptivity of intuitions-which fails to account for how the givens of expe
rience are given or generated-but rather between the [[distinct]]-[[obscure]]
and [[clear]]-[[confuse]]d
all intuition is productive and creative. This is the
secret meaning of Deleuze's call to unify the two sundered halves of the
aesthetic. Deleuzian intuition is productive intuition. Deleuzian [[affect]]s
are rules or [[differential]]s for the production of lived [[quality]]s.
while intuition may be productive, only a comparatively
small region of intuition is clear for human beings. While we may be
able to discover the genetic factors or principles governing [[mathematical]] intuition, the [[genetic]] factors characterizing the vast majority of our
experience remain confused and obscure. The zone of objects we are
able to produce through thought alone is relatively small. Consequent
ly, experience presents us with a zone of clarity like the sound of [[wave]]s
crashing, while leaving the genetic factors producing this intuition ob
scure and unconscious. It is this obscurity which produces the unavoid
able illusion that intuition is characterized by passive receptivity in affec
tion. For Deleuze all intuition is productive, and we are led to believe it
is [[passive]] insofar as most of the principles governing its [[production]] are
[[unconscious]].
[[DG97/98]]
It is clear that the [[sentiendum]] is indeed a [[sign]] of the present insofar as
it belongs to the [[sensibility]], insofar as it is the being of the sensibility, [100]
which pertains to the present. Insofar as it is a sign announcing the
[[being of the sensible]], it is an indication of the [[differential]] through
which the [[encounter]] was produced.
If the encounter is a sign rather than a quality, this is because it ex
presses or indicates a tendency or faculty as its condition.
the [[genetic]] conditions of experience do not resemble actu
alized [[experience]] characterizing the phenomenal field. The encounter is
not a quality because it does not refer to a homogeneity conditioning ex
perience, but is instead a sign expressing that which belongs to the faculty
in question alone.
to refuse the encounter by cover
ing it over with habitus, to push recognition as opposed to the difference
that has announced itself, is to fall into Deleuze's equivalent of in au then
ticity or bad faith... In this connection there is an entire
[[ethics]] of the [[event]] surrounding Deleuze's thinking of the encounter.
[[DG98]]
[[Deleuze]] himself was fond of pointing out that events are not
[[individuate]]d by the individuals that belong to them, but rather that [[individual]]s are [[individuated]] by the [[event]]s that befall them.
[[Difference and Givenness]]
..discourse is not only [[signification]] and [[ration]]ality but [[expression]] and [[affect]]...
[[Di9]]
[[truth]] appears as an aberration when measured against [[signification]] and [[knowledge]]. Truth is [[discord]]ant, and to be discordant in [[discourse]] is to [[deconstruct]] its order. Truth in no way passes through a discourse of signification: its impossible [[topos]] cannot be [[determine]]d through the [[coordinate]]s of the geography of [[knowledge]]. Instead it makes itself felt on the [[surface]] of discourse through [[effect]]s, and the [[presence]] of [[meaning]] is called [[expression]]. However, not all expression is truth... Not that we could ever grab hold of truth itself as one picks a flower after disentangling it from the surrounding weeds. [[deception]] and truth go hand in hand, not as opposites in a system but at least as [[thick]]ness made up of a recto and a verso together.
Nonetheless one must fight to allow the effects of truth to come to the surface, to unleash its monsters of meaning in the midst of discourse, within the very rule of signification. Thus one must learn not to distinguish truth from falsity-both defined in terms of the internal [[consistency]] of a system- but to discern between two expressions, the one that exists to thwart the [[gaze]] (to [[capture]] it) and the one that is there to [[expand]] it, to allow it to see the invisible. The second requires the work that is the purview of the [[art]]ist, the suspended attention, the negligence, enforced as a rule, toward what is instituted...the first aims to deceive, the second aims to make patent. But both are identical as far as their [[operation]]s are concerned, except for an additional [[reverse]]al in the first case, which turns its product into a work of art.
[additional reversal=capture then expand, not just capture? Capture as opposed to expanding, must capture then reverse, without freeing but expanding?]
[[Di10]]
...if [[truth]] doesn't appear where one expects it to, and if no discourse can ever hope to expose it in completed signification (since it does not belong to the same [[field]]), then this book is not truthful in so far as it strives, quite obviously, to produce articulated significations. But neither is [13] it knowledgeable, since it does not seek to build a unitary theory... it is like a dislocated [[body]] whereupon [[speech]] [[impress]]es [[fragment]]s that in principle can be rearranged in various configurations, but which the constraints imposed by typographic composition-those belonging to [[signification]] and [[ratio]]-force to present in an immutable order...The ambition is to [[signify]] the [[other]] of [[signification]].
...the unification of the diverse, even within the unity of discourse... is continually [[defer]]red and also prohibited... the [[ego]] must be given up as a constituted unitary [[entity]]
[[Di12]]
Depth will continue to exceed by a long way the [[power]] of a reflection that seeks to signify it, to include it in its [[language]], not as a thing but as a definition. [[meaning]] is present as absence of [[signification]] [meaning only exists in signification as tht which isn't being signified but expressed, it's there but absent, I have a visual but no words. In being reflected, depth becomes a surface; in this depth exceeds reflection...] . Yet signification will seize meaning (and it can, for one can say anything), exiling it to the border of a new [[speech act]]... Building meaning is never anything other than [[deconstruct]]ing signification. No [[model]] can be assigned to this evasive configuration. One could argue at the beginning the [[violence]] is like [[castration]], and that the [[silence]] or [[death]] our [[word]]s want to unmask is the offspring of this initial terror that gave rise to [[desire]]. Very well, but as the place of this desire is [[utopia]], let us renounce once and for all finding a place for it.
[[Di13]]
The [[event]] as disturbance is always what defies [[knowledge]], either by challenging knowledge articulated in [[discourse]] or, just as well, by shattering the quasi-comprehension of the [[body]] itself, putting it out of tune from itself and from things...
The event cannot be situated elsewhere than in the vacant [[space]] opened by [[desire]]... Such vacancy is not an "attitude" to be recommended, nor an [[ethic]]s... one cannot predispose oneself to dispossession. The event does not arrive where one expects it; even a state of non-expectancy will be disappointed... Desire has its rejection [[embed]]ded within itself, which is the principle of the disposession of its [[effect]]s.
[[Di14]]
[there is] in [[human]] [[language]] an arbitrary [[principle]], the self-sufficiency of a system entirely dependent on its internal [[interval]]s, and thus capable of provoking and supporting the separation of [[discourse]] from its object[.] What would one [[see]] if one did not [[speak]]?
[[control societies]] [[grammitization]]
[[Di18]]
...the function assigned to [[the picture]] by modern [[painting]]: an object where the becoming-object is made [[visible]]
[the [[picture]] ] really does [[resemble]] [[nothing]], even when it is [[figure]]ative, since its [[visible]] function is to [[give]] the given...
[[Di23]]
This book protests: the [[given]] is not a [[text]], it possesses an inherent [[thick]]ness, or rather a [[difference]], which is not to be [[read]], but rather [[seen]]; and this difference, this immobile mobility [ [[paradox]]? ] that reveals it, are what continually fall into oblivion in the [[process]] of [[signification]].
[[Discourse, Figure]]
More or less [[continuous]] internal readjustments run through a [[system]] because it never reaches in itself a perfect equilibrium, and also because it is never perfectly isolated from a [[context]], [[linguistic]] or otherwise, that constitutes an [[event]] in relation to it, disturbs it, thus forcing it to constantly re-[[adapt]]. One enters a [[world]] here where structures are in a perpetual state of coming undone and being re-formed, like the interplay of colors of several kaleidoscopes whose rate of rotation would be measured in centuries. One does not step into a story at all; the opposite is true: one comes out of it to immerse oneself in a [[nature]].
[[Di24]]
...a page covered in [[writing]], which is a kind of [[table]]. One does not [[read]] or [[understand]] a [[picture]]. Sitting at the table one identifies and recognizes [[linguistic]] [[unit]]s; standing in [[representation]] one seeks out [[event]]s. [[libidinal]] events.
That the [[world]] remains to be read basically means that an [[other]], on the other side, [[transcribe]]s the given objects, and that with the appropriate [[point of view]] I could theoretically decipher it.
[[Di3]]
There is no [[absolute]]ly [[other]], but there is the [[element]] [[divide]]ing itself and [[turn]]ing over, [[becoming]] vis-a-vis and therefore [[perceptible]]; there is a "there is" that is not originally a heard [[utterance]], but the product of a [[driftwork]] that tears the element in two, leaving the flanks in the imbalance that the ethical life indeed speaks of but that belongs to the seer and the [[visible]], that is unheard [[speech]].
[[Di4]]
To undo the [[code]] without, however, destroying the message, while instead releasing from it the [[meaning]] and the lateral [[semantic]] reserves concealed by structured [[speech]]...consists entirely in the [[transgression]] of the measured [[interval]]s underpinning the [[weave]] of [[language]]..[may be more on p54 to finish this paragraph-i dunno?].
[[Di32]]
This is still [[reflection]], because we will continue here to [[produce]] a [[discourse]] of [[signification]], but also [[hyper-reflection]], because we will attempt to [[articulate]] what in [[speech]] remains [[silent]] and shows... How do the two forms of [[negation]] overlap; how can that of [[show]]ing enter into that of [[discourse]]; how can [[text]] become [[figure]]; these are the [[question]]s that interests hyper-reflection and can guide it. It will come as no surprise that [[philosophy]] arrives too late here, and that it has everything to learn from [[poet]]s.
[[Di53]]
Will we be able to tear down the [[closure]] by claiming the existence of an [[absolute]] [[excess]] of [[meaning]] in the originary [[word]] and the necessity for the [[finite]] to [[interpret]] endlessly?
[[Di5]]
What cannot be tamed is [[art]] as [[silence]]. The position of art is a [[refutation]] of the position of [[discourse]]. The position of art indicates a [[function]] of the [[figure]], which is not [[signified]]-a function around and even in the figure. This positions indicates that the [[symbol]]'s [[transcendence]] is the figure, that is, a [[spatial]] [[manifest]]ation that linguistic [[space]] cannot incorporate without being shaken, an [[exterior]]ity it cannot [[interior]]ize as [[signification]]. Art stands in [[alterity]] as [[plasticity]] and [[desire]], a [[curve]]d expanse against [[invariability]] and reason, diacritical space. The true symbol gives rise to [[thought]], but not before lending itself to "[[sight]]." and the surprising thing is not so much that it gives rise to thought, since once language exists, every [[object]] has to be signified and inserted in a discourse, falling into the [[sieve]] where thought sifts and sorts everything. The mystery is that the symbol remains to be "seen," that it remains steadfastly within the [[sensory]], that there remains a [[world]] that is a store of "sights," or an interworld that is a store of "visions," and that every forms of discourse exhausts itself before exhausting it. The absolutely other would be this [[beauty]], or the [[difference]].
...the [[silence]] of the beautiful, of perception- a silence that precedes speech, an innermost silence-is impossible: there is simply no way to get to the other side of [[discourse]]. Only from within language can one get to and enter the figure... And one can get in the figure without leaving language behind because the figure is [[embed]]ded in it. One only has to allow oneself to slip into the well of discourse to find the [[eye]] lodged at its core, an eye of discourse in the sense that at the center of the cyclone lies an eye of calm. The figure is both without and within.
[[Di6]]
[[silence]] is the opposite of [[discourse]], simultaneously [[violence]] and [[beauty]]; but silence is the very condition of discourse... Such violence belongs to the depths of [[language]]. It is its starting point
[[Di7]]
[[discourse]] is always [[thick]]. It does not merely [[signify]], but [[express]]es. And if it expresses, it is because it too has something trembling trapped within it, enough [[movement]] and [[power]] to overthrow the [[table]] of [[signification]]s with a quake that produces the [[meaning]].
[[Di8]]
[[absolute]] [[positive]] [[deterritorialize]]ation
There is a diagram whenever a singular abstract machine functions directly in a matter.
[[ATP p141/142-1]]
[[Adorno]] and [[Horkheimer]]
[[DLO pvii-1]]
[[Deleuze]]
an important part of the [[ethics]] of [[Gilles Deleuze]]
follows the [[format]] of one:two
[[faces]]
[[faciality]]
[[binary]]
[[code]]
[[coding]]
[[binary coding]]
A [[thought]] only has [[mean]]ing if it has the fore of reopening the indetermination of a [[future]]. But it can only be a matter of [[new]] ways of life if those lives are constituted by new [[mode]]s of [[existence]]: [[human]] life is an existence.
[[becoming]] [[treatment]]
[[DID p9/10-1]]
the [[process]] of [[adopt]]ion... can only be effect as the [[expression]] of a [[singularity]] that it [[invent]]s to the [[degree]] that it [[draw]]s itself together...
[[DID p12-1]]
a [[process]] of [[adopt]]ion constitutes itself less by the sharing of a common [[past]] than by the [[project]]ion of a [[desire]] for the [[future]], from a common [[interpretation]] of this past, which is itself, anyway, always [[artificial]].
[[DID p19-1]]
Since the appearance of the [[industrial]] [[technology]] of [[sound]] and [[image]] that made them [[possible]], the [[culture industry]]s have become [[organ]]s capable of creating [[identify]]cation [[process]]es via [[behavior]]al [[model]]s... the [[libidinal economy]] is the fundamental [[mechanism]] of all [[adopt]]ion.
[[The Decadence of Industrial Democracies]]
Returning is [[being]], but only the being of [[becoming]]. The [[eternal return]] does not bring back 'the [[same]]', but [[return]]ing constitutes the only Same of that which [[become]]s. Returning is the [[becoming-identical]] of becoming itself. Returning is thus the only [[identity]], but identity as a secondary [[power]]; the identity of [[difference]], the identical which belongs to the different, or turns around the different. Such an identity, produced by difference, is determined as [[repetition]]. Repetition in the eternal return, therefore, consists in conceiving the same on the basis of the different.
[[double articulation]]
[[DR p41-1]]
[[difference]]: The Transcendental Condition
of the Diverse Given
we need a concept of [[essence]]
which is not drawn from the empirical but which instead explains how
this empirical is generated. It is this instance which Deleuze identifies in
difference. "Difference is not diversity. Diversity is given, but difference
is that by which the given is given, that by which the given is given as
diverse" (DR 222)
Difference is
not diversity. Difference is the [[condition]] for [[diversity]].
[[DG146]]
[[DR p1-1]]
[[Deleuze]]
[ p17/18 representation/repetition
p19/29 sign vs signal
p22/23 signs and learning ] these three paragraphs form a sort of series
RD reading no2 didn't take much from start of ch1 or the univocity of being section in ch1
p40 [[Spinoza]]
p41 [[eternal return]]
Unlike a category of the under
standing or a form, a [[differential]] is not opposed to the [[particular]] but is
continuous with it and is [[intelligible]]... [[Deleuze]] is in fact a hyper-rationalist who discovers intelli
gibility even in the apparent chaos of the matter of intuition. In short,
in an obscure manner that we will not be able to fully clarify here, the
differentials are not applied to [[experience]], but are the very medium [[milieu]] of
experience. Maintaining this point is crucial for Deleuze's project. The
differentials are not [[representation]]s of [[sensation]]s, but are the [[genetic]]
conditions of sensations. Hence Deleuze can proudly say:
The elementary concepts of representation are the categories defined as
the conditions of possible experience. These, however, are too general
or too large for the real. The net is so loose that the largest fish pass
through. No wonder, then, that aesthetics should be divided into two
irreducible domains: that of the theory of the [[sensible]] which captures
only the real's conformity with possible experience; and that of the the
ory of the beautiful, which deals with the reality of the real in so far as it
is thought. Everything changes once we determine the conditions of [[real experience]] which are not larger than the [[conditioned]] and which differ
in kind from the categories: the two senses of the aesthetic become one,
to the point where the being of the sensible reveals itself in the work of
art, while at the same time the work of art appears as experimentation. (DR 68)
[[DG42]]
System [[differentiation]] is nothing more than the [[repetition]] of system formation within systems... [it] is a process of increasing [[complexity]] that greatly affects what can be [[observe]]d as the [[unity]] of the entire system.
[[SS18]]
[If one goes too far in the modernist aesthetic, one doesn't render the nonvisible visible, but makes a mess, heads towards a [[resonance]] chamber that becomes a [[black hole]] ] One makes an [[aggregate]] fuzzy, instead of defining the [[fuzzy aggregate]] by the [[operation]]s of [[consistency]] or [[consolidation]] pertaining to it. For this is the essential thing: a fuzzy [[aggregate]], a [[synthesis]] of disparate [[element]]s, is defined only b a [[degree]] of consistency that makes it possible to distinguish the disparate [[element]]s constituting that aggregate ([[discernibility]])
[[ATP p344-1]]
[[discernibilization]] [[discernment]]
[[DnP 10-1]]
[[Foucault]]
A sequence of signs. [[OT91]] and p90
[[Di14]] Building meaning is never anything other than deconstructing signification
[[Lyotard]]
...the [[structure]] of the [[unconscious]] is not conflictual, oppositional or contradictory, but [[question]]ing and [[problem]]atizing. Nor is [[repetition]] a bare and brute [[power]] behind the [[disguise]]s, the latter [[affect]]ing it only secondarily, like so many [[variation]]s: on the contrary it is woven from [[disguise]] and [[displacement]], without any existence apart from these constitutive [[element]]s
[[DR p112-1]]
Second of the [[three syntheses]] of the [[map]] that is the [[AO unconscious]]. The [[miraculating machine]] is
...the [[structure]] of the [[unconscious]] is not conflictual, oppositional or contradictory, but [[question]]ing and [[problem]]atizing. Nor is [[repetition]] a bare and brute [[power]] behind the [[disguise]]s, the latter [[affect]]ing it only secondarily, like so many [[variation]]s: on the contrary it is woven from [[disguise]] and [[displacement]], without any existence apart from these constitutive [[element]]s
[[DR p112-1]]
What is between two states, two lines, two thresholds, or between a swarm and a pack, a state and a region...
When I can recognize a thing
from among others without being able to say what its differences or properties
consist in, the knowledge is [[confuse]]d. It is in this way that we sometimes know
something [[clear]]ly, without being in any doubt whether a poem or a picture is
done well or badly, simply because it has a certain something, I know not
what, that satisfies or offends us. But when I can explain the [[mark]]s which I
have, the knowledge is called [[distinct]].
[[LP56]]
they [[express]] the object
through some rather precise relationship; though this relation does not
appear [[distinct]]ly to us, because we cannot disentangle this multitude of
[[minute]] [[impression]]s, whether in our [[soul]] or in our [[body]] or in what lies
outside us. [[U133]]
[[distinct]]-[[obscure]]
[[clear]]-[[confuse]]d
[[LP23/24]]
My own view is that this opinion about what we don't know springs
from a demand for a way of knowing which the object does not admit of.
The true [[sign]] of a [[clear]] and [[distinct]] notion is one's having means for giving
[[a priori]] proofs of many truths about it. I showed this in a paper about truths
and ideas which was published in 1684 in the Acta of Leipzig [' Meditations
on knowledge, truth and ideas'].
[[U219]]
we can think of black, for
instance, without thinking of its cause, but that involves staying within the
limits of the knowledge which comes to one straight away, which is either
[[confuse]]d (when one has no analysis of the idea) or [[distinct]] but incomplete
(when one has only a limited analysis). But there is no term which is so
absolute or so detached that it does not involve relations and is not such
that a complete analysis of it would lead to other things and indeed to all
other things. Consequently, we can say that 'relative terms' explicitly
indicate the relationship which they contain.
[[U228]]
[[observe]]ing or of [[draw]]ing [[distinction]]s...
[[IS38]]
POERKSEN: The first [[distinction]] we make is, therefore, something like the [[Big Bang]] of knowing, the origin of the construction of a reality. There must be a distinction in order to be able to see anything at all.
MATURANA: Exactly. Only what is [[distinguish]]ed exists. Although it is distinct from ourselves, we are nevertheless tied to it through the operation of distinction. Whenever I distinguish something, the [[entity]] that is distinguished emerges together with some [[background]] in which the distinction makes sense; it brings forth the [[domain]] in which it exists
[[quote]]
[[BD66]]
The pick-up or double [[theft]], the a-parallel [[evolution]], does not happen [[between]] [[person]]s. It happens between [[idea]]s, each one being [[deterritorialize]]d in the other, following a [[line]] or lines which are neither in one or the other, and which carry of a '[[bloc]]'.
[[becoming]] [[rhizome]]
[[DLO pvii-1]]
Even when we are [[speak]]ing for ourselves, we always speak in the place of someone else who will not be able to speak.
[[DLO p14-1]]
We must distinguish not [[between]] [[relative]] and [[absolute]] [[movement]], but the relative and absolute [[speed]] of any movement. The relative is the speed of one movement considered from the [[point of survey]] of another. But the absolute is the speed of movement between the two, in the [[middle]] of the two, which [[trace]]s a [[line of flight]]...
[[DLO p15-1]]
[[linguistic]]s only finds in [[language]] what is already there: the [[arborescent]] [[system]] of [[hierarchy]] and [[command]].
[[DLO p23-1]]
To [[extract]] the [[concept]]s which correspond to a [[multiplicity]] is to [[trace]] the [[line]]s of which it is made up, to determine the nature of these lines, to see how they [[become]] entangled, [[connect]], [bifurcate]], avoid or fail to avoid [[foci]]. These lines are true [[becoming]]s
iVBORw0KGgoAAAANSUhEUgAAApsAAAF/CAIAAACJzZU6AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAA6MpJREFUeNrs/Xl4XMWZL46/VWft7XS3dlktW15kWy1jsDOxhXEgmcGGhJC5Fyusd74DIkB45gaTASbz3EAICdx7JwnBJnd+DMxgw8xNgonMncCQgMwkbMGSSWxjbMm7Zam1b92n97PV748jt9ut7qOttdjU5zkhcnd11em3Tten3rfeBRFCgIKCgoKCguIiB6YioKCgoKCgoIxOQUFBQUFBQRmdgoKCgoKCgjI6BQUFBQUFBWV0CgoKCgoKyugUFBQUFBQU8wxs1le1tu1EPmHxMSRVA+vEBWtw4dpLSRxJNTYQ6gSAwNCx1IvxpGzxEY4VPY4Sh+jxOks9jtLJjmj0vW/IJyDeS+I9E/8UspWDrQxL1bhgLXDOS2kKAoPHAGBA7kiq8XOTEjUM3eIjHmcpxwglnkUl7kWTHY7IJ/S+90GLWD/wY343TiRVI1sZLlyLbOWXtvwp5g98hSt8RSuoHChyUoN1PDqRTxhD+/X2V3PyDedkSq9hqhsu9nXtwOk9n5z5XTQRUnUFAATOpukaIbrA2TVd8ThLl5V/rtC1IBwfOtN3SNUSWTtxiO7ahVcvLl09kRH1M7u0ky+CGjlHEtK5/ZRs7pnY6ruRrdyQjxtdvzWG9ufqB5dezVTdfLFvrU71Hjhw+p3+4FmO4eNKxCAGxwgAoOpJjuFtgrS0bE2hq5xnxePd+6KJUK7dla9wee3Cqx2ie/y91NB+7dBT5x9sxo74ImAcQDSijoAyyCy+han4ClHDRtdv9cCbFrsrprqB8d1wsRP5gdPvdAwc4VkRYyapxhUtwTECxtikdn/lVSbTD4Q6bbzLLkgcwyMTgBFCCGEECCE8+uLoP9PfxefewAgQIIwQxgghQHQhniAWlayqKr2MyoFiioyerrXrZ3ZZNGCq72ar775I9fLGj34cS8g8K8rxIY+92C64GcwQQpJaPBgbKJIq6jc8kmrf3v/ph62NHMPn6tAhujf6v26tr2uHnjpPEpwX2RYCFgEhIASIRuJnmYq/YGu2ptqrf/p7o+99iw5x6dXc6kcvUn296cDOUz37naIXIzwS67fzLsleJLA2AEhqcTk2KPD2+g2PCJzdbL//1Nsnuv9oYTVZtfALyyvWWW2nAm9qh546/2++CNmXAGKAEYHooCdAj5FkQLjmVVOkJN6j/unvLfR4JFVzqx9FUvXFKP/3Du9q7fjQKXoZzAJAKDbAsYJkK7TxToSQqqtybDChRm+7+lHJXiTHBgNDx071HOwcbHOKHqfoZTCHMUIIY8AIjV4YmS8x52jefAXjUWrHGGGMMQDGGI9yPMV4KPUuLvMuoXKgyEnE3//+98fXJgNv6idfRkIJaOGc2vzwAYj34oK1kJvq5iedv/bR06qWFDh7JDHidZY5RM+CgmXlhdVuR4muKwxmBuXOqpLLUmrfB0cak2qMZwVCjKx9qlqyY6BV5J1eZ2nO7VHH/ztHxQJyrgDMg1gMfAGwdtATiPMYAx+yy/6/9B0ActaAOgSQfQdGomeNwWbsWYWEwouOzjsHWh2iByEcVyMCZ/c6Sxd4ly4oXF7gWsAxvK6rkUSQZbhy71LzI8e7/zQU7mIZLrvybWi9I6djyVBFYXb7pNH3vnbw8Qv42LUKAIFYApwbWAcYCgACLYq9tcheDgCIcxkDLSTeCySH/T85rPe8g52LkHPRRSf/E937JHsRQhgAFDVOEBS6yku9SxYULi+SfCLn0HTFMLRgdGBp+RqBsxe7F1aVrDrU/nsEaCTam9RiCDCDWQIEgBAgBAwwn1RCzBcBCAHD/BcBAoiYADDM/ycAAAghyutWcNq8TpuXyoEip2o3bgsS79EO/wQ5a8DmQ64aa+JX9//9RbecRZMhBjOE6Kall2N4h+gVOLtNcJlKocDak2rs/NKtxQTWZufdAufI1a2qJfYdf+NM36EsdDK0/wJrBxYAMYAAsAgIA+IAYQAAdKGLAxaAsSNXLWAu50zJJ5SWv5nUefyco/nY66d7DwqcjRCdEN0wdI4VWMzaRTfHChwrOEQPxgzP2dKPdQfkDhvvYnOLAgDO9B3ad/yNbHMTUQ89mU3LBhilE2T+gRBzwcQFjyDXKmDsOYdUI+OaUuYbWjv/cLLnT07RY8qfEF3Vk3ZBYjAncHaBs7OMIPJOluFF3inHB9M/yLM2r7Psc0uvX7Xoao4VOoeOBqP9qp7UDc0wdN1QdUPVDFU3NM3QdEPTDd0guk5U3VA1XdUNTTc0zdA1QzMM1Rhtrxs0MXVumF4OFBTTYPRYD+KLADGAeZAuA7HCorF5NnkRLWddQ8d4RjAM3TD0XOpvdsEhXFWymsEcAEI5rn3H3whG+zIW/WnJh3Uhp9WmyiSV82fz8xsDoc6PT/zGzjtN+RuGTiYzBTZeEjnHOQbOcp3p+/TA6T2ZEjr05BTlo6uAGGQfx+apHnpyck52c2qg+uBIo4OXUvKf+BQk1TjHChhhnhWLpMrLF//FhhU3sQwXGDrRH+oIx4dNwjZGuTxF6ppuaDoxX1F1QzUM1TB07VwDk9d1QzOIQXmdgiL/jJ6pyXjXgaVupAfetD5xnz/L2ftHXhVYm0F085oUnQCAwNkWFFQjgNTZYcaFEfO7Q/833Y1La981XR3auRyEEqsdmHwiuw46//DekVdsvCMlf4PouQ4ycmFBwXIGc7nlj090fZxuKTGG9k9Xh2YdyFFtvalSWv7mothUvXd4F0aIgDGdKUiBYViPvdjrLF1Y7F9QuLxn5Exf8Kw8Su2qoau6bqrmum5oBtGMc7yuGUqK+zVD00dJXdUNTSfGZH+VFBSU0Sf1CQ55/sy6ybjBb/MBB06/gwgQIAYxzGsK1r4ST5XTVgAI5SIV3dA+bP3VKNfGe/T2POx1kPfz1psqo+997cSL81z+p3oP9I20Y8Sk5D+FKeA524KCagIkJ6lj9sDpd1KWEv3kjjzcuuQHzjOOpWTeHz8FBo8d62phMJsu/6n9CjLFYy+8ZtUt913/zPVrv8Gxwpm+Qz3Dp4ejvZFk0DA0XVd1XdN0Tdc13VANohuGds4+r47q9Oa7umoYqqZTXqegmDlGBwCh5HyoVa41bX7bfuXYYMvx/2AwZ6Rhal35imqIoWPTd3fMxSBGjg0dPvs+AOgnduRHJowDOZdbN9FPvDjPN1XvHd7FMbxxIaawcJd4qmy8EwHKNQXE0FuOvWFajyyCACe3qXKvsW6Q6S0x/9B8/HWOEYwxyCN3+opW+ApXFLgWFDjLi1yVGDFDkd72gcPdI6cGQh3Dkd5wfESODYXjw8aojq5quqLrmk7OWeZ1zTBUXVc0XTOP2OmSTUFhAXaKK5pjCQkdtGhA4j3ayRfT46/m13J27A2O4Y0L/Zanpp3YBcnjLJNjQwxmsouYwa2df6iwS/bcMc2ThrMGoqdBt8oBoh56kt/48vyUf2vnH2KJEM+KeZkCX5H/RPc+DgvZn1UE4fjw4bPvLz+9I29fQCgGexXE2q0sVSdfxGVXz888DYHBYz3Dp8wjp8xf7gywJs8K5QVLHaIHAKKJ4PGufZFEUBSc5QVLASCpxls7/wBAEGCBd5gOj6qWSGpxw9Btgkuyj4ZvDIQ6AQiDWIF3YMQAgKYnk2pc1ZUCV1kquHG0GeZEzmE68Kt6MqnGNF1Nb9Y9dIJjBRbzAmcf9fPX4oqWyNVM5B0ACIAoWkLREqqWWFB4/vzFbMYxosDZzGZJNa7qCVVLppol1dhwuJdl2FRvhBgJJaITLVszjmdFnrUBACFGUo1phlLsXvhn1V+mvEWRZ0YHLABfBMqglZp4Zhcu+cI8zHwixwbbAh8JrN2Y6pHhhWsfcduLg9E+BthcMbUsI7S0/vJLef0WyL6YhFutbk8+oZ14cX4mCWg+9gaDubHyn5qC6LIVuGyF8WQYoxybKsy3dv6hJBl1T2xiJyR/qZbEA0C03FuqiHboKW79/5mfCjqL+azP/yzYt3lW5FjBV7iibsXXRjlY7iCGwbNCZZFfchQDwEDwbPfwybgaWVa+NtWs8aMfE8NwCO5FpZeZjDsc7u4ZPjEU7rmm9tZUMjWzmWQvWljs51gRAAZDga6hY6HYQHqz5377rSKXr8BZtqBwudmsZ/hkf/BsrmaVJbUYMQbR+0bO9AfP9stn09NUmM1KPVVlBUvNZt2DxwfkzsFwINUsMHis6cAOl60g1ZuqJc70fhJNhsY2c9uLy7yLS71LzP1N99Dx4UgvZSyKcZh56oxiM+NukcU1P/3em4+9wSA23b93Cr7uBjHk2OBA8OyQ3J1UYxgxBtFQDjCIiXJFR4Xl+fwanBdYyVr++okX52EwW2vnHyLxEUKMsVMwZbesAucCzVBQbnCM8KnoH4fHlSAoQ5AcBF0Zf0jGgWwV1vKfn7b3wOCx7qGTWeU/nSmgoKC4iBkdRvUhBIjJdZF433xz0ZJjg22dHyGEyWgqjPRrEkio0Z6RU13Dx7uGjg6Fu4GArquAzAxYWcAx4ml+SQzb8qmmm5GEueUPiJmHm6rmY29gxGST/2QnIY1eMcti3iB6LvmzDBfky0/xi60oXY+DGgYtaqV5p0MoA4Qt5c9ekOh33ijoOPvzP60poKCguJgZHQBJ1chWCmCxqHFWOeHniE4Qwql8GunXxNcygxjBaH9v8HRSiw+Fu/tCZxNaTDd0TVdyO11jzEmfCrX5/DKsCxib5aaKNYY/0fN4fp8PBT0cHwYwsk7BdEy+DGJUPQmQM+6AZ23HhOUqyhYmQHRI9pLI0dErdtoiPWLaD4BFtkUAxIrUtaTWtn1eKehdg8cBSHb5T28KKCgo5hbsdD6MOBeuuln79Ec5+0EAuqK1buc+97/nw7dNqrFTvQcAyDSdZoPRvi/Ufn1p2RrzME+ODb53eNeZvk8WFCwFQnKd5mJG6Od9g8qZIn0of3o6CyQBKHcwG8L6iZ1M6TXzJOV787E3EEAuD4Zp0QlCAKDpipkQPuvTaHDuTwX/2sQnmePGTzGLtjC+r5iObEbf+3r7q0bs9PiD8kWQ6AJAOTfHiNG73sIVX54nDiXNx19HCFl4kNCMbRQUn1EdHQAY3w1ILAKEAOEcF2f0/yFfUUPTxIHT7yTVWEYA7vlI3InRSbG08M6/+J/+sss5+ah24kU98KZLG7lx3d9ce8VfLylbo2jJXDoiQtjGu/aLl+f3SzG+LwMYueXPkOSg1j4vTnMDg8fk2GAu+U8/GFrT1aQWs1bTu4SqEM6MveTWPMlW390VlQODxwKDxyIuP7f+/zALrp3QRoIvAqLnlj8GJOQnDn7aGAh1BgaPWcjfoJHfFBSfWR19lFGqG7TDPwacO98149Dats95JFVSjR04/c70+7lm1S3aiReTp/4v4ouAsYOR1PQYdi2sqdmKpOpQtD+alNkc5WoYYFSh8JS6eKlyJm+MXt2gd/0WsGihx+snd6YU0LlVEGe0f4MYmGDVSFqk3Bd516eif2Os+fyutnDtJ6GhfR8/iBA2Q6eSWqzYvXDzFfdJ9qKJ/YwEIDi3mg7GyGE98OacV1ydyPNf7K6kavrFC1mWW48cTv3TX7tKks7vXwOdnYFAZ92VG9I/0nrkCAD4a2szOsn4LMVnQkcfVdOdiyxPczkSCcz5aa6poE+/H+3Ei/rZXyPpchB9IJSCzYfsS4iiKPu2ghqpXfSFpBrNle0EI2zjpWPCChVx+fpeyFbOLLsLiGZ1mosdWuscn+aa6u9Mj1JVupplOIuEMzwrhoXKHvZ8WbxjhvvjE7/1OkrLPUsqi1ZWFFSXuqsSSvS1vT+d4APDVN0CRtJK/oxTP7Fzbl3k5Nhga+cfrNtI9qKlZWvosnjxovXI4dvr61PXFTUrb6+vNzkbAHa/+urt9fU7/vmf0z/y5OOPP/n4BaUIn/3p07fX1z/706epPD+LjA4AbM1WMOIATM6LcWhtP5vDFS1fCjoAkOEDo5F7vAdsC0AsB8QCYwckGvLxEveiAme5bqg5s8hhhhMLjvL5LKTNVt0CDGMlf2wz+pvn9uxjIgr6RHViS/grN8YV2WJTZRfPuygiW/lR4nHbiwXO7itaubjs8qqyywuc5QJr03RlINQ5oV9RwRrsrQVi5J4CliihuT37aD72xgREt4GuiZcAtv7tQ6e7uk93df/omWdajxz+6uZNKVIHgCe//3jjq1aPYuOuXZIkNe7aRSV5STM6IWAkgWhgZMb24MK12OsHoueOzWXAMOZwRcuXgn5OL2YAUgVPM4tvrlm6Ka6ELWKjbbyrXazOZyQb52QW1YMRswqPZlxzeJo7EQVdshflhVEWl65mGY4QI2d6AMyCrdRMD4B9XwGAUbLHDABiMIsxAwC5PByzq+nLGkCPWskfO/SzjXMV95FS0DlG8DpKfYUrFhX5S91VduG8WVXg7GuWXEvXxEsJ9Tff8ugTT5hq9/l9W23tk48/ns7xF9D5q7tkWb7rG/fIstz01ltUhpcuoxsqJHoh3gXK4NhAL6bqZjAigNicF+PWT740JyvaBBX0VN7HacLjKPUVrtB1FSMm1+UUvZ8KtXn0f2arbgFs+mHlkD8WjZGjc3X2MREFPY8KYu3Cq2NK2EL+DsF9ml+i8V626pb8/JAK1+KCVQB67p8ABwbWT8zNpspU0DlGKJYqF3iXLim7Ymn52oXF/hKp0m0vNtukYjcoLjFSB4B0bv7RM9sA4Pb6LbIsj23/2qu/2nz99VtuvhkAXvvVq1SAl7COroEqj15ZKMUJRhJABYxzXqx7Tla01s4/jKugF7sri92VeWSUcGLEwuld5J1D4qLhRf8tn2p61dfBiFrJn/PoJ1+aQwVd5J2l7kVVxbVVxbUzqiAuLl3t4niD6BY12QRb8bGiG/IY1McsawA9bPn8O/XuPbNfQSeloNt4J4NZt7NUshfZRXeBq1zgHE7RYzarW3EjXRA/C/DX1j76xBOyLN9evyXzp9rZ2bz3o2uvu85XWemvrW16662srE9xcTM6MZIkdhqIjMs34PINuHg1iR2HRNcYUpdAk638g1hJ7/7P2T/NPXD6P8dtk197ozj44YLE6YQSsSB1p1jQ2n8yn3NZsAb0CEDuLHKYJ0p09rP4mQq6yDtLJF+5d+nS8rVLyz+3sNhf7PJJtsKZUBBJvGfFwG+iiZCF/B2i93Q0kl69fvpqOrPgWjAUy59AwewnnLE4QU/VIVhatiYvTgwU8w2Bzk640JXdVNwb7rmn9ciRv/v2t9Nff+nFfwGAo62t259+WpLcAEBP0y9FHZ0kuDXf5ze+zFbfzVbfzdZsFa55FZdvzFwdWNc5TR3nvLiCWT7Nbe38gxwbrSgj8k7JVijZCkX+As1Mshf5K6/K46D6iR0rleORRNDCP0vkHZHESLrTdR6AONAjlvL36Gd/NZsuimYMNAA4RQ+DOZe90CZINsHltHkFzsZztplQEPUTO4r0IUe8XddViylw24uPdLyfx3GZ6gbQQlbyZ+zGSNtsbmon4uKe9x0txfyBSdKbrrs+4/VHv/9E/c23NL66KxXtJsty465ddVducLkkAPCvqgVqeL/YMH48OrKX8+v/UbFVHDj2emDoGABItiJ/5QZfzdax9kMkVpDocSQ4cq95diN4zBjaP2sptFIniIWuBS5bgUNwG0SPJIKRxMigHDCTZ+WZTgJvkniPHaAqcXxEKbILOSt+ue3FnyaXLoDhvBE6X0TUYQTGOa+9rHs4XmvfNWs12TI8GLKWp/NXXpVHBZHEe0x3gZXJEx/HK4ulhbla2gWpe/ikHBtwiYX5kb+tHIwE0qPAunI2EkpnMz3DRFzci92VqVJjk5Y2EAACgCwy0xBCYklZ0xUAUNT4fFsEDUM3iG4Yl06Jmq5AoHnvR3JIfu1Xrza99dbm66/f+tBDY5s9+sQTrUcOp1zkmt76rSzLjz7xREqhb3rrrdYjR1qPHMlQ8SkuYh0d2coHifjSf/6PY4EWXdeIYQzKnb9ueba18w9IGhOChQVgnGAkLFzkkFA2a+VDUgq611nqFD0LCpb7ildWFteWeqrsvMv0CRI4e35jcFO+AiuVE/FYr4Xhl2UExlbcQcTRtfHc+gdEByM5RVIRyok6YuWiyBXpJ/91dlwU50RBTMm/SB9yJToVLWExBW57CccIef1JCUQdtpI/Fkmsf3ZcFCco/+mcdyhqfEjuHgx1JtRortQ0qq70B9vP9h8+23+4P3RW09Vpfi9NU1Qtoahx61oMmj7ajIwpA3/+/rVEX7C9o+9w9+DRRDIM006ZZwqBzOn+oPHVXbfX13/z7gY5JP/omWf+6cXsZlFJkn7RuDuVRualf/kXf21tOnlv+Tr1j7vkdHQAeO/IKy5bAccICGEEwDFCiXvh7w/9QrIVjd3aI8cSEtyP7JIF5xBlaHZSaKUUFI4RMGIwxgAIIWAwhxBmGM6kkzye4JoK+uigRF2UOD6QrEg5H42Fx1F2OBksJ/1ccgA4CbQYGEkSaWNXPTzFOzAzjRMNEJ9blS/WT+xgV393PiiIvqIVefRJJPFevfs8Wa5MnvhjbGGpJ2fJNRvv9DhKEko0j4wOmAdNBtZjJf+TL83m8z9DIMQIRfsHw11JNbagYJmaowptXI3EIrJuqADAYC7dI3Jqw8qxATk+xLM2juF1Iztb67o6EukLx4dsvBOyWYZMRBLBUGxQM1SM8PT3dooa7w+2G4aOsVk3aLZRd+WG013dud7d+tBDGcq6JEkH246af/9H055x21Nc9Iw+EOocDvd4HaUcwztED0ZMUo3FkrLbUdza+VEWYx1jA1sFaCHgvBZ6pH7ypZkuH5J+gm6hncyQgmhiqXLmTGSpQ3Qzucq3IGyzFZ+UO2s4DfQEEJ1E2tjab09nuUf2KpLoQ6IvZwuuQO95l6m6OYuVZdYVRF/hijwOagTeTDc8FelDJbFjSUepjc/5pBU6F3QO5TOZHbItIuFWxBXkbiGCImsnXpzRs48Jyn86UHUlFBtkWb6y2N/e/6nXkcUpZCTSt6Ji3Zol15r7toFQ54HT7xzr2jflQZNqPJw4FYz26YZW5lmcq+qMosV7hk8GY/0YMcVSZdZ89bGkrGjxMu/SYnelHBvqHj6h5diUTBCh2ADEBgxiYISBgmIeMnpSjZnJrl22wiKpkmV5OTqgaHEBbHI8O18i9xrS34S43GeTCIOqzfRp7sSSZF2VRwXd6PpthjWbI+ri5Km++IKsi905Nb34bNy3NPoBb68i0RPTpPNRNV0ZGk9NL9PatnPr/8/FqyBOECuV4x/EVtqFnAfbHCu4bF5NU/I2JGIQXwBaCFhv7k1VsX62ka26ZeY2tbMg/1hSZlm+/vP381poD0B7/6dj9e+/uPy/+SuvAjVi+gMWS8s3r7nLV7Rcjk2xAmFcjYTjwzdd+dCA3PH7Q78okrLvXGNKGAG+8y/+53uHd2XdbSTV+NKytdesuiV9BThwes+U5ZZQIlEl7LJ5Bc6eUGPh+IiDd1GOoZhfjH6eJjibw+YGQHbRjax3oJhDjipQg2ChpgglM7qiTURBBwCBs+Vx0KyHo0uVM2eiyzyOslw5yBjEulyLDhsja+Q/sKu/mxdjLJL8JPgJsi/OPUcuI3R85lwUB0KdM6cgCqx9ONwtcHZj1OJKdEMziBFLyjxk2mDtRrw4ejRiK3LZcm4xi6SFgcG2vN5iGQkfQZwHciaew0h3ztymdhYU9FhSdoju+s/fj/Y/oiQGNq3bvgfgRPcf09vUrfgaAGht2/Wz/474IgAgyiCz6L/4a7ZO1SqQNOnc2/1agWsZrL7994d+MfZXrOpJBPimDX/LnPznTUu/Yu42TM0k/d7qVnzNGNqvmRtx1olLv7BmyQ2+wpVTsxz4Clf+5aqtKR9Ps8jyUGRusgRSfDYxWdMQmmhDx3Ki9Jv6Sq7YaISlmcsLO08URFNNr40fCsX6cW64HcXdTKl65Y68na3yJcAIoMcsYqORbfHMxUa/d+SVmRPp5jV3sSwfjPb1B9tHIr1DcvdA6OyA3FmpdqzGw1nV9JFIj4X8WYZz2YtGIr35+2GxyLEYlEGr2HShTO/49xlyUZyF5z9F56DpSPAp+7ZuWrqxesGfZTTTDj1l9O5F0uUgVoBYgaTL9e73puwbO0rnZ/9V7/pP7cgzK1DwS6tvjySCY9YpfNOGv2XanjF6PjRvrKrkskhiJIPRtbbt6p/+hzFynOgsiYe0Yy+qLf+92O6dgmPHmiWbblz3Ny5tRDvxonm5kHrjur9Zs2QTpRmKecvoE++YQ/YloAxYrWhiuX7q/87Einbg9J6JKOizhoVqQAm3E0IsYqPLvEtaB/KZTQy5akmyx7IgmI0kRmbC6Xqmy6wx7b+s//z9DMP1Bs90DrQGBo92j5yqVDv+HGf3CbIb8YXxo+H4kIX8C5zlI5Fu03srP3BWEy0IQKw2VcyMZFGcBQXdV7giRefAFwHjSJF6euSIMbRf7/sIhLILnkzbQr33gynkzhNY+yid97cg+xLkrDFJffOau9KbFUsLR+l8uA3EitSNrfRdmd7M6HtfDzQh58pRjx8sINtCEhvUTk4lBdM1q27R2rYrzd8yut83ej4yut9XPrhLa9t+zapbgILiomd0ALAvJsqgZfkWhMSKvK9oSTU2fxT0FJYn2gZCZxGgXJdDcPcF2/tDZ/M0oAFCEbAu0MKW8vfNBKPMdB10MnwA7X+k/vP3sywfjg8PRboXsmouOj+npp+Q5XYL+bOY9ThK+4Pt+dtS8Ui6DJJ9VuVb+GK95/d539TOwvPvc1eM0rlQBmIJiKXASSZ3FqHE+adw+IBpbAdAwIjACKadDwmlet+kc/vcuO5vUnQOjAiMmCL1dBfda1bdMkrnfDEwInDuFKmnN9MDv0G2c7kK0Dnro1Cmn/33KQhED7ypd/3n6P6AdQHnRc6VeqDJ6HsfKCguBUbHLLL5INkLxMh5cYV67/v5XdHyXGYtf2q6GulIanGDGLmuQlfFkbMf5IPNNUj0QbwbCeUkEbCSP+KAYP1MPs8+ZqcOOmh6itSrSi77CycBxJxfoMeAI+rC+LEBudNC/h5H6UCoQ9HylwLFXkW0MOhxiylA4sL8lq6fBQUdALT2XaAmgS8C1g6MHRgROAkYO+KKM6naTHbEiCAUg1ACDH/+xckO2rZ9lM55D4ilIJYDYzdJPV3j19q2G8NtwBeBUABiGYjlKVJPX2qM4BHAwui98YXAuUZPFTnvFJL66SdfHi2ynP7V7UtmP+lyoLPzye8/fnt9/ZPff9xMAZsVt9fXb3/6abP9aPB6/lK4L6lY0Lz3IwD45t0NUy7gZt6YxVegmF1GBwC+iKgjYCRhNLFUlgsJC/KYcCaPddDzjnUrvjoU7iJAcl0i74wl5Xyo6QQMFQwVEANYAGXQQv7Al2inXspjXlhrBV0zVEWNJ9WYrmvTfLRMUr9jw0PXLrzcGP4EOWuAcVh8YsXSr0WTQd3QLKagwLWgezi/Zx8rSbLbSv6s0xg6kMe8sBNT0Amcy4UydYxKG2Xh72z7+/PHDVN+rOUTyL4EAAALAAgQBswAYhDnJWo4vRnwRYAQYHP3gAFzwNgRdpBYmvKQSnTDScA6gfMAwpBWFnly96bIo1+NtYFQAIwIAIAYEuubzUVGluWvbt600u//RWPjSr8/EBifDp/96U/9q2r/6cUdqVQzc4jWI0eurltPiXm+MjoAEspIssuqBesyQifytaLNTwUdAJjFt5SW1Ymcw/r2ityVB07tmdZIyiCRP0GMhhgNjBHQwiTZbTlDDEKOfLkojqugxxKh9r5DJ7v/GIr1a0YeSF1p+Rv1wKPIWQOMVRQispWLVTfV+DaMRK3c3yR7USQ+rGr5yw1iWwh61DoDIBIW5KvYwUQUdFVLDod7BkOdkcRIrmDuzxjQuf+iafeEgPMAKwHvPW/Jn1VGPCzLsllBtf7mW+qu3JCu8pp681hV2EzkbsGy6X9nLazevPejrMr0P724Y/P116dvOJr3fpRuDMjoUJZDqX58lZW/aGz0VVZmDDTWlpD1RcroM6WmgzIEesLK8Cj48rKizV8FnXOyy+4GgNpFXxgIdRBi5LpYzBmGdqbv0BSVmEQXrviS8BdvcOv/D7f+//AbX+av+QUuXg/KgJXtnS/WO/49L2r6OAq6rgyFu7qDJ3uDZ/qD7XkgTr4YdECCz1o7BwDWvxUAlles07SkrqsWU1Ak+axZf9KLvGMZSXRbyZ9xGPLZvBy4vnd4/J1ZODZ4svuPhzveHwh16NPcVFFk2yLP4eB1V26QJCmjoposy6YR/p233/7q5k3p5Pfk9x9vPXJ4969evb2+fixNLqlY8NXNm766eVPjq7tM7fm1X7367E+fTvVvmutvr69v+WjvN+9uyBgX0mz7siw/+f3Hv9nQ0PLR3m82NMiybJoTzA7Nu2o9cuTJxx83P/Xk9x+HNOv97fX1X9286Zt3N7zz9ttXr1+345//2ey/8dVdX928yezz9vr6JRULPuNPX3YT2fGufcsr1uWRz0iyG4mLcu8rRENuN/rex6VXz6yCfj51+qyqJsy5sPsS9yKXrSCeDIu5U5h5neVHOz9aXLp60isJ5zLD2QdCnad6f2e+6K/cIK1+NPn+bYgUWGzsEHJobdunmRf2VO8BawVdM7RBOfCX6x8QOPtre5922Qqm/Wi5QCgEANCioOc8/8aFa1OP1srKDW2dH5W4cz6NIufkWTEPlh6iAbAABrASkLOgxwDbcqvppVrrdn56z39g8Nip3gPWbQyi94XOsiz/uWXXfXzitxaJjyguUvyicfft9VsCnZ3/tGPUkP7k449LbsnM7r796acbd+1quOces/Gj33+i9fCR9VdemSvb601fv/kXjbdIknR13fo77/6G+cHb6+tT5Vtajxz5j6Y9kiRtfeihq+vWN766y7QQZGDnP/9z6+Ejv2hszLhV8w6/unmTeVePPvHE7fX1Gc1G7WeS2/wKK/3+Jx9/vOGee2RZfvLxx/+jaY+px3/z7gY6+9l19J6RU/lzugYsLcdSFehhq9N0vmya/kFybLD52Dgu1kktPiQHhsM9Wh6DlCaioFedf8TXLb9xONJtcZTLMBzDcMcnnyYTSdWM74amAzsbP/rRia6PT/bsP9H18b/9/vHW3k+Yhf8FlB6r01yuQO/eM00XRWsFkRj6oBwo9VaVJ056z/7rTVc+FJ6+fRuzwDqBdVorRsyy8z/1xaWrDaKpetLyNL1iuns+ApAcgEQ3JPqB6EisIImAlfwRT3RtmpGEEwkxSGV5u6KoaqN/y0i0jy6Clxj8tbW/aNwty6Hb67eY6njTW7+t8dc27/2oee9HLkl65+23J95bwz33SJLUeuRIoLPTV1lpduKrrNxzzt9t8/XXpw7gN19/fa7Od//q1Tu/8Y3MRTsUevL7j19dtz7Q2Rkez2y+/srR4ENfZWXqe/lrV6XM8mP7p4x+bjdkL86P03XakkqSvVYrGuamuaKN6xCk6cqwHGjt/MPJ7o9D0f5ZU9OZC/PiOUR3mXdJNBEkuSHZi1sDH6laIm2iMOgxIAaAMar/ER30GGB8oRBeb+//tMjlE3mnwNpE3lniXvje4VfOissJiQPRrDZVYuV0ItnGTdI3Eu1T9eTnHax29Hm9v8Uk9YSapxIpuc8sceHajLx465bfOBzpsZA/z4oOm5fAdJ4QAmqIjLSAaW9nXQDGeJvaUv3k1F0UJxJiEFciJp2j/Y8oH/9tjbuEkvolTepy465dACDLclcg0PLR3paP9oZl+aabv559Cd370ZKKBeaVSb1yCADajhwxO6nw+dZvGOXX9DN4l0uSQ9mJOdDZKbmljOG+unnTggrffzTt8deumsLX7OoM0LnOQHaru413dCvh/tBZC+Pk5DYOhWtx0Void1qcdyKuaMrlWybiEKRoid5Qe1XJZQNyR1+wfdoFoKaioJuoXXj1W/tfsLgBjLBTcB/r2rdq0agZll+3Xdm3FYEPEhgYG+gx0CIkGeDXXWDYOBpodtuLMcI23skyvKIlEkrU6yg90NlctfK/60f/GfiS3JNk03vexRVfnlpe2HF3VAYxVuBg2cDvTXdlvb/FC1C/4ZHA0NFUm2J35aH2dx2CW9ESDiAAoKhxM73rlOuzpSvoJkrci+y8S9FiPJvTDO51lIai/VOfdz1GkgFu3XatbTsog8AXAWJJshfZFlvuOtUp54WdiILucZacz/ImVikf/13N538E/i2tnR/RpfASgyRJW75+8ztvv91wzz3+2tp1V9ZlNYanw6Jum8m4W26+OcNPDQC6AoH0v/2ranNtMgKdnZCW4+elf/mX+ltuMc34gUDnerhyst+xprZ2d1qlVxrnllNHJ4R47CX7juczTwXr30qSloZfhEFTpuZ0PRGHoOFob1XJZZtWXm8GMceSs+EbydZsHbtBcYjuJWVXhOPDFmqiy1Z0uu9gNBEyP7Ln1If8uu0kGQA1BKoMqmzS+Z5TH16ohIUxwjbeVeReWOpdUij5BM7OYK5vpJ3x3QAsB4ZiqSYWT81FsfnY6+Mm6VuBg38uKsi+BBgbsHZkX2pq6ulpMpeWrdno3zIgd/YOn+obOdM7fLoveGZA7tzo3zK1Gva49OqsG5TaRV8YCndbyJ/BnNdRNsWCmHrMnJ1PQkNk7Y+BZUAZBACm/Iugjoxz9nG2cQpqemvnHyaSA+DqFV89n+UNsUj0KR//XY275JraW+lSeGkg3XW8Ze9e01K96brrn/3pT1OEl9VZfdz9Qd2VG578/uOmuVuW5VRvTW/91uyw9ciRprd+e+fd2U3fd37jG8/+9Kcpp7x077zGV3fJodC5gdwZ71ptQTZskEMh00tOluVnf/pT+gDkYnRgMIcAT9npOosKbitnFvwFqCO5jy8JsAX62f832RVtIg5BI9G+qpLLNi3dqPzh7lRmkpkmdWQrz5WnfdXCL4zGRueGnXcf6Xg/tWSfJ3VlMEXnWS0TAmeT7MUO0SPZi1iGBwCMMQAwy+4kSr+V/LHdCE46knAiIQaLUXiUzlkHiCUglAAnIfsSvb8lPb+NfmaXaQruCZ7uGTnVO3K6e+TURv+WGnfJ1NLgmC7uY1HiXlToqogrEQv5ux0lbZ1/uODsYyIwkqnZaT72euPHz42Suh5lqhsIiVvJ33RRnPymdkJ16N0VpSefBU0HoRiEQrCVAes0ST09yxvFRQ1ZDpmu47fX1/sqK++65x4A2PrQQ1u+frPplJ7K2eJfVVtR6Uv/YwyLu9OD3/5pxw5Jct9ev+X2+vq/+/aDKdKt27Dh2Z8+fXt9/ZOPP/6jZ7aZSnzdlRtMbk51Xn/zLXfe/Q3TI/2bdzcEOjsf+NuHmt5665t3N3R1Bu76xj0pVb7hnntur99iurmN7Sf9xiRJ+kXj7td+9ap5S7k2E58pZLe6mwuMx1nW1vmH1VV/nq/BmOoGvf8bCHKbuxFCSNBOvshOpjTTROyNLMNvWrpR2bcVCT7QYmj/I/Wf/3Hjx8/NqHCZ6py+lxwrLim9IjB0zG3PaQZ3iJ6uoePRRMghugXO1t7/6R6ATeu2q3/6e5Mw2vs/zVU7zqRwjHD68TLju8Ho+i2JhwBxOWdAKNHatvMbX57415xIDoAilEB8MYCZgQQBAGAGABBfTLTzGziiRZR9W2vWbQf/lg9bdwOASefKvq3Moi2Tlr/vBmQrz/XumiWb3jm4U/Aszv0wYozZ9LOPiY3KpWanyOWLJeXGj5+r//yP0f5HkK2cWfRfjY7fAOvO/aRK+sl/ZXxfsbjzsQr6RKoYrCtfSTo/RbaFwNiAdQEA8B7QE0j0zXRdXYpZQ92VG9JpOIWtDz2U4c3+6PefyPgjA/7a2nSfc0mSfvTMM2Ob1fhrx/rJpz6Y3nnDPfekfOxNvN/cMrbD9I9k7Sf9xvy1tf/RtOecteCtsYcCVEc/x+lglhVhjnTkzUUO2cqZis2gDltyr1tvf23iTtcTzDn6hYVrR+mcsafSjdV//n5f4YqZUtClautCaisq1hmGZhhW3moeR9mB06PPq9dR2t7/6Z5TH/Jf2m0SxhRCj5hlDSRpKVvEkVj/xF0U5djgRHIATLwIPeKKTVPwRv+WUTr/+O8QVzzpCeCcFjsqAHCI7vKCpdGElRncJRac7jtoqunIUQF6DAiAmWqNGEAIEJ2oI4g7Xwab3/jynlMfnu0/XOFdVuhaUCxV6ro6qqkDsFW3EBIDoltJgC+ZuItiUo2ZR04M5ryO0gXepZWFK0vcC6ULS8f6K6/yFa7Ikg0NzXH8NAXFdJAy/suy/NK//MuWr99MGT0roY/CaSsIRvvHqYY+OaOAk6iDYOgWtsdJrWhNB3eO26aCxws7XkKCDzgJxFIQCkEoMUnd567IaGwQQ9UShqGrWnI6GbXGNTNwrFhTeVU4PmRh+BU4+6AcSEUSFrkqzvYf3vHO35/tP1zs8k1lvgvXYs9K0KNW8udK9JMvTdRAcuyNlIIucDaBszGYG0vnNQuvmvBW6Pz57iidi7703KIk3jORcwGm6pZx1dzahVfHFNlC/ghhG+861rUPAPh12wHroEchOQjKMCT7wEiSSBtb+20kVaf63HP0rfb+T32FyytLan3FNZXF/hL3Ik1TRg1CnJNZVD/O2RPjnHj5FtNAwmCuxL2w0LVgYfGqxWWX+wpXeOzFRdL5J6RuxY109ae4xDCatWb0NGGLRVT9ZwdsTg0dCAAghD2Okunmf85ca52gDQOXO7sIY9d7fsdUN4y7Ik/Q3ngV7h3VzjkJGBsAgJ4EvgiSvRmuxQYxND05EumJJ2XN0CLxYQDQDDVdxSSxHhAqxyfOCXiMLy5dfaTjfc1QxrLgeWOXvSgVSegSvZKtcCjSXehcQIgRjA1MRfxVN6sHn0BC7g0BAlAT+pldzOJbxlXQzYN8yVYo2QptggsjRtESkcRIMNqfcitbs+RaAQ9MYnOEGJPUAQCJvgwlckK7vWwhBlnV9CWlV3QNHXfmznVjF9zHupoXl17+x5NvXbNuu7JvK2iyGT1o0vkx4ikOdaZc8U90/7HEvZBnRZF3YMQIvN0huJ2ip1/uGP3JVd+tdL0FRIPcG2XEFWiHnhrXEp7yYHAIEkbYKXoLpHKMGJ61ybFB/ZwlwF95lWQvMuIdlAMo8ousqWBmDZI0mjaHYhwdncD5pJgO0cMxXB6HRGIFMWLjxEZzBRMp35JyCBI4m2QrLHSWS7ZCjhHS2/iKVhS7F2Ym/TbDly8MpVtadkU0EdQNfSTaPxjuGg53J7W4bqgsw6fWa/3MrokoTxP3A1izZFMoOmCRlJRnxUhixIyz4jl7qXdJ7cKrS71LWFaYspkE9DjoEcvyIZJ2aue4LoqmvdcuSG57UYmnaknZFUvL1y4s9nvsxYWu8tSOZM2Sayf/YHLIVolslXDhXofEeyZyIpCRA8ACKyrWxZWIYVjlhXXZCo90vP/Jmf9sOvyrUU1dC6fovOnAznQ3AozH/KZQZsJwZtmdRO23TM8gGsG2cU0R6QaSCwdE6QYSWqKbguIzzeiZp4n2wvzmY0FCOVEHx1nRRsZZ0VIRU15HaYm0yFe4vLLIv6BgWZlnsdt+/th18xV3TZxcBd4eSQQJMRQtoRmqqieHwj3ne1Aj2snxayMyvhvSzbDWqChc4RQ9qpawkIZkK3QILnOlFni7yDsE3o6mU1WCLyLKwDiRhISxdrpOhRiwmANAPGvjWBFjRuQdLCukrA51K26c+CF62rbDBbYKsFUAewExT2Sfh2zlEw/p5lhxWfnaSNzqNN0uSN3DJ0Te0TN88hypayad//7QL5yiZ9JmEt8NoIWBWEYScoXWkYRybDDlY2H5VF87FflTUFBcOoxuuv+cu+y8i2U4w9DzNixfBIZCDNXiCBMsV7SUvVHgbHZBctkKKotrfcUrK4v9Nt7pFD2mpm7aGyd4UyTeU7/hkSVlVwSjfYPhwGA4wHO2mzf+va9ohamtau27LlRb9XPCunC9rp5ceuHaRV8IxayCyhjMOkTP2IGmvqPCAvBFRLM6QgbWq599zUJNn0iIgWQv8ldeNaUHkwEsABYAnz8YMob2n9/k6TEAAGKMUqBZccRITkH+qxZdTYAYlr4dLluhU/TaBWmU1De+bNJ5keTDU/MsQwxRRojVGT5vHUk4kYg1gbNPxUBCMfMwl9N5VSln+9NP5yVJS776oZgCcpyjm2v6hUtzNBnMp5ruXEGip8HChxlxRvC4MbQ/64F0RsQUgxmGYQEAI4wRBgCMsYDtk3II0g49xVZ8+ZpVt1xgpVQj2qGncMWXsbRcz9BZVRkIAUOBtJ8lU333xOOOTJS4F7ntJQk1JuROYeYUvQklmk/5ixUkfASw3ar+HmFyRRJOMMQgv/be9B0eiZ1GjmpQQqBFTJ9z0MIkfnbcEIOsqKm86vDZdz32nLEDPCPaeKemKy5bQe/IqcaPftw30l7mqZq676R54mMkAfG5f51u7dBT/Jd2Z5X/uEkSAaDYXTlZBV3gbLGk7OAlw9ABCAAyjx5iSbnANYOFrQxiEEIULaHrqkGMWa28MFuQ7IWKngSAhBoLRvp4zpZIhk13ExZzc35723/69PoNV04/ACxf/VDkT0cfo6SY1ajymZKFLwDWDkbc8jTXk9XKOsGIqTVLrp24gj5K6q0/U1v+u9H3vqkO6md2KX9o0Ht+DwBa2/bzCqs6AgBgaKCMgBY1tWeiDE7QISvLrS7dFI4PW5VvwaxdlBQtf5lAEIP4QtBCVvJnnHr77qx+AxMJMSh2V04t0Vv2FT/wmwsUVj1G5E9I9DjEzkK8g4QPk0gbEH1SmQxSWFy6GiGsGYrFFLhsXkIMh+CuKFhu6NqS0ss9jhI8jdAvJFaAOmR59sESJZzVb2AiBpKpYc2STVUllw2EA4Ny50ikLxIfHpIDw5FeluU3r7lrhgYtlhYqakwz1FC0fyDUMRjqCMeGDKKrWlKyF861Mm3kMGNOgdGLRM5uECOuRAblzr6R00PhLlVLJrV4mXcpZSOKGdPRgZAxj6zT5g0Mti2vWJ83TnHVkuG9VpnGESbKiB54M0PryuUQNJbRJ285WEmUmHbkZynaA74UGSTDIYvEOxArXeCDnewFI8ks/W9TSEoPAB5HaUVhdTDaJ3A58947BPdIpE83NMzkKYBYrAD5EwCnlZrOuvUTOzKqrE4wxCC/x7fZHRLVEWLursz96cRCDHIx2Z9Ovu125DQacawo8k6EUJFUWeJZBADB6SR+BwDWBZgHIw44t5MjK+knX8p4/idoIJmiISTw5qalG/cAtPd/qmpJhJAcH2IYrv7z9zPtv4Qp5ZwfF0vLrmgL7BV5ZzgxHFciAEQzNXU9mcdN4dRQveDP2vs/FTlHODbkshcmlWg0EYwkgkvLpvKkXb74S2YR27gSSRknQtGBL666Lf2HE1ciLptXN3RCCELIIIamq6qe5HMX5B1dG/d+FOjslEPyO2+/7ausvPMb32g9cvidt9+WJPdNN389lXymee9Hr736q0Bn57XXXVd/yy2p4mkpNL66y6yi9sDfPmRWTU1/8aav37z5+uvNsVLp4rc//fTYxO9Z+6GYbR2dEBh7rscxQlKNhuPDeRtcKAZOAiNhGZvrzoiNnkhRlmkxCmMHsWL0EspM2s6MmDKSJHwYlEHQwqCOkOgJEu9AtvKpKegmahdeLcesYtMBEMcKg6H8xSBhDjlXgBa2zgurd7+TwaYTOcGdm/3plBR0ExWFK1y2AkVLWkyBQ3THFJnnRJsg2QRXHja1jmWgBS3zwjJEiWSo6e8deWXmZEjivUrL32xautHU1EOxQZPO0f5HyPCBGRrUV7RiSenlI9E+3dBVPanqik704Uj3Vf4tc+7Wt2nl9VUll/UET3cNHW/vPdTRf6Q/dLa8YNnmVV+f2sZxRcX6/lBHLCkntXgkEZRjA19afbuvaEW6cetLq2/vD3UOyp2Doc5wbGgg2D4S7QvHh8fNwN/y0d6/+/a3/atq/2nHDlkOfXXzpq7OwD+9uGOl3//NhlH/kqa33vpmQ8Od3/jGLxobj7a23l6fmY3xye8//tK//MuPntn2wN8+9M27G8yEr9+8u2Hf3uYfPbMtleq15aO9r736q9Sntv/06UCgc9x+KOaC0SHHiiZ4eoZP5HF45P08aCHLFgxJXmB4nIi9d7rgnCAUglAADJ9TQTSSJHaaRNpI9IRphGeqG6amoI+q4KJ7YbE/ngxbZnqXBkIdeh6PGJ3LAQwglu45jJS+oclVlIUQXdUSmq5Mt+T5VDGpEIPsm6pFX4hYJvzBiEUIn9vUonzctA2EUtAtPSSwUz/xUrqBZCA0s25HiC1Q9m01ST1VfRU0feZGJPGezWvuWl31xZRTajQZ2rymwV951cTTR84QlA//2hRFb/BMKDYwGO4q8y7dvOrrSsvfTPpryif0wJvXrLrlr770xOrFX1xWvnb9iq/+f3/+pL/yKq1te3qzFSj4pdW394ycDgwdPdP3Sc/I6VBs4KYrHyoIj19ow19bW3flBkmSzHrhZtKVhnvukWW5ee9HAPDsT59Oacw/euaZQGdn07li5wAgy/KOf/7nHz2zTZIkf23t5uuvN2uxNH/00aNPPCFJkvn6uLeRtR/KuDOu1eR69rIeFHGsEI9HInlU0xkHiOWghADbLdroJ0YNj+fsjWhmpcI4ziWiSQAoE1oEp+SQNXb//ps//ZMIuQvOIsRztv5ge6l3Sd6Wb1cNCR0G1pu7Ba93v2Mm/DkXYoAufFQAgETiw+H4sEF0FnOqGp8DRp+ki/tYlLgXeRylqhbnWDHnxktwdw0fy6OPGJJqSX8TWFpTiRLWTrxohuQ1H3tjzPNP8v78I1ZS9m3dtG67wrrPl2uDmXLMNp1P61Z8rW7F1zJeB1sZOzOm/olCV01R7AE41bt/adnazau+ruzbSiKTtpYRNax9+r9J+KS07O5UyUES71H3/50xtD9lYSJqWDv01IrV34XVt//+0C/cjuJoInjTlQ95z/6rEe8Zd50xS5tYoPXIkUefqE3bAaxqO3Jk8/XXn3v3MAA8+fjj5j8DgU6XS+rqDPhrV401zluOkqUfyrhzxOhjfN1TsPPSoNyZR05FjqUk/q7lioaIIpspzJqPvz7jdD41OU7D3pu2YRKXlq0903fIIeT8TZryL5IW5u3W7VUgHwGipmdaHbPEO80UZgdOv5PMZGsEAAYxhiI9Kf9kC6f9GaPzSYcYZN9ULd30u0P/18PkPNjGiMGAh8KBwill4c2+fbRVghK03NTa9fZfsVW3HOjcK8eGxv5AZkCgdiT4lH1bkVh8js5nFlrb/8/o+i2u+LI5jyTeo5/YQbQEU3XTHP+2sWCKYtO67b6i5f6yy5V9W8FgrLwfLNYyoczo+zjZ8Qb2rDTJm8QHkVAG7IVsJ5RpR55ZUfttWH37e4d31W94xHv2X/X+FuzKww9/LDG70l4xNwQZyeDMiqWTHCVLPxQz/rTm1tCzn+xhzBAATVfydwsicF4wogBGzgvbtJM7T3V+0DV43IxPS13zQojTcMjKwIqKdZqh6kS3cLrmWXt/6Ewe7x+5LwM9bCV/xBnDh4OBPc3HXs+QP0ZI0ZOD4UBfsH0o3D0od4m8YzjSk09/i/G3Qs7peDCkw+Mo9RUuV7S4hfxtgtSd37Mn9xowklbyBwDDiJ58qfnYG2PkjzGamT0u40CCDzQd+OJZmEPkqCaKoh9/Sfvkf2mf/C/9xL8BV4KEsnmxTJ7b36y020bpnJnG6T5fhFyriM4SnQXsRY7q0VJ4F1jjGOSs0Y48swIF7//ysyadI3t+LHObr/+y6a0GAKYpPqWgA4C/tlaSpMZXd134kVE/uIyuZHn0zHTsW1n7oZgbHd0wdItc7nZeGon24vyVbEK2RST8KSDRogkYRu8nP8GofB6q6HlR0FNqenX55870fWLjc1qoBM4+FO6yCJ6e/BJTDJgDw1pNd4x88iOMlqAL+YMQSCpRjPBKHKpCMg96ifdyZtW3Wjr+OCDPUiJxdtnd0/FgyEDtwqt/86d/8jrKrNR0xAyFA/nbEnLIuYREzwJ25G5j18+8ivTlaMwcETIzYmUE4D0ACAwFtMjsEGcmUxrKfPmRM3Yk+NSPH0KO6mnR+TnGPv9bG62+OLbNKKkbXb81wh35onMAeOBv//armzctqPD5V9U++fjjDffck+Gg/ugTTzz5+ONdnYH1G6585+2319Vdufn667f+7UPfvLvhgb99CADajhzZ+tBDW26+eftPn97+9NM1tbUv/cu/jB0oaz+UdOeA0eNKxCLtK0JI4GyKlsyf5Z1BfDFRLQ2PWFyNR44YpQrMr+KP03fIGqumnx04bBiaRck7nrXJ8aF8akhiBYmeBNaTuwW7AEcqINZDnBlLE4/QV/HJIrEAuIWABehrJt1vb1zxzeHKW2dDt7OVj1tRZlJwiO5Fxf7+UIfA5nwabZyzd/hUgasif6Mug8gJANHChC4wwuVk+E+kdOx2d2Yki4FzAwBokVlidABgnWAeeWgR0JPz6YeOgC9A3J8BwmCoMM2s2IgFsQwQA0YSEr05HSEQi5w1JDaAHEsnuHHbcvPNm86xpr92VbrR+xeNjf7aVQDgq6x8v2Vf01u/bflo74+e2ZZyc0s1qL/5lrorNzTv/ajlo703ff1ms8HWhx7adP31zR99JLmlLTffPNpPc0vTW2/JcuifduxoPXLY/Lh1PxRzwOgCJ4ai/TyX8zRU5JxJNQ55JFehDBLdgAWL2Gie4S8jg/tJ2TyS33hFuKempvsrNx468zubIFkwekLJ6yLLuoCxAVEA5c5dxdg+R/reJBkWQrQZny5yVp23HPJFiHi1Y/9UtOGF2XiC/Vvz3mftwqu7P9nJW3icIQQIhfOwqSJgKIBZIAYSyogyaLmpta3CQ4f14lnf1M6iWYzhRx8kPQkwnxgdAfCFgDkgGiT6IA91LpCpzFgabxjgCkAoBjBADU2E1NO1bUmSUgHoAJD+tyRJqTjyrA18lZX1lZkN/LW1Gazsq6xsuOeejI+P2w/FzAHnWtHiSti6bjTPinbelb8fDANAwIhbnqYLq9CggAyUhjlW0CdQhHsKWFy6mmFY3dAsS6c78lw+R6wAPWZ5ms6WY6UcRdPlX4gS5byYdhA4uk4hxq0HfjPjj2/hWlx6dd67dYjuZWVrE0rUSv6sI5YMTXckQ4NkH8S7INkPfDEQA0C3mAIe86vQALoQl+bKNA+/1yj74lkdkXWdrwFNQTE1RneI7kUltUktZuEfJPAOg+QzmgVJ1Yj3AtGBGDkuwmN2FRoAQGnXXCro+XLIyrqpSigRC/lzrIgQymfgEusCooKh5Ja/AVhci3rT5V8OEWS66SIMvBt472j9U847cwlJzu+oljXMUM8rKtbpRDOIkUv+gIBjRX2aPwGigyqPXgBIXAB6zEr+iFuFhngw0qcAAaILGQUFhdV+c82STedKNWS/MMKqljzTdyhft4I4F1N9FxgJyyqrfC0MCIgghM3r/No4Uw5CuRmwZmseHbLGqul2QTIMqyryAu+wCfm8AWQrByNmJX9A5Ti5AEVT8heQMRrGg1jgPMBJozVI0IxbhhnfDfkKMciyW2PF6vLPKWrUQho8a5t6LDjRSOw0EBmXbzAvULqJJgPRAKx+dzzDrkIDKfkjhOHcr4AAMZOQ5zMUhYKC4hJgdLNudFKJWqSoFDj7kY730zh1TFYpAkAmkWqK8d2AhALLFQ14zNRCX4bJUdPVWEJWtUQ0EZqdAoV5SSljjTVLNyWUiIX8eUZwCO5oIpS3L2UvZyq+bF23GzC/BrqzWH3ROZPJ7NhLZ8CDYayaboBBDCOX/BGAwNoITOnsA2N25X38xpfZ6rvNi//SbnbpHUD0cTa1iKtFA+lnTwBgEB0A4slwMNIbjPTJ0QFK6hQUn0Gw1ivaiZ4/GoaR66wOAVbU2Jm+Q4tLV2NpORJcoAwCKgYtApgHJQhEI5E2pvbbkyD16gbt0x9ZZW9AbC30t6Fy0z9I1TQAiCZDg3IHxwiKFk+oMYMYFiVP8qagzzBK3Iu8zrJoIsjkrrRobqrWLb8xX4My1Q164LdgWQymDCXKUaQXXKObtrnADHkwZGxqr1h87Sdn/tPC6Z1jpuhNwq//xzDrPXB4VyrGr1hauGbJXzilaq1tO4l2W5wo8YipJX0H0ainvWYoPOENYsSV8KDciRFjpkZPKJE85hakoKC4iHV0GDU8/pmixSz9g0RTTZfVBFn7Y2AZSA5AchDiPaBFSKSNrf32sGv15NR0VxUQPbduCjxCtaQPAUKACNEjiaBuaKHY4FC4W44NGUSPJoL+yg0zKLXSq2fO3puO2kVfSKhW8mcxf7b/cD7VdFs5U30XGKpV+RDEXkG60Nyd4E6zKM7Esbh0NctwRm4XRQCw8U518nFWbaH+l3/3WEf/YSCEAQYIae87tOuD/3lGRWzN1nHKFwHjJ/0CGAiQrqvrl3/1sqovhmIDZpnOaDKkaAndUBNqtG7FjXSNo6CgjD6KVYuu5jiBgJHLBogQVtTEmb5Dcmyo8ePnRkldGTS1c7b228eIZ7KlotiareMYfhFbQ3oFZOiGtrj0cp4TTVI3iK4TPRQbkBxFGQmi86yg+7fOzvSUuBcVuhbohmJ9mpt+9pGHb1d1C7A85J50AFQGsXIIwxwd2U6zKM7kNlULr05qcQv5c6zY2vnBZLv94MivStwLPY7ShcW1Sxd8bmFxrddRKtmLPzjyK1y4FhdcDsTKhYJHyE96ESCM2TVLrq1b8TWzolckEUxq8VBsIKHG/kvdtyV7EV3jKCgoo5+Hv/ILSTVqmZR0VE0PRvpTpE7Ch006//2hX0z6nlIrmoXTO4IaowdjZtPSjfUbHqmpvJJh2J6RUwzDbqj5r/UbHiHyiRkSWb5SiE8Q65bfmLAMOmCZPKvpwDmZqpuBqFZO18BcTgJJLZ5eBTIPmEAmE1y4dqY9GDLUdJ4Tjdx5eQFAUSftImoQHSMs8g63vdguSC5bgcA7MMJxJQymD/848sc1pI9okatX3czJR1MVva5Y8ufLytd+afUdd/7F/yy2e9MrelFQUFBGN1c0m27oFnW7k2q8vf+QjXdqmmKSOrfmCZPOi6SpFLRgljVY6ygAeCXp+fzia9D+Rzj5aN2Kr9VveOSBG1+o3/CIv/IqPfDmFGodTgSzZu9NwSG6FxXXqrpV3W7u3KYqj2o6Ekss1XQoJZENpUsrCvPG6CTeo58ZPwv0LHgwZNlUWZ99MNwU1HTrXYta+LlxnN4RudKu+yuvAgDt0/+t/unvXUhds2RT3YqvLS1bY/S9r3z41zO3r6WgoJiHYCfSaM2STc3HXudzF9TiGKFjoBUA7IIUS8qNHz/nr9zwUdu/F0u+LKlM9eiFlQkIAIAeSxUjB4CjsbhO3MtR2GLPIQCsxsO6Yah/+h/YvQwVrMEFa4zhA0bf+yQxAsYkPZDVCIn1gFA5jrz8W2fN3ptC7cKr2/sPM3xO/zgGc13DJ1Utka8RZTXxURR9CetWQWgIrzbOAhTka9D0Kuw5v+niW/Kbc3ciMM8+5Nggxrl+LyipxE0X0byMmFRjrwe1LUSzSuEHeLkeADUCAEgoI5Ee5cNvIM6BbCXGyBFgXUisoAscBQXV0TNRUbiiwFluGFruMB4ksDYb78SIKXUvQgT2Hv31ouIa2xg3YLbqFuAEUAZBj4MWAT0BWgT0GEkGUrpXUo29f+TVVm6pZbYZAwDp7bsAsci5kqi60f2+9sn/MrrfB7Aj+xKroiPZoLXvIvGecTWnmchQNhE13V95laYlrbylCDnWtW+yWvGYP0bRdHBnJ7cwijgr+RMwhg7kK42MMbRfD7wJAGAkAQB0BYgORAMtfv5Fzskum5tS2bWLvqDqVvJnGb61I29q+nuHd4UJdxqXjPMTUKNa+zmrBudFjmrgFxCdRdLlyL5kauU+KSgoLnFGN1c0RUtYGB4ZhseYAQCnrXBZ+efWLNlU4lnMjNFpAqGuC1ziE32gDJNkgF+3/XRs9Az1wOl3gJA4th9jFlgafgmo0XPfQwC+AMQK4AumsJCReI9urowmc5ieaEQHQ4e0OHt29Xfnap5WVKwDhAxi5JQ/Yk/0/AlNoLwslpYTkgCig6FBcgCUYUgOAwAog6Z/QGDwWN/IGY7h9jNLrQ2/AMgY2p8fBf3kjnNzcRbUEdAiEA9AvAv0OCiDJH4WZjilz7hq+sJiv2aoOc+eCCTUWF4SLg2EOo937xNY8QC7VAFkffaht+8673yAMDA2YGzAiEATyVFQUEa3WNEWldRqhppLSUGAGMwCEJ4TC6QFxe6FTtE7tn55YOjYBS7xetSk8z2nPjxw+h0AkGOD+46/aeOdCOHDzGIVsCWjAOhRIDpgFoQSsJWDUDyFDCf6iR2m9ZJET4CRBGUEYl0Q7wIjCcogJHth1h3iMsCxYu3CjZqhWCnphuEQ3BPoy8mu+CaJn4JkLyT7QRkBdYTETgPLmGaSpoM77byEEO5iivux25pRAACmnQxYD7x5fmdAdBI9QeRPSLiNhNuI/AmJnQaiz7JDXJZN7cKrVT1pIX8GcXnxZnjvyCs2zokQVhF/nPGN8/yrUb391XOMzoJYAmIp8F5K6BQUlNHHWdE0Q7FYXRjMG6PqLAKAXHlpoonQeZf4c3Te3v/p6HJ2eJddcJnpLTXMH2MrrWqHmJp0shcAARYAC4DFyYrgvL0XAPQYkT8hkaMQP0ti7aN0AoCkarb67rmdquUV6wTOZhCS01cQswI3fkWHgVDnsGu1cM2rTNV/xcWrEUtw+Qbusof5jS+39n5y4PQeVUswDGtOwQG2GoBYTgGQZN+0vpgWyXKCbiRBk0GTz9vb585AYmL07MNQc7IrQgklZpt2+aKBYAfHCqb8j7OVUSRY/wTOb4YQoqo5BcVnGZM4bDZXtGOBFpw7hRkgpKhx637sgmS6xNd//se8FjLp3OsoBYDA4LGOgSMu23lnqyPs4sV6j4NY+XyRZC+y+aYsgiwRPppMNPkCtXb1o/NhttYs2fRR2/9jmZy7FgZzuqFad5JUY298/I/XrLrFn1ZWXI4NvvHeEwAQjo/Y0tLtBbHrDFO+WLf0MNBk0MKjZa2npKCbBhKrx3TZXBpIUlhRse549x8JMXIRJ8asjZ/uuUB6rn4VcUfYxevUNuuPEKJTJqegoJic+5i5okHuRNYMZkeivWUFS8clddMlvlhamKJzAGg6uNMpejMOgw9yK65SPrFcz3RI9oKtcgrf3wj8ZlyHOKb67tn3r86KisIVRZJvJNKb67wcI6wDGbdoDcfwzUdf33f8zUJXhcDZB+SOcHzEKXoG5YBT9Jj+EOny9xkDnKVpnSS6kDDVZCbj0TkuXMssnhclljlWXLPk2j+d/G2uvLwIAGMM0ysalNF5O1uxWO8tNkasPqMMAPVsp6D4zGNytX7NFU3LncIMASTUyFA4MN6axZZIC4GQjoEjFd5lImc3FXRNVxiGzSj/3M2WDGDvODpKvAuIOoXvPy6dzwd7ezrWLb9Rs0whx2BW0cYxk2DEuGwFLrEgmggOyp0iay9yLRBYG8twIu/IkL+GuSPs0vEMHTJcaNXIH4vOvb09HYtLVxe6KggxLOQ/zbr1aAwO8uMF/Y+ePVFQUFAdfZIrWnvfoeFwd241kekePlHo8lkzusg7quyXIYR1osnRAfNFhyBlbf9HYdW1ib1WaiLRIHoSXLV5p5N5Ym9PwSG6/ZUbjwb24hyR4ghwVJFVLWFdq4bBrNdRhjFjGBrDcOHYUEwJI4Szpmo/yS2q0rs9Rthyb9SJnCvy/4DWbJ0P9vZ0rFm6qenAiyzmc26YMKNOIznu2CkIYekEu6haO2sl/2Qvsi+c0S9OYj1qy38HAEM+DmoEOWuyNtNPvKifePH815lgM8+66TQzb2xyzVgpp9loYs2Sv9kw2WYWSQIm2IyCIm86ekpNxJjN5aGFADQtOa6abhfdHmeZx1XmED3m5oDBjFn8Y+wlG9zHRvE4y03kOBhqfqXD1mydJ/b2dKxadLXIOyzURATQM3JqXNpwiO7ygmUVxSsLXBXmFCCArPIHQn6vj7fEKMOQHMjvN2V8N8ytf3tWeByl/sqNeu7S9QhwNBmcclXfrFPQrHkUzj2Omp7om9EvTuI9xtB+Y2j/uAclFBQUFw2jO0R37cKNBslZkAojpmf4pGbJrwhhgbfzrMieTxWHTP/ejIsAJPX4qo3bxil3ZqgkfCSfdLL4lnlIJyY2+r+u5y4IhgANh7vGtb0DQhgzGDHM+YPz7FMgx4dXr76bGe/0gYzsy+N3RFL1vLK3Z2yqJHtRrvQAAMQw9MFQxxS/eDb5r1r6Zcfap8bToU+DHp0mZ9PEsRQUny1GB4DlFevKC6otEp6oWmIgeHaCGskF/7rwIoSMRPuuqrmp2F3Jrv7uOAlGIsdBDeZLO5z9/OGTUxMXbrRIto8At08x20nmFMjxoaXla/2VV7HjegjqUYgczxed8+v/cT7/ctavuJHBnMWmqj/YPv6mCoBk8TO9QP5xJbqk7Iq6FV+biIcgCR6c2tfRA2+qf/p75fdbjL736bJIQfHZYnQAWL/8q5K9iADJQQt4QO5U9aQxGS8hjFH6BYiMRHv/fPUdZjkKZCsf91SbBD8+99fU054wvhvmrXaYriYuKKwmOeIOEKBIfLg/2D7pB+LCKZDjg4tLL9+85i7zXX79P1pvqkj4COix6dK5rZz73P+eq/RwE99UXbHk2nMJGLLZjIgx7qZK1ZLRREjVErGkrGnJsVOQ1KKSozAlf7Zm6ziWqkQXJLrO1YQbMzvm3ZJz2WmIAQSA6MbQfu3QU+e53FT0U81ABziXTvGC7syf2Lkn0PqXTs4lHzQDAcb+PM3HZrQTMvpHlkH1C5sRi73SuXdHeyMZk5WyZ6R6M/MrZAx6/lYnOOg5IZMsCxEZ/ZqpKTh3SxcOOmamci20FBR5YnSOFdevuJFhOAJG1hRaGKGYEg7Hh3xTKs9lEGM43POlc3Q+erulV4/DtWoI4gFI9jLlX0pnCNDC5366BICAecY5dr24SOg8bVNVbOSQP0J4QO5Q9AQAsBYpBHIjGB1Ip3MAAM45DqkbKgnuH5Ute74ZYp2j0k6V1DOnYMzKjqRqfuPL880bLisWl67+/PKv5iq0CgCR+HDfyBli6GM3XqZjY1yJDMmBnuGTg6HOhBoDAMM4zzpybGhBwfIbP39BFUFu7f+2tpSQkX0QDwAQEjuNCtacH1FaDiQBegz0OMR7INEHyQEAYmbYvaCHRNdos0QvJPpACQLRSbwjSzMjCWoEEj2Q6AM1BETP0lv8LBAdtBjEuyHeDXociE4SXZnNYqeB6KCGINEHiV7QYmAkszQze1OGRpvpcdBjZIyfP4mdBiCQ7IdEH8R7QE+AHgNlIGNzYOaPguQgJHog3g3EAC0MymDmViPZC4SMSiPRC0QDZTAzuEOTQRkEIJDog0QPJPsBCCiDmRtcdQSUQSDaud76gRAwJZkOZQC0MBjKBTN14YRSUGThr+9///tT/rDIO8sLlg7KgYQSyaEpgk1wfumyO1IJ3pNa7GT3n0TOYeOdNsEJBGLJkBwbiCqypisiP+qenVBj0UToxnX/fWl55hOMpeXIVmYMHwAjhzuxFkb2Eu6KH5wv5sY69Y5GxLnB0ECPgiqDoYAWHv3Zp9EVu+J+duX9F83kYXZRsV+ODcmxweyLOyGqngwnRlYtujpVyFyODR3r3mfjnTbeKfJOAIglZTk2GFfCihY3E6QoWmIk0le38msb/Vsy51QoZIrrjIGWnLXMiQpGEpJ9rP9BZB8lZiQW6md3IcQDINAioIVH1+J4R3rYIbP4Fm71o/NcO0+H11lqF92BoaM5cs6gcHwwqcYiiaDHWZq+N9V0pXv4JMcKihpPqLGkGiNghOPDLMPxrKgb2kik74olf3HNqltZ5sLdGMMz5ZtI6EjOwEtigBaCZA9T+RV2xf0XfLBondH1BlGGkEnYyhCJnRnd7GZomko/GEmzGUn2Q7wD9EiWiVYGwYgjQwFNJsogxE5n+VUSFZR+IBoykqBFxmlmqEiPgxYmyV648Nk4z6/qMBhJZCigDBGlH+LtY0sNgR4DZRARDYwEqMMTaJYEdYQkeyDRmW1JCYE6gowkEA2SfSTRnT1WUB0BLYyMBBAdlIFxmulxIBoo/STeAepwtikYBD2GjMRoaYPYGdDCfN0/UtKisDJwEjJda46qJY517TvS8UGORY04RPeaJZtShbR//t4Tiprw2IsF3oERTqqxcGJkJNLrdZYymE2qsVgyvKz8c9esukXg7DkVEfmE1rbdokwILr2a9Y8GPpF4j9a63eh7HzgvYuwAQNSRjL0z47uBqW64KFTDsTjete9wxweqlsy+wBPjc0uvW1y6mmNHk80999sHBNbmcZSIvNOcgkhiJBgdcDuKdEOLJ8NF7spram8tdudO2qNGtLbt57PnZrOcs/6to6Xq1Ije957e/iqRTwBjR5wXAIgWTtdycOFaZlnDOCbl+YpgtO/AqT392V3hiKmLf23dAwWu0acrMHjsvSOvDId7HILbIXowwrqhRhJBRUtI9sJoIlQoVdQt/1pqE5YV+pld2skXc7qdc062ZitTeg1wTlAjxvB+Y/iA0fv+uAkYKOYzhK98RIVAMbOMnuL1wNDxrqHj0UQwGM0eRVPiXgQAA3JHX7CDEINjBQDQdE03VJ4VAcDtKPZXblhatkayTygBGZFP6H3vk+EDJNaTdalKMXrWJQ9Ly5GtHBVcMbrwXeQ403doIHQ2mgj1h7L7JHocpTwrhuKDvcOnDWJoupI+BQxmXTbv4tIr/JUbrLj8AhNoj9H7vjF8IKePNOdEtvJc7tO4cC2wTlywBpddfZHupTJ4/UzfoWCkbyTal7VWvUN0OwRPKD44JHcxmGUwG0uG42n2LY+jeEHBcn/lBmsuT99X6X3vkeGDZlxZrq0VZXHK6BSU0fMGOTbY2pnzQTRP2QXOPkEWoZgCmo+9nuutYnelwNoBYKIsQjEz8i92V1oYpSgoKCjmBaNTUFBQUFBQzDQwFQEFBQUFBQVldAoKCgoKCgrK6BQUFBQUFBSU0SkoKCgoKCgoo1NQUFBQUFBGp6CgoKCgoKCMTkFBcWnj6Sf+495b/pnKgYKCMjoFBQUFBQUFZXQKCgoKCgrK6BQUFBQUFBSU0SkoKCgoKCgoo1NQUFBQUFBQRqegoKCgoKCMTkFBQUFBQUEZnYKCgoKCgoIy+tzi2W3bdjc2Tr/NLN/SDGHnjh2BQODSmLUZQiAQMEeXZXl+3iEFBQVl9IuYkpdVLU5dLc3Nk/z49tcad0+/TV6/0TjDBQKBmWCLttbWp37ww6d+8MOLYdJndUbSJf+1r9zQ0tzSFQhIkpQhvT1NTdO/w/Tn+Ysbv/Dstm3pr2c83nfcetsdt96WsSdbVrV4544ddF2joKCMfrHiu9977Oev/PLnr/yyxu+/5CfsOw8/8p2HH8l7tzV+/5b6+jsb7qI/iVx4rbFRluUHHtz6wIMPZrx141dueGnHzvw+zy5Jenbb9vSNwv333tfW2mrxwZd37Ez9l4KC4jMI9hL4Dn6/f31dXbou9fKOna2trZIk3VS/ZdPmzRmv+3y+737vsZSataepydSoHnhwa649QarNnQ13mWNlHUWW5Zd27GhpbvH5fDfVbzFb7m5sfKdpjyzLN9Vv2VJfP7bznTt2vNO0R5KkDEJtaW5+rXF3IBBYX7f+zoYGSZJ2NzZ2BQKm0lbh822pr5dl2ezf/HhqxK5AYNPmzU/+4IcPPLi1wud7rbGxxu8PBALvNO0xezO/UbooKnwVgUBgPUBLc3NLc/OmzZtfa9zd2tq6vm59isPSZfitB7f6fD7zPl/asVOW5Ws3b9pSXz9Wf31px85AIODz+e5suMuU8GSHyOOMZJVY1s5lWfb7/d96cKskSS3NzS3NLQBgzkj6PJqadFcg8Oy2bevr6lIdZn2uxn0YUs/zo9977I5bb2trbU09wCapv/6bNzMknHpazBvb3djY1tr6WdjdUlBQXII6emtrq8kQ5unma42NLsn1wINbzRXQtFW2tbZ+7Ss37GlqWl+3fixr+ny+lubmDBtmOie907Tnzoa7AoHA/ffeZx42Zx3lqR/88Nlt22+q37Lu3CimKfum+i13Ntz1nYcfSdlRUzAbXLt5050Ndz2ZZvTe09R0x623rfTXPPDg1tcad99/731Z7+2OW297rXH3Aw9urfHX3HHrbeZtvNa4+9lt2827CgQCXYGA+c/uQJckSc9u2/7FjV/Y19zi9/t3NzamNP6UrbilufnZbdvvuPU2l+QyXzcNuabZ2dRTZVk2/w4EAnfcepv5YliWM8impbn5xq/cYLKaqcuadzipIfI7I1kllo5nt227/9771tWtf+DBrc3NzV/c+AXrU/OsyPpcjfswZPRg2k5Sr/zDT35sSjuHCWF3jd9vbgpfomo6BcVnE+RixvZnnlm6qCp1Ne/dm3qr6e23v3nPvUsXVW1/5hlCiPl3KBRK//jSRVXXXLXR/PvJJ36Q0UOqzZrLVpt/tx45snRR1ZNP/MB6lFQnoVAovf3tt9yaGi69wTfvuTe9/9tvuZUQ8tUvf+WrX/5K+tfs7Ow0O1m6qCo1+tJFVU1vv5261b976OFUm6a33za/b/PevanbMEdM9fzVL38l1VtqaHO4xl/9KtXefN0UUXqfjb/6lXnP37zn3gzZpvpPSY8Qsuay1ebQkxoijzOSS2LWM2L2b97z2CckXXQWz9W4D0NqCHPq0+/NfD3VW2qWU4Oane948UVCyDVXbUyX+ZzgJ99/456bXyAUFBSzi0vB6v7zV36Zbjvd3dj41A9+WOP3+9P0mz1NTevr6saaKyvOGXVNZTErUnqS+Udra2uuUR54cKupk93V0PDd7z1mnnru3LEjl7OS2aDGX5MxUOqtZVWLU690BQIZJmizTbr6nu6snm6tTX1BUwIpOWS135owx0pvYH7xtasvT7+lLfX1o5ber7Q+98LzGcbettbW9Kmp8fvTdeIJDpH3GcklsVwz0mp5ep0VY5+rcR+GdKu7eVc31W/JeOu733ustbV1d2PjugtNTaazpHk6UOP372lq2t3YmMuqT0FBcamCvcS+TyAQ+M7Dj2zavPm5F57f09SUWj0lSZqC7TQrJEnKNUqN3//zV375dw8/snPHjpX+GpNasvpSZSXU9DuUJMnszeJOXJI0dkMzczDv9mT7mYzX/+EnP67wVZiG/Xc//MDiC1rvISyGyNeMjCuxrLdnfc+Tkp7Fw5DCTfVbKny+L278wrPbtv/8lcz7fO6F5++49bbvPPyIz+dL7Rte3rHT5/OZhybmU/RO0x7K6BQUnzVcavHopkpnKn/pEUSbNm9ua22dbHibidQJvel4fO3mTblGkWU5RcPmuaa5zubaTNT4/ZIkpXpId2zetHlzS3NzLt9ms0NTC5+1Q9NrN28ytcyxd/LAgw/e1dAQCAQyJGx+C7ONLMumN9xkh8jjjIwrMXPK9jTtSZ8R866sMe5+cdyHIcNAsqW+3vQOGbszeO6F581NTOomA4FAKuLjjd+8KUmS+aIpzLbJ2xgoKCiojj43SPcVOtl+xufz7dyxo7m52Vzfw3IYzpkr77j1tvV1dV2BwHe/95g1tWSsoXfcetumzZte2rHTjPIy19yxo9xx6211dXXmSmr6KH33e4/df+995se7Al2yLD/3wvPpnX/rwa1P/eCH9997n8/nS7fufuvBraZz3J0Nd4XlcHNz889f+aUkSevr1rc0N5sq2ne/99hdDQ07d+y4/977avw1Lc0t127edFdDwwzJeUt9/Us7dj71gx92B7pckuu1xt3PvfB8a2vra42719et393YWHNh0IH5LUyj96bNm/Y07anx+7/7vccmO8RYt+0pz4jP5xtXYt/93mPfefgRs8FLO3aaxwrWkllfV9fS3PzUD364wFdhIf9xH4Z03Nlw1+7Gxqxqus/n+/krvzRdDs2dis/nS3+eN23evLuxcU9Tk9/vf+oHP1xfV2dt7KGgoLg0gAghF+/dm47cGWurGZ5khgC1NDeb5mtTi9rT1NQVCNT4/ebyl/6u2ZWpNGeog5IkuSTptcZGM2AspZONHSUQCOxpagrL8k319akz79SLJuGNNeGaqljFObVs7A1X+Hzr6+pSHZrBaalvkUpvkgqdamttlWU5Ra6yLLe1tlb4fKlgs9QQ6S3Tv0W6KNLbmxphW2urS5Lq6urMF81X0oWTobymvsWmzZvNPic7RH5nZKzExj5XqSlLj37M+oSkhg7L8qbNm01fgVzPlfXDkNF4d2Ojz+dbX1dnvp5xq+eO/P0Z0kvNuPnizh07sopxRvH0E/9xrLXnhV330BWWgoIyOgUFxUUMyugUFHMCWqmFgoKCgoKCMjoFBQUFBQUFZXQKCgoKCgoKyugUFBQUFBQUlNEpKCgoKCgoo1NQUFBQUFBQRqegoKCgoKCgjE5BQUFBQUFBGZ2CgoKCgoIyOgUFBQUFBQVldAoKCgoKCoqZBEtFQEFBkRcMDkY/+rAdAAaCGuHE1//9CAAUFjmu2lhFhUNBQRmdgoLiokE8pr7+7+cqArOi+ffX/oufSoaCYnZAre4UFBT5QeVCj93OZby4YmUJlQwFBWV0CgqKiwxr1lak/9Nu51asLKZioaCgjE5BQXGRYfmF/E0VdAoKyugUFBQXJTI08uVUQaegoIxOQUFxMaKoyFFU5Ej9cyVldAoKyugUFBQXKdasXZBi98qFHioQCgrK6BQUFBclUpZ26hNHQUEZnYKC4iJGyhuOHqJTUFBGp6CguIhht3OmsT0jko2CgmKmQXPGUVBQ5BnmUfrYbDMUFBSU0SkoKC4mrFhZEo+pVA4UFJTRKSgoLnZGL6YKOgXF7AMRQqgUKCgoKCgoLnZQzzgKCgoKCgrK6BQUFBQUFBSU0SkoKCgoKCgoo1NQUFBQUFCcR3Zf9+YjQ8OyAgA9Q/GsDcoLbQBQViguKnMUSjyV49TQO5w42iGf7Y3KUTWa0FOvcyyy8SwAsAxiMBr7wUKJ5zmmQOLLC8VFZQ4qyakhoegHTwbP9kaDEWUkfEG0lcfBGQQwAo7NsuvlOVwoCU47W14gLipz8BzdGVNQUMw9xvd1H5KVI2dCJzrDuRo47ezaam91pYtKc1Jc8usPu073RJwiy7E4mtBUbXQiWAYZBrl8meeaK0pEnonEtOOB8JEzIUU1snbFc7h2sXvVYjfllUnh3YP9fzw6zLFY4DBGKJrQkuckjBEIPHPLny8sKxAV1TjbG91/YiQS03J1VV3pWlvtddppLCgFBcX8ZnQTv9vfd6orghHK1aC80Hbtn5VSUpkgnb/81pl4UrcJbFLRw3HVwTOSjWMYpOsknNAiSe2GKxdcscyb+si+tqH9x0ay6oupfdW1f1ZG7SUTxK8/7DrWIbudPABomjESURwC4xRYnsMGIdGEHk5oa5d7r1tXnvpI077ezv5Yrg55Dtf5C819bXtvtKV16GRXGCNkEFLkFq65omTlQomKnYKCYkbBfP/735/I8vfpyaDIYobJyeiRuNY1EFuywGnRhsLEz/eclaOayDOEQCiqeGxciUeoKndWFNsLJN4wCBhwLBDesKoo9ZFfvHOWZzCbm9EV1TjdHfE4OY+Tkvo4aG4d+tOxYcnOEQKEgBzTnCLjdfBLK5y+EkehW8AAhk5O90YvW+IWecb81IefDqiqgXH2x1s3yNm+GAD0jSR2v9dJdFIsCYUu3imyimJ8cjIYTWjLKqgdi4KCYgYxvkrdO5xobQ+57WyJV1i2wGnRckhWfrO3O5dxmCJFJ33DCZ7FhkEMg2CEGIx4jvE4eZFnnDbOaeMYBqnaBWLUdIIAilw8g5EFqb/zx74hWaFCtn6e//NPvU6RNeVvGMQghGewTWBcDs6cApedwwjxDA5Gzh+uBwZihk6w5X71wPGRdw/0F9j5QklYUSmtWuzxV7nLvKLXwX18dJgKn4KCYo4ZPaHoPIMxQjaeKZQEX7EdAWCEsl7DYUrqVghGlA8ODZjauXlNbrYwqq5wQm75Y4R+s7ebkroFfv1hwCGwKfkTAjCxWTCPnFwiizFCKOcUSHaOYRHHYrvIYowEjhF4BiHEYGq7oqCgmGtGz4CvyGYXWYQAZ7sYhEbCanPrEJVsVrx3cAABEACdEPOabA+SnSsvEAGyyx8j0HXywcF+uqnKioMnR0bCCsIoJX+dEAKTmAWM0cJim4X8MUIsgw2aXJmCgmL+M7pJ6gYhCEHWi8FwKhC28I3/zKJ3OHH4TJDB6Ly91yBTkr+dY1Eu+WMEwQjdVGXH+58M8CyTLv8pTIHXxXudPIGc8mcwiiZ13aCkTkFBMe8Z3S4yNp4hABijrBfH4pa2IYton88m3t7Xw7KMTiD9mgIYBi0qdRgkp/xZBp3qipztjVKZp+Pdg/3RhG4AZEzBFNTpRaUOhHLK33QO7c6Ry4GCgoJiHjE6AAgM1nSCIedpLhjw/icDVL4ptPdGO/pjGAG5EFPrzePgeBYDyXmaKzD4g08GqO09hYSi72sdYjAiYzGF55/DZQU23SC55M8xuD+YlGmNcAoKivnP6IDA0Ilm5La9M2gwmDxyJkRFbOK9g/0MxoYBGdeU4RAYC/kjDAB0U3Ueza1Dqk4IgXxNQblXRAihHLZ3hIBn8emeqKZT2zsFBcU8Z3QAXTcSqg6AcoHj8IETI1RNNBX0s30xQJDukDU1z7jzeyoEqmYYJOcEsAwO9Md6qO0XIKHoLa1DCKGx8tenaihhGCTZWUUnueSPMTIM0juSoPKnoKCY74wOAHJMVXUDY8h6MRgQIOqiZSroCKEMh6wpe8alYOiGouaUP8YgCswHVE0HONohK5phEJLfKeAZrOkGoJzyF3jcO5JQVJ1OAQUFxXxn9GKPINlZq9NcDp/pjnzG1cRgRGnvixIgBslyTadnQiCW1DQ952kui5GiGvuPj3zmd1QDBCCr/I1JRq9lToFBFNWwSA9g45kQdRGloKCY/4wOAOtrCxOqgXLDJrAtRz7Tavp7BwcAAEiOa3qIxFVzW5BL/iLPtJ2VP8txBwdPjgQjSk75T28WiEEUVdeNnLZ3jsWY5kWmoKC4KBi9vNBW5BZ0g+RKuMExKJrQP7Ph6cGIcvDkCBAgOTDN/g0C/iq3ohm55M9gxOLP9NmHuaMiuTHN/hNJPaEYuRPOgF1gLRLyU1BQUMwXRgeANcs9CUW3MDw6BLalbeiz6SI3qqDPJFYtdhuEoNyRhCLHdA/GP5tnH6MK+kwiqRq6YVhEsrEY2QQ2VfGFgoKCYv4y+qiarluoicBhfPizF8k2qqDPMHgOr6n2JlTdQk10iZ/Rs4+J7Kimz7XragrjSSv5O0XG7eBoziUKCor5zugAcPXlxdGkjnLr6Q4be+hk8LO2os2Cgm6idrGbwYhATj2d43Dss3f2MREFvaxALCsQpzmQ084uKncommHxE3DZuP0nRuiKQ0FBMd8Z3VzRVM3ImfAEgWTnPlOnubOjoKdwRbUnktAs5O+ycwdPBD9TZx8T2VGt9xfmZay11d5w3Er+dpE52xulZfEoKCjmC6NbOBEtKXeEoqpVGI/A9A5dcJp78OTIrz/s+izTyRXLvPkarrrSxTCI5I4kZBlEAD47Zx/tvdFxFXSPk8/XFDjt7JIKZ0KximSTbNxnPO6DgoJivjC6ohr9w/GewfiIrGh6pqqnGSQcVxOK1WmiZOcOHA+m6PzNvd2nAuFLktQTin60QwYAG8cUOvlSSSh08k6BRRfGMV2+zJPHQddWeyNx1eo03cYc65BTanowojS3Dr17sN+81UtuR9Vv/sGzWLKxXgfndXAu8YIpyLv8Fc3q+Rd5HAwrNIsfBQXFDIGdYDuDkIFgsnc4QQgwDMoa86OohhxTnbacfdoEZkhWzvZGRyLKm3u7Cx08xuh0V/jXH3b95caKS0msza1DCUU3iaS80O60sUlV7x1OhCLqQCRpCq+qzFFV5sjjoByHgxHV7eDZHAHQGJCNZ5pbh66+vPjtfT1/PDZs4xiWQR+rxhuo66+uWzz9E+X5o6C390bNHZXbznqdvMfF6wYZCCZscWYoqugGEXmmLk8m95SavmKhdLYnavET8Lr49z8ZuOXPFyYUPatHXq7XKSgoKPKmoyc1YzCs9IeToYTaLydDMS0LpxNQFCOWsIpk8zq5dw/2v7m3u9wjLlngXFbhrCiwnemKXEqauplFnMHIxjGSgy/2Ch4XX1Jg8zh5lkE2bnS9vuaKkrwPHUtqcszq7MNl4850R97c2/3JiWChg7fzDM9gl8jaOeb/NrXPdKDX7CvoLpHlWewrsVcU2ytLHcVuESEwp+CKZZ68c+eqxe6g5dkTz2IM6ERn+OW3ziQUfeyT8/JbZ+iqREFBMYM6elTRFnkdN68rN3U406ScNWE4ISQUUyVHzm55jB0CW+YRfcX2BcV2BCAKTFI1TneF397Xc9268ktGQecvTCqS0poxQgDgcfL5VdBH5W9AOKa6HZzA5dyrFXvE9t6IS2QxRjaeYTBKqnpSNTiM3js4cAkYS1IKOgCYNnZT5ggAp0klwyeOEIjFNVUjhkFUbYr+gzyHgxHFbee8Ls5CTd93dHgopPxs9/EvXF6ycqHL4+SDEeXgyeDHbUNJWtmIgoJiRhl9fU1hOteKPHPFMu/KhVJKE0rnLZHDwYjqdfG5eitw8ZG4xjCjB5osxqY62zt8KVSpMhX0cZtdc0XxDN2AoZPhsLKg0JargV1gPE4+HFWdNrbUK7Isisa1nqEEAFwaOvrYx3Isrljm9TgveERjCa29N6rqBoMRRmjKKfcTih6Kqh4nh3H2sw+WATvPuB0cJvDRoYF39/cRAAQgcNjJs5pOS6pTUFDMGKPnOu4VeSarSl3g5HtGEt7cKxpmkMfJRROXZkEqU0G3bpNHF+uxQACqaiQV3SbkNCkXuvhYQnOIbJFbYFkssOqQrExZMZ23CroFxvrERRN6UhtlU4xBZKdukNc0Q46pBbk3tV4nJ8fUeELzODgEoBvETCdASw9TTBNtra1P/uCH5t+SJF27edOW+noA2N3Y+Frj7n/4yY99Pl+q8VM/+CEAfPd7j6Ve2dPU9NKOnXc23LVp82YqzEtWR58UGAaVeMVgVC2ShNwrGh8YjOs6YS6tIhZzrqCbcNrY4bBSKdpzNXCIrMfBEwBz13UpZR2fiII+FiMx1V/lXrHQZZ6s9w4nPvikX5nqFscwjGBE9Tp5JvemtkgSulWjwMUXe0QAMAgZDCb7aDF1iulBluWW5ub1dXXr69bvadrznYcfkWX5roaGrkCgpbn5/nvv+/krv5QkyWzc2tqa8fGXduxsaW4GAMroFylmZCkv94qxpG4QkivbBssgr5Nr74teYtKciIJu6ugzehs2nrHxTDypWyQ8KXIL8iWXwm+CCnoGRJ657dpFf7mxYuVCybRI1fkLv7Vl+bIK19RugxBgMQpGVAv5e5ycwDMsgyUH53HxHid/8e5ue4cT4wZAHu2Q3z3Yf6mGSs43rK9b/8CDD/78lV8CwDtNe9I1+PvvvS/XpwKBgLkbaGluDgQCVIyU0c+r6QsKbcGoijHKdXldfDCqXkp+QBNU0GcHvmL7UFixkL/AY4eNGQpfUinMpqag/+XGirHnSiLP3PLnC6cczmcXmGhC0w1iMQVlXjGmXPRnT73DiX97+8zu9zpzZUhMKPrzr598/YOuQydGDp0Yef2DrudfP5mY3hc3+xw3J+NEmr17sP/510/+r//b+rPdx3/9YVdCuXROA2VZBoB0M/sDD25taW7+zsOPZG3/8o6dPp/vzoa7AOC1xkbKjpTRz6PYLUTjmq4Ti0geX5EtMBD7rCnoswOBw3aBkS0jqcoLbD1DcV0nl4b8p6agg2WllumEt5UViIMhxUL+bgdnEAjHtYl/wflJ5zaWKbDzb+7tzsqdL791JpnUJRvLM5hnsGRjY3FtOkF6ZoxfLK41tfRasLXZLBrTct0YAOz6Xcef2oYNlXjtHIfQ6a7wz3Yfn45/aHPr0MtvnTGv2UwCnYGW5pZnt237b7feJkmSydDnGP3B9XV1uxsbd2cj7N2NjZs2b960ebMkSa817qbsSBk9c0XrDyUtdBSXnYsruhy7FJx7gxGlZZ5lrfcV2/uDVvLnWOyycz2Xytnt1BT0mUOxW4glNU23UtNLvWLX4IRSyP36w65/fXsuSSIXnTt4pqxALC0QS93CWO482iHLEZVnMMdit4OT7JyZkiEUVqdmfjd5Oh7XXSLrdXC5SD3VTLKxRc7su43m1qGO3qhDYDAGBiOMkY1jBBZPLTeGaQ/4wycDsagWj2mxqLZnX+9cZRfoCgT2NO0JBALfenBrjd+f/tZzLzzv8/m+8/AjbRceou9ubJRl+ab6LQCwafNm0wJPCZIy+nm4HVw4plq775Z4xEvDG+i9gwPzzV4ncLhQ4kcs7epFktAfTOj6bJ995F1WRzvkeajCLl3g7AtaPd5mdrlxN7W//rDr2Fm52ClYqJtzReeLy53Vla5lFa5FJY4Sl/Dm3u50qu4dTggcRggK3XxFsb2ixFYoCQiByOMpRKumeHpBobhiobS0wlleII4ldbNZIqFXldpXLnIvq3BVFtrGiu5Yh+wUWAajAhdfUWwr9ggci3kGBwZiU3g+m1uHojEtbX8ALpEdHEm+OxcbzZvqt5gecC/v2JnxliRJz73wvCRJd9x6m2mWN2Eq5Td+5YZlVYtNDZ6q6ZTRx5AKi/tGEiQ3HCLDc4yqX9yn6bNcZm0yZhJbf9BK/hhDiUfond1N1a8/7MqaMW06eHtf7zyUv2TndJ3Ek5rFFJQXimf7YuPSeYlb8Di5Mrc4T0j9aIfMM9jGM04byzKYYZDLztlFxiWyY6mawcjt4AvcQqFblBwcRmjKT04srhVK/MJSR4EklBTYygtsBU7ureae9EHNZkWS4Cuxe118aaGtxCuamnp6s8BADCEQeaakwFZWaCsvsLkdHACI7FRyY3zcNmTnGXN/UOwRzEgHh8B8eio4N8+eJN3ZcFcgEBhrYK/x+5974XlZllNqeltra0tz8z/85Mcn28+cbD+z/9AnALCnqSmd8ikoowMQMhxOxpM6IZDrKi8QL/ZA6Fmrgz5ZMBg4BveNJC3k73HwckwzjFk6Tf/1h12nu8LmSWq+SH0iddDnChVFtu6hhIX8OQbzLB4IJS3ovLxAXFrhrKlyL6twVnht84TUs/EyytESYYzQaNq+qbv0JxTdxjEMQiyDzcEYBjEYcQxOf5bMZhyLzLEQAMdgjJDIMunNzI0FxsghsgLHOGwsO41wA00nAOCwsWUFtoVljvJCm11kACASn7OIkjsbGgDgZ9u2j31rfV3dP/zkx6l/vrRjpyRJqYg1829Zlvc0NVGOvLjAzvQAuk56hhMWGU9ZFntc3FDwYmX1eaugm+AwGpKTBVLO2GgAKPYInf2z4aJo0rlk4xACOaa9/NaZv75+8fSTq8/PHVU8qbMs4lmkGySS0Bwiay1/p5gph/beaFt7qMDJF0q8x8ljjDwuXpKVeFL/j4+6Zy5JEcWUwbPY6eB4FoMduLlI81Dh8z3w4Nb1dXUmMT/w4FYACAQC6+vqHnjwgpZb6utlWTZj01f6a9bVrU/FqQPAAw9urfHXpL9CQRkdAIAYZDisFLsFu5hz4S52C3L0Yo2NnrcKekprUlR9SE4Wu3Mm/HE7uKCdC4WTUx6kvTfa0jp0siuMESqQ+PX+wrF88+sPu850hSsKbQuK7BhB30iioz82fVKfnwp6NK6d7olomsGxGBlkIJi0l+b8jiyDnHZWjmQ5TedGN2IoQzlmMAKKeYm5nRmfz/fAgw+mEfODqddNmk/HXQ0NGX+kUOP3Z7jUUVBGH4UBRn8ouUiw517RcKHE6+TiC6Nq743OiIKeV0kYOhkKKRYpzACgyC1E4lMMOjjaIe9+r9MtcoUOHgAMlTS19J7tjaUXfWluHToVCHvsXFmBzcz5TwAiMW1ATja3Dn1xGmXo5ueOSo6pim4YBmAMPIN5npFjmsuiyqqTH5YVRGmagoJiOhvKWRjDZeMqim3hmGrhH+R1cvGkPgt5rX/9YVceOXj6EVMFEh9XdU0zzJyjmk7iSU3RDTavGcTkmGrtomjjsUNkLSq2WeCNP3QV2HmWQQyDWAZhDJKNbW0PpTufJxSdZZCZLs0EgxDGaJpf892D/fNNQTcIkeOa08ldeVnxli9VXnlZcVGBOCgnreWPEXhdPMazZKedSJY3CgoKqqNnx9pq72vvB5y5dRSMkcvGHj4TWrt8Bk8HTT+jw2eCADD9Y8gppzRJx19fv/jlt870BhMYI8nBhWNq30girup/dd3iPH7xWFLTCVE1w+Jsr8QjhiafG6C9NwoEEAKHyHpcHEYoEteCEcUhMMc65JmoGJu+S5hvOQAAgGXw1zZWrFw4egBp5pRt742+3dITiqqmN3V2M4nEh2Zld2IGnuk6ub6unB7GU1BQHX3ScNrZVUvcwahqEMh1eZz88c5wZMaSjZt07rFzhQ4+L97CeUlpIvLMX1+/WBCYzsHY6e5Iz3Aiquh/dd3iKecfzYWrLy8ekBUL+fMc1g1ydpJ7lPbeKM9ihMDr4ssLbQuK7IVugWMwz+CZLo87r5L0pW/RUnSeQlWZ479e7ZPjmqYTiykodAsWu9480rmNZTx2zjrnGgUFBWX0nFi12B2Oa7phYXokTpHdf2JGlphUFNDiBY6qMoevYLohQHlMaWKSut3GRpO6qZ3ni87TQ9LKC20OkY1ZxkYXuvjmyWu9CAFCiGORTWB5DtsFZsrnwRYMnfHW/FTQASDX3JV4xeWVrpGIYiF/l431OvmZ29Sm0sKUeISyArHUI1BSp6CgjD4V8BxeXumyTmEm2dmO3mjeV7S39/WYOToWlTrKi+y+Uoev2F4iZea3mmSf+UxpYpK6r9SeFzrXdWMwlBwYSYzIyfRA8zXLPUOylfxZBvEMPtEZnqvHsbl1KCvBHDw5krHVeHtf70VXVGPVYnc0qVuH/he7hRna1AYjyr+9fcbGMRVFtupKaWmFa3G5k5L6JQwzb8zsZ4lpaW7euWPHxZ6dJhAIPLttG2X0cVY03SC6TiwSbhS5heZ86169wwnJxvIs5llsprlgWcxilDW/1UQwExFT0yz2dZ7ODTIQSp7ujhwPhNt7oqGomq6m+0rsMcuEPx4Ht+/osDJ3NfFe/0Om6+LBkyNv7u3OIKeLkYR4Dq9bWTASUS3kL/JMoD/WMxTP++jBiIoBCSyWHDzPYYyR084KHJZs7Ccng5T/LhnIsvzstm03fuWG1xp3tzQ333HrbXfcetusjb67sfHJH/zQ7/fPZix7IBDIezKcrkDg2WzJeeY52NkcjOfw5cs8h04GC6WcBcJFDncPJXqG4uWFtvkpsoSiz+cYdN0gQ2FFO6cI8gwW0zzY11Z7//2DgK8op2wRAjvPzLSLogXcNs7kb9Np6+DJkaaWXteF6VkmYiARecbj5Ig2v0Iiqytd+0+MqJpVLIPXyR04Hiy/0gYUFJPHHbfe5vf73/jNm+Y/H3jwwdksdv5a4+5NmzeNjX2f4UEbW5pbUjnvPstgZ3m80RVNJ1zuFa1Q4i1WtN7hRN69xiaF5taheZtzNKHpTgd747oy0zkroehHO+QPPhlIZc532tmFZY5QWLGIjZbs7PEOedViN8/NQdIrhMAszWn+s6mlV7KxSlrm//beaOqshGWQmctTN4h+oTX7unVln5wMxrV5l7lobbX3wPGREk/OhD82nukPJmdCTae45PHstm1hWU7P8AppJdJbmptfa9wdCASu3bxpS329qUbvbmz0+XyBQOC1xt1mffQav98sxZbKPLO7sTE9TWyu3nY3NnYFAi3N8Oy2bemJbkzLwe7Gxnea9vh8vpvqt5iUHwgEXmtsXF9X91rjblmWzX4yOr+z4a6xVN3S3PzSjp0A8MCDW2VZbmlu6QoEnt22bX1dXYXP91pjY43f/1rj7gce3Frh86XGNb9a6usEAoF3mvb4/f6/brjLFJEsyy/t2NHS3OL3+1f6ay7GB2AOluw6f+Fw2MrpmmNxOKa+1dIz9qD01x92zW0cbcohS2Cxx84VODivg3MKbIYv2FwFBa1a7Lnva8tSvtYiz1yxzHvPjUtLvWK6/CMJzUL+CCG7wO4/PmdmbZ7DFV7bb/b2NO3rLfUIGeqsGWKAEBQ4uAVecWmZY0mpY4FHdInnZ8Hj5OdtXFZ1pctp5xSNWMd9vP/JAFBQTBJ7mvbkUlX3NDXdf+99dzbc9fNXfnm0tS1lin+tcff9994ny/LPX/nltZs33XHrbaZOn54Q/mfbtmdY0bP25vf7XZKUNT/dHbfedrS17eev/PLOhrvuv/c+00huWrZfa9z93e89dmfDXd95+BGzhGuq8+deeP7Zbdsz6roGAoE7br3tu9977LvfewwAKnw+n8/nkiSTzs0+n9223STpttZWSZJ+/sov19WtT5Wbe61x93cefsTv9z/3wvOBQOA7Dz+SukkAMOXw1A9+SBl9QlhU5nDZuaRqWJcP6eiL/Wz38bf39Zhh3+8e7P/Z7uNt7aG5ldd7B/sTiu4S2QIn7yuy1SxyL1vgKpb4YqeQysgm8sx168pm/96qyhzpadpSEHnmvq8tS+fLFQsl69Nch8ge65BnzunaGgxG5YXiZVVSTaWr1Cump7pL5QBw2zi3nVtS7ly5yF2zyO0rsbvtnINnUwp6/s1ZDNJ0ohuEGAAAhIBhEN0gCU2fbBbbNcs9AyGr8jkMRkDgRCAMFBSTQVtrq0ty5VDft6fKpf/DT37clXb2vL6uzlTHN23evL6u7uUdO01d2azbZhJqBkln7a3G75ckqcJXkdF4T1NTVyBgWg5q/P5vPbg1/Yj6u997TJKk9XV16+vqzLFSnZup6bPWdW1pbvb5fDV+v8/nq/BVmD2krBHPvfD8d7/3WI3fv76ubkt9fSAQkGU5vdzclvr69XV1ZoW61DYiLMumaWF9XZ25XaCMPtEVbTg8jtO12865RO5ou7z79527f9954NgwC8guMHMorGBEMb327Dwj8thX4igvtFWW2L0SjxDYuNF7W+8vnH71kRlW5d0JdRyn6wInP0NO1+MCIXDZuaoyZ1WZU7owJcuvP+wy/xBYzDJY4BgGI4ZBAs9gBByLzJ3N2Ijw6eOvrlsc1/QhOdkzFJejSs9QrHckPhRVbrhywWSPgcoLbV4Xb+2rX+Dk23uiQEExGUiSFJbDucjen5aqvcbvT9FbTZqFucZf09raCgB3Ntz1TtMeU6P91oNbJ95b1qHTs8T7L2w81oeurbX1tcbdpk/fs9u2Z/gB+Hy+f/jJj7/z8CMWvugpajcV+vvvvS+jwdh9T1tra8W5T6X3QBl9oitaXNGt8sK6OIHHxZJQ6hFKPEKpWxRm+Fg3lz0/oejmwXm6QxxC5w3taX+CyDN1/sJ5Pus8h2sWSbJlXl6bwHT2xcaq6b3DiV2/65jx5xIhjBHGKL2W9gRDDK6ZRpZ4C5QViH913eJwQjvbF207K5/ujvSFkjdcuWBq5v31tYXBqJX8EYICJ29R34iCYiw2bd6cy+t7LHG6crijmy1vqq/f09QUCARampvHWvIn3lvWt6w94SVJevR7j/38lV/+/JVfvvGbN3/+yi8zGmypr3/uhedf2rFzbPX3DHzn4Ud8Pt8bv3lzbDWaid8/ZfTxcfXlxcGIVQo5AOSyc24XX7PIXbPIXVFiF2ZY8W1pHfr1h10ZmlMworz81plgRO0dTkwkYuqaK0pMBd1M2K5qhq4TADAMomh6UjMMIB4nN9l7YxmkGURRDbMMs6aTpKJrOplyXvS1y70GgGZYneZKdi4jktBMUTJXgeATCTFYuVCaudSzJqnHVD2S0AYjypTpHAAKJb6y1B5N6Bbyd9jYeW7soZhv+NaDW2VZ3rljR1ayN3VuAJBlOZ2n95x73fz72s2bTCV1S339dx5+5Kb6LWMJ2KK3rEOnR8a/k/uwf3S/W1eX1dKe0eeW+vpxm7U0N99UvwUAxg1vq6ura2luTtkDxu15foKdq4GddnZhmX0kpNhyG9KdItsfSlYW2xkGadpsREif7Ax39EWXV7pKC8RgRO0bTpzsCpsp0N7e1zPuxz1OPqWgmwnb+4IJBiOvi48mtJ6h0YTtHic/2Rv7q+sW/9vbZ3qH4wwGl50LRdSBUDKuTSv9+xXLPH86NlLgynkzAod7h+JvtfRcv74c0hKIzskD0zKxnK+lMxwHYZL6y2+dmQ6dj26qqr273+u0CTYLQ4XTxsmGAhQUE4PP5/v5K7+8/9779jW3mEz8TtOeQCDw3AvPf+vBrV/7yg0LfBV+v//JH/zwroaGlGG5KxAwPdFMGks5nF+7edP9996X4Tmf2jrk6i3rXd3V0HDHrbc9+r3HWltbdzc2vn4uuC4rHnhw6x233gYPw031W1pbW1PH2yZ27tjRHei6dvOm5nNsvb6u7qUdO/c0NY3deaQc6c2vZpH3psbv31Jff/+99z36vcdamptbcx8iUEa3WtFEPucSjBDYeKZnJGERP51fOAQGAI6dlY+cDjEYMRgVOvhoUp9gUZZrrihO/W2mgXv5rTOBwdhwWFE0YzoZXk0i+be3z3QOxHk2Oc3eTJiRhJpuWFRZlezc6e7orz/sWu8vNOk8v0XhJo75kyGurED8zu15iGxx2tnFC5xDwaSFd4jTxsSSmMDsRdW/e7Df4+TGblZ6hxPvHey/5c8XUtac56jx+9/98IOW5mbT4evazZvMM2yfz/fuhx/saWpqaW7+0U9+nH6wbUaI7WlqunbzpnT+lmV5S319VqrO1duj33ssq/n6u997rK21dU9TU4XP9+6HH5jUW+P3p1vUU59N/wo1fn+GQn9XQ0PGuOvr6n7+yi/3NDWtr6vL6PO5F543I/Gee+H5ttZWs//0m0xv/w8/+bHZ8/q6ujsbGtouQlKfS0Z32tkVC6XuwbjFiuawMX0jiXLv7AWg2wWm2CYoqoExYjAy09ZOMIV4hvKdIvVwVDOATJOAU6Su6oZmkLzki7368uJ3D/R7c9sMeA67HdzxTvmTUyMlksCzeA7TyV16qPMX7n6v08JMhRBy2bmEMqsyf/0PXXBhBKZpninxip/BOTraIWd1tJzzxBjWMF3HMzfokpTSv8fuA9I53sTPtm3PqqBb9Da2E4shTAf1rJ81w99zGefHvpXeeXqfkiSlTtBTDTIGSm+f3vMs58nJC/DcDr92uTep6gQg14UQcohsz0hi1m6JZXB5oW3FIqm60uV18aZKOmUF0ST1Iq+QFwI2SR0zOF/VXMoLbW4Hb2aYy3W5HVyRJFSXOxeVOAQOA0X+YEYSyjHNQv42gYkldd2YPTXdTNuX8hqZhdMWC6fUfNVDmjJ2/a5jrANN73Di5bfOTLar9t5oKlgj42s+//rJiTSbyNlfXtDS3Pydhx8xg9no75Tq6JNb0U4GIhZFJG0CMxBMOATHLN4VI3AMAOCUOTo9gwyZ3Npqknq+7q2sQNxavzyPX3bNcs87f+wrlHKmMMMYCTxTUWQTWDyXyfKmMQXzGasWu9vaZd0gOHfFOrvIdg/FF5U6Zk3SqbR9ZQW2WThtaWkdOtYRvm5dWbonYDCi7Ppdx4qZdHWc2BYfpaclNun8F3vaNX0qhpPDZ4K9w/FrrijJyOo4cuEv65NTIwCQnl4ioegvv3VmJjwlb6rfMtaubjqUUTqnjD7FFc0wiEUJTpFn+oOJrJvWXI+4xVtTWeNG/3eJscmoml4oCUlV59mc+rfTxnYPJZb7nAjN2X1eqlPAc7imSjrRGbbY1Io87g8mywpszGyZSDCGUrfw5t5unsVOgWUZZIZszBxOBcI/65RXL/W4nXxC0UMR9dPTwVSOhzkERsiTVmvApHMbyySndPwksoymGG982PX/jFGfaoHFNo7hLpxaB88eOyv/+hypm3Qei2szwehZ7fAZOVwpKKNPfkUTc6vpPDMQSo59lptbh7LGf797sB8Avpi/uOQLmAxdag/B+trC33zUbeH0ziBkGGQgmJzb+0SX6BSsXe49FYgQAyw2TE4bGxiILSq1z84tcSwucgsuG5dUDY+Tk6NqJD6zCQTt/KhTqnm+wDG4yMkr+rxw2kAICh38m3u7gxF1/7Fh+/T2GQxGhS6eENANwjKIEFCzBfJItlFSv25dmUnn82F/Q0EZfaIrmkEAW6xoIhuMZjH5/n5/37EO+fJlHtMrLRhR3js4EEtoV64qyvOP+hLV0QGgUOIXlTsGRpIiZ6Wm940k5zA6GqHzczC1KSDzeO6uqPZ83DbsdnDWm9qy2fJNQwBOG+srtgOCeEKfnXzAIo+L7eedUoMRZd7EN4DbwTls7B/bhoolQeBwMKJOh9GL3ILLziEAg5BhWRkMJbM+8MUSf6xDPtoh2zgs2ThVo06pFBcDo6dWNMnO5f61M2wCozHamUNgIhH1d3/sMxdrhEBgsSPfyWIRAoQu5edgbbW38d1OweI0HSGWQfE5XWLHToFmGElVBwJ6bmWOEIgmNJ7Dmk6U+bomnoskJBaRhA6RDQzGZlHayMzppM1WRVqeZUoLbGaavGBYCcfU+TNBAs9UuAVfsZ3BKBxT5ei0tjgsg4vcAsZI1YxcmwOMUIGL90p8JKZJDi6W0IKRqT+9gUDArLZika58d2Pj0da2KeQzb2ttTcV514ypjG4Gg2V8JONFWZa7AgELP3mKCWK+uC5XV7oYFmm6YZEX0y6yOJt7jsDhUo9Y5OKLXHypR5gJf2yUdl2ScNrZJRVO67y8doEx5k7HHTsFOiEjYeXImdDxznA0m03Y4+Q1nai6MRhK9gzFu4diZiyibsxHVX1ttTeS0CzkL3I4ktA1/VJW1FiMBI4ROIZh5l1UhcfFl3hFj4tHCOVrIbDWE3ieWVji8C92lxWI/PRM7t95+JGV/pqxbL27sTGVSLUrEJhaWpUnf/BDs0Ka6SH/xY1fSE/Qdsett41NwJ6q/GbipR07bvzKDRbpXyguMh3dXNH2tQ1b1O0WOewQWXaMEsOxeEGRzQxqjyX19p7ITGiHKZMvAnJJPgprq72v93dZ7IcwRqLA6HPFKAhlTEFC0QMDWiSpKZpR6haMMa5bly/ztLaHvAwXjChyVCUwWi3NJjJz6z6da1N7IhBJKrqVmi4w80pz/UwBpf13lvQtBPlKfd3S3PzAmGorAPBa4+71deun3//6uvUpZ7q21tY7br0t8GAgFQj+0o6dFT5frlB48zbMouzjZl+nuDh0dHNF87p4XScWVSZzqYk2nnHaOaeds83MSS8CwGj0ulThtLMrF0mxpG4lf55h2bl5ZsZOQVIxIkntr65bfMOVC/pCybE7jaoyh7/KHYyphgG6QQyDKLoR14yvf2meJj5bs9wTjmsW8mcZjBl8aR8AUUwTz27bZlYtu//e+8ysZ6ZC/OQPfphR8/upH/wwVeXMbCnL8ncefuT+e+/74sYvpJLDmy/ecettN37lhnErowBAjd9/Z8NdP7uwXup3Hn4kVwq23Y2NNX7/ps2bLtJU6pTRx13RcoJn8amuyBzU7UZpJt9Ldz1dtditGYZhWBUEswmMXZwb0076FGg6MdPalxWIVyzz3nDlguGYMtbx7S83VlxfV445NBRVIopeWmj7b5ur5m2qr/JCW5FbUDWrsycbz2CG5vmhyEnne5r2PPfC8z9/5ZfXbt50x623ybJsZjl99HuPZVjdzQriN9Vv+fkrvzTPsNtaW+9suOu5F57/h5/8+Kkf/NAsW2KWIjUrof1sTG3THCp7XUYxcjNVe9bPvta4+9rNmzZt3tzW2tp2cWZTp4yee0XzCKpl5KudZ2a/bjc2bb4IpRdRvfTAc9hf5Y6rVu5vAseQuTiHNg8+UlOQonPzXZPUQ/EsFukrlnnv+9qy7/5V7cO3rrzlzxfO58yd5qY2lrSSP8cggUYxUeTAa42772y4y/RN21JfL0nSuDXHMpg4lSkdALoCAbOaqlkfXZKkm+q3TLzD9HPxBx58cH1d3f333pdxWB4IBNpaWzdt3lzj9/t8PqqmX1KMnlrRDIBcF8fNgZqO0KVvdU+p6QYhOskpf1M/PtEZnn0FPX0KNn2+LIObr1jm/dpVFRe7/MsLbQuKbYpOLH4CosBYpKOh+CwjEAikJ4Cr8Pm6JqBSW8D8uGl1v+PW21qaW6QJ1BE3dfEM33UzRfx3Hn4k/cWXd+yUJOmlHTue3bbNJUkTsepTWGDerQvlhbaKYttQKGmRdVLk8f4TI1dfXkznbybU9PU1hfvahkU+526PZ/H+EyPVla45uUODkGKPkLWS6TTLm84T1PkLG9/tdNlz/jYZDJKdi8Q0p53yOsUF8Pl86UqwLMsVuYucTgTmx5974fmJEHm6qWDT5s0ZH5Ek6bkXnv/aV25Id33f3dj4Dz/5caoU2/333renqcm6ejrFxaSjmyta3NLwyLP4VGB21XQzIB0hAsgg5NJ+JqorXSyLjNymdYRAUYzZVtPPTUFSNa5bV34Jy9+MJLSucSemnT1ZlBGaPyVoKWYHN9VvSRmu21pbuwKBabKjz+fz+XwvnfOSA8sS4+a7z27b1hUIZC3aZpZvf2nHzhSdV/h8Zj2Y9XV1pu2dGt4vNUY3V7Skalg4/Qo8ns3T9JTJV9H0S53QAQDWVnsTyhzIv284YT0Fmm5ctsQzD2PPZln+DEZnukc3tb3DiV9/2DWWvM3X6Rr3mcKdDQ2yLN9/733Pbtt2/733ffd7j1nr1nc23PXSjp3PbttmcTr+3AvPm/7wphd9Vuc1s4F5AcDrv3kz17g1fn/KQe+lHTtvqt+SsSPZ09REA9OnjHlqtVtb7T0ViHC5De8cg04FIiUFwuzphwCaQSqKbAAQn31n+1lX04+cCSVVI5ffAAJI5FtNb++NHu2QvbkzoQIARui6dWWX/M/SaWcvr/YcbZc5NudPwDz7MM+eDp8JtvdGr7miuKrM4XHyvcOJT06OfHo6VOwRgOKzBEmSfv7KLwOBQFcgkF5t5WR79tqvmzZvXv9hXVtrq6kip7+V+kiN3//uhx+M7TMF05c+F8YOvaW+3oxNf+M3b2a8dVdDAw1JvwQZ3VzR2s6EuNwJT3gOn+7OWzKZhKL3DifcOeKyTD/rhKJdt6581koUzy3W1xa+3dJrpuS0YJTS/LmOv3ewnxsTl0XSNlWKZlxzRYnIfyY8vVctdre2hwySM7iCYdCpQGRttRcARJZhAX73xz6z1D3z/2fv3aOjuK58/32q+qFnAcZvFTEE20HlxK+ZuDtjPPHcsTqJiJk7qJNIg2cZKbkw/H5j0GQg/H5D4CaSmRsCK2mJO4sLKxHkd0MgcYu5sQOTtHwznrETt5yZxM7YLTuxrx+UbPziUXr0o6rO+f2xu0tFv9R6IPPYn6XFEtVV59Q51arv2fucszdjXg+r89GS+MsUdJVXPgioJGvqlMokPigu3I2tH10yTzDgvEy0DVZX5fVIs9OEnz1zssykI2OQseyPL7viAt/7NItct7D66gVVVumAP4xBOs1/r8+Omf7sy6fffD/p9TDTEqbFjXFzPGWNp6wzIxmbC9MSQsD8Om9hnr1LFdxJmLHK+d593om5D4/MFtR6r57nv1rxX6X4lGovvd0Igmz0C+iNdsdNC3790mlv6SBlXo9kzUYU95OnUi+8etbvlTM2N20+ljQxIfR4ysLA4F5JEgCfnL30rBeLmf7YU8NlbGKvR0qZs7D2KpWx//W5d2v9HgAYSZp8TJhvjlb7ZAEileEjScsSQgi4tBfEFXLnzQte1kdsu2T0b1liL+ujmAZXYuyq+VULFB8IsLl490zqA89+SxDExaro8+u8HETG4iNj5vw6n9cjjY5bqQw3ktYStW56Zd6yZN7zr561bVEq7qVHZrI8CzFffvbMW9VVMgNmJE2bC3tYeD2SECKZsY2kBYxlTP7nf6xWXWZuzIWK78MNdW+cHPOUCFLGGPi9EvCZdks88X46w6v9MgDMq/WlTfvMuHl63AQABuDzSpJgH/vwvEt+QVwhd9y04JfPv1cmpIzPw379u9O5ARbDnMJp037vLIWKJQhS9Okruu8vP7Xkf/7s1eH3kxmLez3SmdHMO2fTH7lBmYlpFdQWPvGbd3xlzPQZR8R89uXTJ0+lMGTHvFpvMmO/eSYlS4wLwRir8koexq6/snrZh5TL8Ptx500L3nh7jAvBSve/KQs+g/QtZ0fN3+sj7gn7Kp/sHjxxLpIZ+3JzkCCYvuX0SLrUoFaWWCZjyzLpN0EQszqPfu0VVX/5qSWjaevkqdRb7yffPpP+yA3Kny2fURivG66tvWp+lc1FmW08ps2t6cYlTWfsJ597t7bag9FFZVmqq/Zeofjn1fkW1Pvn1/l8Ptm0+QxbcfFSV+PRFs+zrJL9j54SaQax9J59+bQsszKMJK2VdzdUXa7rvO64eX7GKpe+yCtLtVUUaoYgiNleGYeinrTsM+PmzOUcCdyy0CyXvUV4JPa+kZmunJzJWKJMNqvR8ctaTgDgzpsXVPmlMslDZqjoXo9UxqucTNu3LJ53eTpIkOsWVi9tqLNLPwCJgSwzICudIC57Zn9oj6L+3MunZ2sd00LF17hYeekNwyOVdDy+P5JeZNb4p75KzrLFvNrScpKxl1xXW0pOxGXzLQloC//51++UCg/AACSJZaxp9offW3I8YNnC57ksNqCXJ6gtfOPtMSFKqrZHYjCHCdnOjGbOjpZM03521Hzt5JjzeyWnldlmUuFpJ12xiSo8rQwVnubcWIWnlS+2wtMIYk4VHUX92lldlnznzQveeHssneGl3miyxPR3x5deP+UleFU+qdTKOtPiHomVcjNwLjKmbftl0+TWDGaRLwpuuLZWvbrmzXfHy8zmnhkzp11+0UfAuTg7Zn5xxYerLvt91bjv41dDp0oNaiXGgJ33lHgnT6W+fvB557+lYgE9/+qZl94wGAMAZtm81l/88Q29bjjxJMbT1sJa30xOe+q378q5zqnwtDJUeNo//mtFSVCc02wu2IxPI4i5VvTz8UYLaAt//u/vlErfIjH2npFWr6qZspaU2BnEhchY/C/uu6GonAgBGZO/czo1lrRsLoxRE/8OL2Ht+ePbrvrhz9/gpc1Em4t3z6avmuefrUcwkjT/9A+uuXwCAJTnliXzXj85/u6ZtFRyJ5tkJM9vKEPH9mWMlXFReT1Srd8jSUxibCxllfHNKDXZMUG6dBD7Ck+r8XscF12Fp5Ux5Ss8zbmxCk9LmzxZukMqPI0gyiBdLDd6w7W1S9U6mwsBUPRHltgrUw8h506T6v45M5r5T3deXVRObrtx/njGtrl4/2z6rfeTJ0+lxtO2zUV1lXwJy4/PK/3xbVfZdsn+ZxJ7/e0x2xaz8gjGUtZHFimXTzyZCgdVsgwl+5/BWMoyxs2ZVPHiG8ZLbxjlvSmSxCSJldkzKjHmkSWPzDyzsbOUIIhLUNEBIKgtnF/n5SWWCKFVd3p0ykvkChdXnx41Px24rlRqzttvXFBX6xnP2FxA2uSmxW0uziTN++++xNfDTwyqiva/EFyA/t74NErO6//xtH39ldWX7f6CUtTVeAKNC63Sa+Rkib3+9nT6P5Wxf/zU8M4fDP3w52+UmcRlDGSJybLklaUyTmlJYh6ZSSTmBEGKXt5MvOf2q2WZldrGIzH29pm0EGCfO6M4v86XtrjFecbiXAibC8viXIBZsMqdC3F6NPPxxivKZ9p+8NNLbvnwvNGMfXrcPD1uenzS6qbFl0P8k6C2cEGdl5eKCwtw8nTKmFkam9GkNa/OS3JelJsW1WuL55XZzJlM2yfeHTdNnjGLJAnkQgiAdMa2bSEEZDLcsoXNxclTqWdfPu34jU1LcAE4VBUCMha3hcjYnDHmkSWvnBVs/NS0OOeCC5E2bcvihcv3hADORSptWza3bJ7O2ALy/0I9MsvYk/+FSgxsLrgQ2DrbFmnTxiNQUKlpCdPkQoBl87TJCyvFHrNtnjFtzoVpcdMWAJCxz0lQhGVzLjImx/ZmTFuI/ErxvxmLp9I2nmxaAs6tFJvJhbBsblocJ+9sm+e9srCZAsCyBXZpqQdKEHlcZNtYFyq+5k9cf/zpNy27+OIRIYQlwOLi9hvnOwcD2sJXhkeMceu1t0bfOe0RQowmrdGUlTTta+omZsJMi58azTQHrysv5wBQ5ZM/ddd1n7rrujOjGYzSdZng80rY/6dHzKI2GGPszVNJzkXG5te5emZ+nde0hM3FeMquq+boIs6Yts2FM43OhTg9kvnIhxSS83KDqlsWZiz+sj5S1AhmDIbfS753OmWMW6fHM3/y8WucjxZfW6vUeUfHreH3ksa4KUssmbaNcfNMMt9RP5axPDLT3x0/O5phjI2nLCNpjaQsn0f2yExiIDHm9ctYyOtvj71/Ns0YG0tZRtIcSVlXz5+Ye6qt8rxzJsUYnHhn7L2zKSEglbFTpj2Wtt2n1VV5To9mJMbK/4XWVXtPj6YZg1eGR6urZM7F6LhlJC2TC/c+l7pqz6mxjADx8vBIlU+2bTGStEZTliXOOa2+xnM2aQLASycMn0fmXIynrbG0zRhzR56u9stG0mIM0iav8kmmxY0x6+y4lbdopsonG0lLALz0hiHLkmnxZMYeSVrVroWBssS8Hmk0Zb9zOjWesrweKZWxR5PW2aTpjijg9UgcYDRlnTyVGhk38bSzY/kPlCCKvAHERTjwe9/IPP5vJ8eSVglRB/XqmnvvuNrn+us9eSr1w5+/MZo0fbIkBGRsXuWTlRovOg9tLsZSVk2V/GfLVVqKNSkZk//rc+++cXKslGPV5sJIWh3NS5zhTipjf++nr46OWfXVnhq/zBikMtxImmNp+5oFVRJj42krleH333395bz1vHJ+/bvTz/7udKn+5wJGktanA9fmdebJU6nv/fRV0+I+WWIMLC4yVrFFZAwYMIkBnpaxuRDg88pemUmMSRJIjEkSEwLGUlbGsr1S9jSvLCk13rxEDJh3x7Q5/umZnHtlaX6dL89vb1r8zJhpc170L9QhbXJj3MQoFEKAxYXPK82r9eaNb5IZ2xg3GYBPlkybcwF+n6TUFDnt7FhGYgxPs7iorfLUVXvyThtPWyPjFmMTpVX7ZfeyOMQYN5NpW2LglSXsNCyt8LSxlOWRGJ7GhZhX66s+d3zAhRhNWueUBqDUeP961U305ScuNUVHUXn+1bMvvHrWLLauVQDU1XjuvGnBdQurLc5Pnko99/KZV98am1/r5QIkBl6PZHNh2cK0eNq059V5A9rCSU1zws3vT4z8+venx4r52AWAzyvdsmTeDdfW1lbJ2P8vD4/gG5k5zkwGtX6PaXO/V/rY0vlBbSFtVKuct95P/uZ3Z956P8mK9T8A3LSo/ia1rtovnzyVev3k2Gsnxybd6MwYYwwYyyo3AwDGvDJjALKUO8gmdN0RYy5g0mgQuAS9ktPwL3Tmp3EhTEtUeJpHZuV3rFV4Gr5YKjzN65lkwUHeaV/87Ifpm09cgorufq+99X7qlJHJmOU2hY+lrfGCDSE3XFs7v867+Nray8pzPuv+kpPvJ983MqOTTZ+/ezZfTq69ompenW/xtbXkF5k2o+PWW+8n3zcypyYLm3hmLGNanHrsoubBTy+hTiAuZUUnCIIgCAIurrXuBEEQBEGQohMEQRAEKTpBEARBEKToBEEQBEGQohMEQRAEQYpOEARBEKToBEEQBEGQohMEQRAEQYpOEHNCfzQ6lEjMTV07urrzfjnfDCUS/dHoHFfqdKm79jnr20v7gc5ZRQQpOkFcfAzrumEYc1NXIqc0ibmSHMMwhnV9jit1utRd+5z17aX9QOesIoIUnSAIgiAIUnSCIAiCIEjRCYIgCIIUnSAIgiAIUnSCIAiCIEjRCYIgCIIgRScIgiAIghSdIAiCIC4hPNQFxOVMg6r2RnoAeuagLk3TnF9Wt7bNTQNXhVuc3+es0qZQCAAURRmMD85ZpZfJAyWIMjAhBPUCQRAEQVzskNedIAiCIEjRCYIgCIIgRScIgiAIghSdIAiCIAhSdIKYAb946rVd33jixBtn5qzGXd944oc/eHaOm/mBVPrDHzy76xtPzGWNJ944s+sbT/ziqdcu7a8QcTlAu9cIYsq8/97YSy++Oz5uzlmNL7347tw38wOp9I03zsxxvePj5ksvvvuRZVdd2l8hgmx0giAIgiBI0QmCIAiCIEUnCIIgCIIUnSAIgiBI0QmCIAiCIEUnCIIgCIIUnSAIgiAIUnSCIAiCIEUnCIIgCIIUnSAIgiAIUnSCIAiCIEjRCYIgCIK4OBTdMIzeSGQgFpve5b2RyL3L7zEMo8w5q1vbbly8ZNbvfEdX942Ll+TVPhiP37h4SW8k8kH1Z28kcuPiJYPx+AdS9aTPgiAIgrhkFX0gFuuN9Ozo6i51wvq169avXVfq02F9WNf1GarIQCx2f/OKKalgfzR6oK9v5+5dTzz1pKIoF9HXYhqNrZBZeRYEQRDExaroB/sOqKqq63opM30gFisUCcMwhhIJAEBNVVXV/elQIoGflmIwHnefMOn5Q4nEYDzuvo1hXQeAvHoLa9F13X1E1/VSB/PamHeHpU6r5NNKGlvqcl3XC+/WuRyvcj6q/Flgf+Y90MKeIQiCIJCLID86vu737t+3fu26x2MDTaFQ3gnoLUdX9obOjRs6O29cvCQQDKKiHzpyeDAe7430HDpyOBAM3rh4SaOmocU8GI+3hMM7d+8qtK13dHU3atqwrjeo6t79+w729fVGegBgdWsbALz82qt5d/iVTZtHDKNBVQfjcbyH3kjEuSQQDB46crigXUP3N6/Ay7du39be0YHOhqFEol5RhhIJ596wKLyfQ0cON2pa4R0qilJ4mru6LZs290ej2C1TbaxhGOvXrsMT8G5bwuHBeHx1a1tLOIzDrCeeenL92nWD8XggGEQlDgSDmqYd6OsDgEZNO3TksHOTzrNQVRUbCwBOe4cSifVr19UrCgCMGMbe/fsaNW0gFtuyaTM+uAc72rG7CIIoasYAQIOqljcnpk1vJFKvKPQ3eCEiLni+8rebPnn3ciHEZz/TvPSGxWfPni08Z+kNi//iC63u/y69YfFX/nbTw1/vEkL0fPvbS29YHH/6aeejxAsvCCH6vvvdpTcsjj7yiBDiL77QuvSGxUKIEydOLL1hcc+3v+383vfd7+YVksdnP9P8ybuX441hmbGf/azMJfGnn156w2Lnkr/6L2uX3rD4xIkT+JHTauc+ndbh+aXuMO80N9FHHnFOO3v27CfvXo43VmFjv/K3m+742K1YLP7utOKOj9368Ne78CrsQ3d/uvsfjxd9FmfPnsXzsRM+efdy52l+8u7lf/Vf1rofUNEGzjE//sfnv/jgj14cemfOavzigz/65n/75zlu5gdS6Tf/2z9/8cEfzWWNLw6988UHf/Tjf3z+EvgK4V+l8/PZzzRP9Y+l77vfxRdCGe742K34EiAuNKQLf8g5EIuhXb4q3IIO9koubNS0nbt3bd2+rehHaL+2hMMA8HhsIM+BDwDD+nBvJHI0Gi08oagLoSkUQvMRyzwa7Z/0Dp1L3O1qUNUdXd33Lr8H/4v2NFq9zjKCUneYd5obPAHvTVEUx89RYWMHYjFFUQ729fVGIjgL7vjDW8Jhx8HgHAGAQDAAAPeFmvDGnDmIPALBILpM8PxhXR9KJNCv3huJ4OJBvEk8YXVrm67rF9eiBIKYYzZ0bnz5tVe3bt82lEiUWX5UlB1d3YPxwfLn7N2/b+/+fdTPFyAXuqLjBHk8Hl/d2oYyebDvQCUXlnnpOx/hL3le6JFz/7uhcyMqbpkxBwDUK/VlyixK3iUjhqHr+srmFfF4/PtHDq/paHf//TRq2oG+PnSDl7rDvNMKb9JpuFN1hY11NycQDGzo3NiQ8+Y5Rc3iGM7931Xhlg2dGwFgQ2cnuvpXNq+gqXSCmBQcZ+MfS380urq1rT8avfPW27Zs2gwAg/H4/c0rbly85M5bb9vR1Y1/d/jqGEok8GTITYHhac72nMdjAzgxh2f2RiJ4zr3L7ym/2Ig431zo8+h7Ij2BYBDf6QCwZdNmtOFmMj/kGIv4XdfOnW9G8/2uYABtzUqcAWjmlimzxG2cc0mjph2NRg3D2Lt9m6qqQ4kh9xDksePHcCK8PxotdYd5p7k/1TQN15RhvzmFV9jYRk0bMYwNnZ1Fu3F2wVtSVTWvOgDYuXvXXcHAlk2b90R6Clc/EAThBiXZ8X7h6tdGTWtQG1CJW8Lhx44fw991Xd+7f9+Gzo2rW+MNqoqjdsMwcBnQy6+9iutmGlS1JRxO5FatortuKJHYuXvXfaGmLZs2f2XT5seOH6POJxu9CChCq8ItgWAQf9Bd/L0CM11RlKFEwjCMSoxjXdfxu74n0gMAD7qsYQBoCoVUVd3R1Y2DTWdxdX1uMV1eFYqi4OowPH9PpEdRlLwyS7kf8J5xJX9TKISG79Fo/4G+Pvcyb1xctkxrLH+Heae5Qe83+t8G43Fn5qLCxq7paNd1HYf2OA9y/h469icOSsC1VL4/GjUMo5KhEkEQq1vbtmza3Khpa1wzYlu3bzt05PCGzk70dD7UuRHH0E2h0EAspus6TpApihIIBlVVRRfpXcGA8zoqOivXEg43hUIt4XAgGCQbnRS9JIlEIhAMus3HBzvaC1dr4zcVAO689TYUaVxl7XzaoKqBYNDxOTdq2jPxQQyxsnf/PjRbNU3DbzMA7N2/LxAMokuqN9LjrMQOBIO9kZ6VzSvyvrW49htj1CQSiUNHDmOZefW6RQvb9XBX95233qYoCk5KtYTDKGZv6sNbt2/Dluq6jne7J9KzoXMj9kbhHRY9zSEQDG7dvg23AxyN9mPheGOVNLYlHN7QuREvX9m84vHYgGEY2IoGl7PE3YfutrvPdB93Pyb3cexPDM6D6+cB4Jn44L3L77m/eQXO3NOfLkGUIRAM7N2/77Hjx9zvH8e1qZ+7sbZBbSjqdcMjR6P9vZGe3kgPynxhXbM+9UZMn8ttKWDeqniCoLXutNb9ElvrXrhYvXD3invf0MNf73J2mrjfkLhHBnfuuHE2nuRV596QQtBad4IgCOK8gwtgcWIL59Hc9rdjrON+nN5ID7pFK5zWJMjrThAEQcyZTz64oXPjjq7u1a1tK5tX1Ocm/gCgvaND1/X7m1dgQKet27cN6/rK5hWrW9ucXbXEBYvncmtwXrg3giCIS0mqi77iNnR25m0e2dDZuaajYyiRUBTFHV9y6/Ztq8IthmHgmhhc3ONEgcRznAiYedUVRsYkSNEJgiCI8w4uWS083liwo6ToacQFCHndCYIgCIIU/TJjjrdalso6Wj7BGkEQBEGKTkyir7haZM5qfKC1bWXzisLjR6PR1a1tFMmBIAiCcEPz6JWiKIqqqkUjsp0nGik+GkEQBFExTAhx4RvHA7HYiGFgtEI8iPFTMW32sK6vCoedzZS4vXJY1zFwbGGBQ4kE7sFoCoVQNTGpcIOqjuS2ZgaCQV3Xj0ajGMcYLxyMx3FdqK7rw7reqGkY0zivIgzvWq8oGGO1whY5N1avKC3hsBPXFkt2N8qd7p2+wXPMl9Y8kndk0Yfm/9eupvNU3Q9/8OxA7Pd5B//vDX90x50N56+NA7Hf//AHz+Yd/MJf3N4Uuun8VfrSi+/u+sYTeQebQjd94S9uP3+V/kPvL3/z6+G8g/+1q2nRh+afpxrHx80N/9f/msuvEHFZcRHkXlvZvOKZ+CAAbNm02ckq9nBX9+rWNkzIhsFKMa7hUCJx7/J7MPjw+rXrCjMJDsRi69euA4DB+OD9zStQ2jFXwcrmFV/ZtPlotB9LfqC1bSA2sGXTZqeQ1a1tD3d1Q87vvbJ5xcG+Awf7DqxubXO2aWI4ZQB4Jj64Mle+G8MwVjaveFMfHtaH3Xe4ZdPm+5tXDMQGjkb78SpsI16yurUNz8Qa6Yv7QfGRZVflHVlWcGQWublY4R9ZdvV5beMdd15fePC8NrNox5Zq/ixye0FLa2q850/OS5U/u32r6zpuNN/R1X2xZylcv3bdtHfAY1I4UvQLiy2bNjeo6t79+zZ0du7cvWswHsd8JMhXt287dOTwzt27nPQhvZEeDJOOyTcP9PXlrSBrCoUePX5sQ2cnpit1q2MgGHzs+LHvHzkMAMO6/sRTTz52/JiqqhhZqZBV4ZZDRw4/evwY5BKiY4aVnbt3bejs3Lt/X4OqFs67K4ryxFNPbt2+bU1Hu6qq2BxMTLJ1+7bHjh977PixvKjs/dEoZjdyiiVlvXAU/byqTqEtvuhD82tqvOe1jVdeWXvllbVzqXOl+vZ8j13mvsaiA6ZZ/AqhwbBMazx05PAyrXH4wlb0+5tXuFNSEZe4ouOK7qZQkyPGcG7yH3Q7o2cbU31jsiA0sh37O+8bv6Or+85bb0MNdtOoNTqlNUzkMFBLrSp3147n4L05jvSmUBNmG8y78GBf373L7/mKS+zxwlIpTQuLpS/uB6foV3+wqlPUgD7/lTbMQaW3n1vLBzJ2uf38d2/hF2YWuxen6vBNgvmW3LZ7Ufl0Hy/6vgJXVsYy9Rau1cVEU2XOKbwk7yb37t/nnpeEYtkvS7Wr/M1XeLBouyrpNDw49zuSLsGVcZjc16XTWp4bZyiROHTkcKOm3bh4ydzfXm8k0hvp2bl7F6Zrwy8QPvjCLG3EBWij19R4x8dN93/Pd40vvfjuXBqRaDX+4qnX5sYP4bDsAxq7vPfUWBmr/XyPlma3RkxguGXT5p27d7nVZf3adYqiNGqNWzZtfiiXm/HGxUsw/2EikRhKrEPtVBRl/dp1mJIRAPqj0T2RnlXhloHYwJqO9jyrozcSGYgNqKqqqqqu67quHzpyWFGU3kjkaLQf48A/8dSTI4axfm22/IHYur379zVqGk4pPtzVrSjKoSOHnZtUVfXhrm4sZ3VrWyAY2NDZubq1zTAMrGj92nUPdW5s7+jAGxiMD2qa9nhsoDAl41BiCEsYiA1omoZ9UrRFB/r6jkb7m0JNw/rwfaGmplBoKJEovOcKO21HV3c8Hm8KNW3ZtNm5kBQ9++0cSgy5B3T3lbVQm0KhwXi8UdNKqeNgPB4IBnFJ3azf8H2hJlwrh49wKDFUGJVpMD6Iw2f3yA4v7I9Gi5rpgWBgMB7HOweAAZeXIi8rIjE3ZrqznGoOBOCOOxse/V9ZK6GmxvuRORHXO+5sOAC/mkudc4xy12hpLsYut995vTN2KTTZz1/3Ol+h22fb/3HoyOHVrW16q753/z58De7o6nZSNjeFQvc3r3DystwXakJpvHf5PQCAmmcYxtFoP64O3rJp82PHj2Ge9ZXNKwpfUEOJxDd378I3Hq46wkJ0XX/s+LEGVVUU5d7l9zzY0Y4VXa82rF+77omnnjx05PCNi5d8dfs2RwWdm+yNRPqj0XZXZndUTfx0mda4o6s7p+g9hXa8+94ePX5MUZQNnZ33Lr+nPxoNBIOFLRqMx/dEep546km3aqxfu67wnp3XdZlO649GB2IxrBdzUjsx8+eAC30efU1H+0AshvPTX9m0uVHTSrmmnfPR6z4Yjw/EYoUr43Ct+I6u7t5Iz6zfLa5R/8qmzTjfPxCLFQ4bA8EAfl1Wt7Y5StwSDjdq2o6ubvzJm7lfFQ4rivJwV/dgPN4bibjnxlY2ryi6Z504r/brXFrMbufz3IgcnDtxPmc6l9fAuRlGzH2NeV+hWV9y2KhpaPKiXQsAA7EYJlvDT932jJYzHxtUFbOkA0CD2oCmwkAspqoq2h64f6fQvYwFOlLnlIyGE+7Z0XXdeW+3hMO6rhe6sgdisUatEU2XekVxz66635xowDje7PaOji2bNpcKzoG545zfH48NFG3R0Wg/vrrdQ4Ey91y+0x6PDTRq2lAigX01x7ltLnSv+4bOzkZNOxrtfzw2EAwGH+rciP2+KtziPGB0s+NALxAMHjpyGBfAq6p6VzBgGIb7Ue3cvWtPpMcwjENHDvdHozj77i4BADZ0bnTm0d0VOccDweCGzom5duc4rnrbE+lxFugVDh7XdHSg+f7N3bvwW6Lruqqqh44c3hPpSSQS6FlyV62q6t79+w72HeiN9KwKt+zdv28wHscay49viPNjYF2Pm7vmzGJ2vAI3z5XkoNKceOMMzJX327GYsaVzM3PvjF2wpbfPVUsdFT9PSw5R1Fc2r0BLN+8dqCjKSGXzu3iao+JNoabCZbl5JRfOHOdNKeIvRU8b1oedupwhSHm2bt9mGMb9zSuKvmzrlXr374ZhFG2RruvOS35K91wU49wq3FPApOjZsVXho3Irmaqq7rRCpbahOyc7M0yOVyevBPfv7oqc43lVuM/H/INlmoMuIOcPz2la4YXuqvNqdH4vXxdxPkCb9b33xubMYr552VWoc8vmUNFvv7MBt8LP5TDCGSHNZaV33Hk9KvqcPVBnfuH81agoyqpwy+OxgfaODgyh4UjWsK43au0VjgwA+vOStuXhdhnqul44Z4xH0G6B3ERh0dPuCgamYaLs3L2rQW3Y0dVdKBPD+rD7dy3rTshvkaZp7jMrv+eiaJpmGEb5Tjt/UBRYgpim8MyZ6qCVfOWVtXOwhaxQXOdM58Dl4V82p8OIq2FOltaf+0wbzodXwL02ezA+iKbnmo72g30H0HbEGb1SE895BIJBwzCcXd2lVn1jmYZhHOw7gLuC88YWLeHwntws555Ij+Pidtv0TaGmPZEeZ6l5hVGu0RRu1LSiBjQG+4Jc8K4HO9qLtujBjnbcIewY2WXueVLuCzX1R6OOjT7H4bopCixBTMdo/sVTr82ZOxp17iNzKHJuUZ9LncNKx3+dmfuxy1xOLjhfoVl/piiruq7jonGc42sJh4d1HSNrOevLILf02LEs3Vt2NW0ETz505HBvpOf+5hVY4Nbt2/KErVHTnokP4mbgplATGtlOCcjW7dt25OJlYSHO8d5Iz8G+AxhsAwBwuTuOQho1zbkr9+05y42HEgmciwSAwtVnmqZpmtYb6UGx37l7FxrchS3CSU+MHqYoyn2hppZwuNQ9T9ppgWBw7/59vZEew+hWFCUQDMzlWveLIAosQVxojI+bXdsHvrG7ec5qPPCdX9287Kq7ly+ey2YOxH6fHM+s/M+3zGWlv/n18LO/frP9Sx+fy0r/ofeX94Vumssx03vvje3+xr/M5VfofICbxw4dOUzvhAsEstEJYsrU1Hjv/89zmkfn9juvn0uzFVk2514BmFsnv7t759gFcuWVtXP8FSIuB8hGJwiCIMhGJ0UnCIIgCOLCgNa6EwRBEAQpOkEQBEEQpOgEQRDERYphGBifu8w57p3ZlYNJLqZ9Y72RSJlMcU7q7UsSWutOXO7YJ5/mbz99vmthdapn6efL3caJn/JTMwpGIS/6lHTFLbPeM97bvnwh97Bn6edY3aJpXCgyBj/1gjj9gshMBCeRrvmEVKdOr8Cp9ok4/YKn8UsXzh/CQCzWqGmVp31a2bziwY72vLiwqJdO6Lej0f5AMFAmiGcpRR+MD047xHVvpMdJRVPIjq5uwzAqjLFTtFFz1sOk6AQxZaQ6Nf2//7tUv/j8VSHSZzw3P1BeXTK//AqrmcHGLW7xt5/2hx6Zxdu2fvstfvqlmSs6f/tp+5VHwDv76V5E8l3pmk/IUxFgMXrCHPouf/tpMfoG89aD7AO5yulD++UfCmsM/PPlq+6Sl35OvvYTs3/Poycyv/wyP/U8eGrMlw56P7ah/FBvzli/dt2hI4cr1BtMJZ6XHg0AhhKJLZs2X8j5JgZisakmQ5utRk2ph6c5rP/a175G73Ticob55vH3/wOscea/knnqmaduln9kv0if8i3fw2R/Se18/h/EmZdY9XXMU888tdP6qeJnfyctvF2aJftSjJ4wn/s289aDX5mh6c/fflqMvMr8VzFP3XRbV+xH9oM1Kn/oMxU2mZ96IRP/O/M3fw/Jd5hXYTXXMd9C5ps/UaC3nvkXsKormadWjL1uv/KI9dL3mE+ZLc+HGD1h/urr5r/9V5D8Ut0SVnUVk3z2G/9kvXhAqlOleTfOvArMXTZiGDu6uo899hO/37906VK0Mn9w6NDund98Jj6oqupVV10FAL2RiGEYu3d+0+/3H3vsscH4IAM2lEgUmtSYU/zYYz9Jp9Oapum6/r2+A058U0ei3Md1Xdc07Wi0f54y75VXXtm985svJoY+vHSpk/XEuZ9AMOj3+/NaMawPq6qa1wr8aE+kB4PaLl261LmwPxrd0dX9THxQURTMpfa9vgN+v9+5t95IRFGUZ3/zmxFjZN369XgP+/bu7Y30DOt6XpPdHzWoal6j+qPRYV3fv/d/DCUSDap6sK/PuRyzfznR4PdEevbt/R8vJoZuv+OOfXv3unsYn5STxq03EsHMs+6HsnTpUqeQwpssbp/QC50gPI1fFONvAQDIfvBUz9qPXAVMFsl35Ov/hPmUMga69eJBVnMdSD6Qq6ZVkR+YV6pVrd9+a7b6xHzu26xuMau7wXzu27MycAImgeQDT+1s/NSA5ANgAKwiKc0YmV99LR0Li9HXpQUfZTUN4KkHuSb7jDw12TLlapCrQa4BuYb5r5bm3SxVLTT//e/Tsc+J0RMz0vKMkfnV15I/vpe/96y04FZWdQ14qsFTA15FUm6Wqq7KPP3/pGOfs0/OdG4CU0Ufjfbv3L1rQ+fGHV3dOGc8lEhgSNe7ggEny2pvpGfLps2NWqNhGKgWy7TGQtnY0dWNgVp37t51sO8AJjJfpjUCQCAYdHvd3ccdreqPRjVN27t/H2Zbx4OrW9teTAzh/WB42kKzuLAVA7HY+rXr1nS0Hzpy+MXEEIZoxTt8PDawd/++hzo3PpzLoI0BcZ2hxsG+Aw2q2qhpTjzXHV3dw/rwoSOHC6O0uj8qbNTRaL8TrXZY192JuY9G+3HdwGA8/kBr232hpkNHDt8XanIi1zo9jFlcnQtx9JD3UHRdX9m8YpnWeOjI4WF92AlHX+5VRm9zgpCv/QSruQascZD8IHmZ5KlQKsq8w4WwgWdA2CL1jve2vynn3B76DkNpkbwg+aZcu+BCmCA4eGr5md/ZJ5+eua9YjJ6wXntUvmY5MAnsjH3ip/KiT89M0BkAAJNB8jAmz6x7heAWgFWph+DUC5lffhkyI9KCW4D5QPICk/GHMQmY5LoZAYILEMBtEDYIG5hXmlcj0qdT/7TSe+f/Ow33uMgY1tB3rN/9T+atl6/8A5B8IHlB8jLmBSYJyQvcBMkrza8FazTzRId0xUd9f/StGU7kY3pJRdMe7GjvjfQ0hUKBYDAAoOu6YRiGYTiG+Nbt29zOZE3TCq3VA319jx0/hgL2zd277m9e8VDnRtS2vJMVRSk83hIO43/XdLSjBg/EYsO6/tjxY/gpBqIv9EUXtqI30vNQ50YU4J27d915620DsVggGDzQ1/fEU08qioJR6+9dfg9Wd3/zCiz5aDSKudLzgtInEolSc+ruj4o2CkcGpdb9Hew7sCrc4uT4dv4t7OFCnIeyo6s7EAzi71u3b1vZvGLSlG5koxNE1kzn48MgOAAA84Dkn9EP8zJgILjInJauubvMC3rCQGc+YB4meYH5QK6q9EeqAsnHmBckLzAvq7luVsx065VHpPolIFeB7Jfql1pD350FGx0YMMaYPLUGFraXebJKzCYfFvBTL6QH2gAYq10EUjUWwuQqJtcwtMilKpBchcs1TKpmcjXDI54qkKuZ/0qp7gZz8KvWKz+aWjcOfSf1j8vtl38oKTexmkVZ61+uYXINVpf93VMDnhrwLZCuuF2kz6Z+Esr84svT9gq4LU5N0xx38erWtkJreNI5XbzcKRN/mVI+MXeScneZq1vb8GdY14cLlqYXbcVQIqG5jjdqmpNrzmmI80ujpgWCQTTuj0b7HyrIU46SvLq1rbA5ZT5CGtSG8q3Gocb0nqDThEQiMZRIYC+tX7uuzAJ+stEJ4ty/hKWfN/+jF3gKhD9rUzIfMHnqBiQHYWVNPWGLsWHvH24vc7p94qfMg9KCcp7VZmBSxdUxAAHAQbKYV+GnfjtDM11kDOulg9LCjzO5CoAJ3zz+ztP81AsznU7OWsNoH3thOpa6AGEB5zl/u1SJnLPa65lvAUg+kHzZHmYySHLuTvJtdAAOwgbhZcICLgtmApMAJGmBZv773+NXpYIh0Y/M/+hltikpS0GuztrlaKAzLzAPSB4ACYQNzMOEF5hXsAywDKu6hvkW8PeeTf74Xs/Nf+m97ctl5msqAa3SLZs2q6qKVu+OnF+68ssLDxbNXlqxxiuNmjal2LFO9tXCosokOV0VbjnYdwAzpBWOXXAaYsumzevXrnviqScr/Ggm/TaNQgLhlimlWicbnSCyeD+yRozpWXcrKpDkEbJPyP5KfyQvSHLWdhQcrHFpwUfKi6v5H72s5vqcM9YHkgckH2QrrZrsx59TCG/WTJe8bMaz6faJnzLvfCZX410xuZops2KmQ9awZhIwGSSvkKuEp7rSH9mfVUFAA12adFziknM/yH4m+0GqAtkPsh+kapCrJ3rSM/F7znD3geQHuYpJVXg5yLVS/WJz8Kv2iZ+W672TT6d+8inz3/9e8i1g9R8Gr4JT5kyuyZYsV4GnWsjVQq4WnmrnIJNrmCdrr7Oa6+Ur/4AP/zz140+az33Lvb9uUgbjcUduH48NoN94MB5fFW5B23GqFr+qqs5VA7GYqqozTA8aDAZxqfxUW9EUCj0eG8CDhmEMxuNNoRBOdTv7190b2VvC4RHD6I30bCgw0B3J3Ll7l67rhc7zMh8V4tyq42xoCoXc0+TlryrVFXcFA0ULKeMjIRuduHzJW4jE6lSefFtWbgQQaAUKJmVNusktZgHcBrCyfnvgICw+8qq8+P4yy534208z20QbLmc+ekHyigrNdGELYAwNdOBMWEJYzHcFP/Vb65UfsdppzsWa/7FHUm4EuSq3+kyw6uvsN47bHwqBd950jP5RPSfnjh7LgnmAeUCqzFIXHMAWIBjDAdNEz4jTL9hFreTffotVLczJuY9JfpB8WReI5BHMk51NxyV7LhtdCA7Mw4QN3AQhobtG5Dz80gIt88uv+P4IinSFedYa+i4/83upbhGbtyw3PvNmZ1Ikj+vhoo3OQAjBLJC8jJvAMsBlxrzAPIJlgHlYzSImMvbLP7RePOj9w69WOIuvKMrq1rYNnRt1Xe+PRh89fgwAAsHg0Wi/YRioEEUtbOccdwpwANi6fduWTZthN6Ctj4Z+mRGAoigH+vpUVS2157tR01rC4Qda2x7q3IhL03fu3pVn1BZtxUOdG1c2r7hebdA07eGu7vaODrS8MZc5eg7yJLApFCrqADcMAxfZ4US7e4xS9KNSjcKN71s2bV7T0Y4r8PH4Q50bH2ht641EAsFgIpHA6XN3D68Kh3sjPb2RSKOmOSv48mgJh49G+1e3tq3paDcM45n44M7duw709e3o6n7s+LGi4yrK1EJcvowfWipVXYl/CBN/EjUNUH01k2tBrhFZrfVNLjzCFtwEnmE8A3YSrDFhGmLkZeAWgHCdlQaeZl7FKY3VNoCnDjw1TKoG2Q9SlZB9wHxM9gLzlJsqFgK4KXgGuMl4GuwU8LSwk2CNi8wpSL0/cV7GANnPnF3Xkzsr6qX5t4CnTkh+AGA8A9YYH30Vkm9VLuI89a5UddVEM6uvAd8C5qnF9eRC8rnc4PIkmi4ECFvwDPAMs7GlKWGNgzUm0u9B5qwzQOKp96SqXFJUuYpVX5ObrvZjdcC8QnLE1cMcrztOXIAAIUBYIivnFuMmcBN4BnhG8BTYaeBpkX4PMiPZC+wU2JkJx7hvHvMtQGcJMC/L/YI1ipwPJtdqlq0uW4vFeAYEVmcJkQGeAfzITnLjFd8n9086mYLJ0Hbu3jUQiymKgsvBUKX6o1FFUVrC4aFEol5RVFUdjMdRgB0lG4jFDMNoCYfz9FXXdTTTm0IhFFH38ro88OS8ugovGUok4vG4u0x3CSOGUa8oea1wbnJY19E6d5utA7FYg6q2hMPudm3ZtPmuYKDoVnLnPt3ll/qoVKPc/dYUCuFtO+0djMexydjqvB521zKUSOA95z0UyO1IbFBVvBl8lIWRAEjRicud5JFGacHHgHlyr/XcymfJxzy14KkXchVIfib7J+y5EnIOwgaeETzN7DTY42CNCmsMhJ012QXP2n+Z9yAzwuoW51ZcSwASSF4m+XFxlpD82RolD7Dyi945cAu4KXgaeJrZqDdJYWdyEwccBAduitH/A775zH9V1i6cMElZ9l/m/JcBAJN84J0nPLXZGxAms8bBPCt4OmvI4hhl4tUhJqQ3W2mKn3peuuKjwLAhMtrlTPKBXAPo3JbQbp60mU5LM9nxkJ3MDl+Ele1hYQG3gCf56SHpio8C8wKw7COTPAzXKsp+YF4h+4F5QfYxtJKzz5SdU5fgIGzgZm6IZgJPT4g6N4HbAHZWjNPvgTnC6hYD8zjuB3QDsKxd7sH5FMFQy3F6xeNyMzjPMZOrDnXdBJEdsYGdFiOveO+OVKjolN7UEeaVzStwGfxl0mTyuhOXPdn1SjLLCQ8wOSszTGL4Ui6/RA4/ZR4ASzDGAIB5mKcWBBdZheAgbLBTrkq9IFcxrAj/lXxouWYNyskX5UkgeYExBiAEB4nj6IExHwgbwBbcAjsFYOZuUgLJzyTfhOs7K+csz0sBzCPkGkC5BQZcFh5gIBjPnDPLkJVwMTFkAS64eU4zmQSyn0n+iV5l6PH2MMdWruAJgeTBiQwQEjAPyFUgeVh2IGUKnslNduQeh+THZRCMeZzFhiJrqXuzI4niq4hyqswkxiQBTACw7CBG4JMVkoVDJbCtibFR1hCXc5V6IOtdz82hZJ09hU9WwoNMkoUtC6yaywASCImBJIQASNOf6ZRAf8DDXd2F/nxSdIK45EXdwyR/1lh3hCf3Rq5oxTuTQeIgZOBSdvpZ2CA4yy6ctoSdzL8CWM6Ezb33JR/D2etK19gzYF6QAYALAADGmAfQcuUmY1zknYzDDpRSkLKO3wmrXRIMACQABnIVk3zZTyWPsCXBZJRthob4hEUuXHZtBsAsYnAz2ZnDnuhV1LmKnxAOAoQAwWTgJhNW1iPNePGOkZyt5zhaytbLJD9I3sm8AqjQwEAI4AIEExwkAGAgZCY8gqfyS2CQdUI4lTIvyF7hrFjEj0otRkYhB0kwBowJJjEA4ADMntIXOS/ky+Ws6IPx+N79+9TLrDdI0QliQjNcy6Y8IPmY7ANW8d8I8zDJKyS/YCy7tErYgMIjrFLCAcwDsl/gtC6KzVS3zDEPk/wo3gLNO56eMM3zT2aor1mFgwl7FJjEHHXPTuGzbKnMC6Iq628XPLt8LDtY4SBsxi3IihwrqZGSR0yYyN4pdGyumSAxxiRhSwCSEBITAljpODPYUuYMIDwuWa1s1xzzgoT7A20heRkHkAA4y26FKH6JNCHnUlbOmeQH2ZudCyg/jJB8jDEBDAQIiTNhTfVLjJFkCFVVp7TpixSdIC45GAPJI5hvOm9/543sAcFlYBmR1TlR3Gx1IdA/7Jh3U79vkDwMp7VtKG6z5jUTWHbIgspasIC80Jtw7o0JJjiADTy7HhAYz/kAWFnDlzniOp2wcUxG0cyGdZvCM5UBcFZlipvgmcyyy/IFSAJsXm4MMdFMGSSPkGRnLr+CtQLu8RkXwgZh0l8kQYpOENOQROay1KXJfaRlDH3Jx0ASwIBnBOOukie1z3I7mqbrYGDMrnSZK2NZF/3UXN/nihbIINkMhJiKKZlzA0w3CiyTK9DUQmM9Nzs+5XpZblmfBMJZEl/JdVIu0Kwnu3BhCjVSmBBimtBXh7hoGIzHD/T1ubfSYtDpvBAQuq73RiKVREws8jLNmXXA5On+daDB7XGtJGcVKDpUfE4ZkZ76JdNxCeTpljTjGPhzM2qrNHBswRNhuU3wU74wF5zuA3jNDsRivZHIgb6+Mn8IGGGUXiwzZ0dXtzuyDSk6QUwCBqbe0dXtjmGJ/13d2uZ+bT3Q2tYb6Xmg0lcVy/+dsaxVNxObPyvkF6rUiRkPICaKEuX+ewG6Y87/FXm+kOkMtmY28L13+T2YpVRRlPVr1+3o6nbGwf3RqKM9uHyM3i3TVnEndlsikRiu2IRwX0iKThDn6VXPcko3cyXORR2fgnX+QUi64LNRTm4D2zn/Eh/Ma3YokVi/dt3O3bu2bt+GabseO34skUg44+Cj0f7h6biviHzy/IVzcGEl0Dw6cXGgquqhI4cTiYQ7/NPW7duWaY2aprn3qHz/yOGj0eiqYlGiKtT1WfAks5xldgGKelbIcwvXZ+KNECL7Q1wY9EZ6GlQ1L5Tbmo52DGt6NNo/lEgM6/pgfPCruTThvZHIUGIIQ5s5EV4xUo1hGMFgEBOR4ZgA47IdOnK4NxIZiA0AwIbOjXmBUZ1rMTcMBl1/Jj6o6/qwrn//yGFFUXZ0dWNq1zUd7YUB3QZiMScw6t79+5wSILfR/MGOdgyatqOrO+GydwPBwLA+7LRiR1f39WpDe0fH6tY2TdMwSHsgGLwv1PR4bACDvG7dvg3fHkOJRG+kB7PNfnP3rkZNMwzDKT9vIxzOVjzc1Y05XQBgKDG0ZdNmPPmr27fhIyjsisILSdGJyxQnmKKDoiiF0RCnu3ElT3pnqMESA3aBCZ0oVGMGfMZlFprpxAfGYDy+pqM97yAqbjwe37p9WyKRCAQD+AeCLvd6Rdm7f59hGPcuv+euaKAlHEa1PnTkMDrt+6PRlnAYM3uiLKH4vfzaq1AsRHwgGMTy0eG/c/euYV3vj0ZRO1VVXd3ahgN0wzBWNq/A0OjuJmzZtPnQkcONmoYxzJ0SMJj5YDy+urUNY8duzY1L7m9e0RRqCgSDq1vbtm7fhlFlnIDwg/G4pmlOMw3DQDVd3dr2vb4DW7dvMwwDL8Qgr5hyrT8a1XX9sePHDMPIC1Nz6MjhGxcvcZQbBwSPHj+mKEpvJLJl02bM2FbYFYUXXqzuIIK4OJjllcYXpstdTFjYM5LhnJCTmT6FsdR5pIw7d6TERzgmVhSlUdPQIX802r+mox01bE1Hu5PurCUcbgqFMIiNoihbNm2GYmlDA8HgUCKBs8XOApdGTWvv6GgKhdBQxmzliqKsCrfkpYM7Gu13Yra3d3Q4nwaCQTyIWuieO+iNRBRF2dDZiYMDXCjQH402urx394WanGYGcpv2A8EAWtVOzHa81QZVxVzsg/E4xsOftOdXhVvwtEAw6LS6aFecV8hGJ4i8128uedr0x7sChH2BSpxwtDwXjl5Y09rABhgqTmTjv174U+nO8IVN9SoBYpptEs7Uhjw3jWzUtBFjpKjMV54CVdf1g30HnCRmWu7CeqXe8Y0dOnJ4dWub3qqjV9x9+fq163RdR1eB4xJ3zkElxtGAo4V5tQ/rurMIf9LbHozHD/YdQFscAB7q3Hiw70B7R8fjsYFCd0UphnUdzfS8ocnO3bu2bNr8YmLIcQZMiaJdQYpOEHNrv3ILwImbJk3nclTKKcmbmNmrX9iVGcrCpce24BkGAiSYQggU5/JsQHVrYpRQgUkqZuq1ENN6pCIbp3bK6wZwoYANwKdetQBhA7dBlrKxdac06poWTaGmo9H+PPlBA7RyN6+qqoWz44VDh0ePH3ugte1gX597kqs/GnX8z+5tKQ4YpLZwHOCuXdO0ChUUM586c+EA0BQK7ejqxqRnTaF9FTa5QVVxfUDe8ZZwGKcJ7gs1TdVPPmlXnA/I604QE7BsdsuUsJPCHgc7CXYSeBqEmY2Xfs7Es8gqN2bAxJOtcWEnhZ0EboLgFb2dMVuosGD6s9ocuC2EWZnwCBCcZRO/poWVEnYKphZwlGczodmZbIh1YVckeAJAWMDt6bZUZNOsVdixub7Fn2zWnKk6bPCGs3neKh+fZUd1QpjA7XKBY/MvNEGYlfZnAWty68XcJu+Orm7MRF5hIYFg0J2xu9CTj0dUVV0VbhmMD+YZu+iTx8yhRQVbVdWDfX2lyr8rGOiPRp2D5ZeFb9m0GZf0O0fQeb5l02Z07Ffe5KFEwtnLh5Xiv7h8Zxrb/CbtCrLRCeL8GecChYoJCzeeCSaJvJ3lzMNkTOiC71su7AzwTG7deC62ejbmuWMXln81CyYsISTgMkj21G3lrH5k025yKy8j+znihKLIObA0CBmYyZgMkleAACaDXHEsFG4KOwV2mmX11cqppqhAHZnAHQCSb8r+j2zq2Axwiwlrcs0TApgNwmQcBJOAm8DkbPa2CgcuwhLCAmExnovPP/mYAE1zYNlkbSBww4MkJn+4wgQ7k8t5b01D1BVFefT4MQzSgAu/E4nEzt27HIN7TUc7erzzknC72bp92/q16+5dfs+qcMtQYuiuYCBv/SmuRUd/gLOwHFkVDh/sO4BL2ZtCoaJKtnf/vvVr1w3GBwPBwGB8cEPnRrf52xIOv5gYunf5PS3hMGpqXhVuI3ggFmvUNMdbjkb2faGm/mi0vI+hcJyxc/eu9WvXYQ7yRCKxd/8+3Mevquqwrq/pyDf32zs6Hu7qDgaDD5bw7ZfqCveFs55IhvKjE5cvySON0oJbQa4GTw1j3olcZBNRQTBtSe4tLPmEXA1yVXYdOzfBTjF7/Nx84aju+IuTmswSdgqscZF+J5sf3VPD5GqQfBP5syU/yNXMUz3lWW1hg50UdorxFNjoBreAW0KYYI2DnZzIj+6pAeZhLBcRD3+Rq4RcA56aypKSAQgL7LSwx5k1Dtydi90GgWHe02CPZ/OjS9XgqWZSNThJaSWvkKtAqmKyfypxdkWu3hTj6Zy4Zq1ngd4ReyybH12qAskPsi+XrBZ72C8knyv3vHfyXhWmsNOQc2ZAdorBEsLOpn2zx3P50ZeAXAWSHyQvy8bJlyeyqTLPRCrVkllcBXATeOacLOl4xB4Ha6zC/Ohuw3cokcCFYEU/mtSHjKeVEv4yhVRYPs6XlzltMB5vUNVpaF5vJDJijExv5htjvzidpuv6iGGUmssv/2mZrpj0QlJ0gpieon8M5OqJVGPnbh9nE3OuDABArgFPnZCrAFOLCpNZY2CO5HzIAgDEOavHc4FcUNft9ISiyyhyMsvpDchV2eGCXDUFS13YwDPCToKdYnYS7BQIUzhGM7fATuUU/cqJRO+44V6SmVQNnjrhqQHJz+SqyXKKiFxm2DTYaWaPgTUmeGpiitqZdebJnKJXgezHAQTDnKpytZCrQfKDjMna5QqWDqCzHfU1zex0birEFjiY4BbwzISis1yKHexhCdOi+0H2CYYZ6L3ZdObFxRUzwzpujwzjGeBp4BmRHUzYuWamJxQ9mwM+F859IhWvO0W6j2XTyLojzIuJLO9Z69wEngFhAreEyICdATs5VUW/bMEdcd8/cli9LLPKkteduIzhtsicATBKSBgT52xSZ6xWZUxmjAnmBWEzngZrjCffBDt9joSXmiQWAsxxYachcxqYkc3J4bsCZD/zADCJMVkAEwAMbfdJo4cKnnNEowyYwNPCHgdrXJij2VXWwIWdYebYueHwGEheVnUVyFK2HOBCWIwzYKJ0vQIEz677y7ofGHAT0qeEnQLgE54JABC2yJwFGMHRA/PWC08tYzIImwlLYCJ5YCAJgLLrAYWYSPImLIaue2ELngF7HMwxYSdzOV6tXKUMgDG5Cjw1IPkFMJZrOJNBcCGAg8SZsHMCLE30J86YcAurA26ynNACWup2GnhKmKPZB20lhZ2BzJls+b75WQkXFkheJjhINgibCRskLoQthMWEncuhLuFtZ/PXcYthRcLEf3NDChOmnlb18gQjujzUuVG9XJPEk6ITly+eW/5qCup/KiFGX2XKMmAykzgIDnZKZE6J5FuepZ+b5oji7afF2OusbjFwzBeeNd2EEIxZFSi6EMKcUB2REcIEnhGjr0nX3s3q1DL18rOvsurrsjoEIAQHbolycu7oK88pHwbAl0XmLMgeedGnyjUzfYbJ1TnPgc2YLYQlOABwxuSS2dwnmmlN7CBA0QUBgotxvVRLrRcPSsqHcXJBMMay0XQEk7jAdf4sm+2UZcc66GLhzqa+3Nx5Bn0AWX0VGX4mIS/9AvPl+6LFqG6//hNWfwPzLQDhA24JyWLCB5IXy2TMK9CvwC2QPAyYQAeDcAZkWTl3aXkGrDE+eoLVXCPVqfQ3W55AMLimo6PyNYCk6ARx6eC97cuVnyxGTyR//Ces9kNM8mQ9pXZSjL7uve1vPEs/P70bEKMnUo/+Kau5XnAPpt1kXBKMARei0vVxnLmUIOuhlb2+u79V5pp07HNS/eJcsFuRU2iz0pzcQrDsHnTGmAw11/MzL3gav1Qocoj53LfsN36KNn42sbqwQDAAAXbFG/cFZ7gZLOv0zi5cl5d+rqgvWrpCyzy5QVp4K/BsxH7GsuHtmODAbJE10JmY8L3j8kasCLcwWDmJxRV5GTH6hrzoM76Pf634Pd72N5lffZ2//QtWqzLfFbmFdT6Goi7ZDGfiJQuERwBDfwBz2eXATeFMottJMf6mkL3eP/i7aX/HLjdFv9ytFPoSEEQlsLpFnsUr+ZmXmeQDYCBMYY4IJmbyqmV1i+QbPstPPc+YV7AMw/lmAJDsKZQyoTom8IwYG/be/rdlTrdPPs3PviItuJVls4sKEDbjU1xPI3Lb5JgEkofJVfYrP/I0fqnMBeesoeMWAwbMnlql3AbAbV2Tb+6SF33ac8tfWS/9f9K8m7J3IHGGtTMPSB7mLA+EXBZ7HCjgtH3WnWAKZ6jE0yL5FvjnlxktsbpF/j/5jn3yaeu33+JnXpLqFoGnFrgtJAski2HVwmbcys7io9ch6+HPCIEVoZYPCyvp/cOvkpYTpOgEcT5s+r9J/eQzovoqxmTBM2LsDc+SVbNRZoj5FgD3ZOdWeW7bU+XimhWeDNhJYSXLa4A19F1WfU1u/hiN3fQMWiABk1lNg/nSwbKKnrtVdGuDBHxaW9KzLnE+MaQo64MRo7o9/HNp3o2o1kJwJnmBYaQ8OSfnzjy6a05hYje5mV1znjwJnmp/6JFJ71G+9hPytY/YJ582/+1r4swJqW4ReOpA+HKT6xZIXhAeYFJuKsFxs2ewImGOeG7+yzJuD4Io8ddIEETFJrV0RaNIncLtUsI0JtewSsz0RZ8RmVM5Ixt3f6Wm8JNdF20CN8X4m55la8oJ4ugJ/vYvme+KrIwJG3h6+j/ZFVsM5CrIjFmv/Kisjc4nLPWptnGisSYILpzEcZPhu/tb3o/9NX//t2CdBTsFdhrj/wieAtwawNPZX+wk8FR24RtPCZ7EPfd4hI+8wubd7A89UrnEytd+ouqzP/P+wd/xzGkx8n/ANMAaxwBE7hqFPSasMbDGwRoT42/a7/271PCfqv7sX7y3fflikfPVrW29kUiZEwbj8RsXL7lg71/X9dWtbevXrps0yWlvJJIXKXbm9U4p3vukXU02OkFMxal165czT/418yliTJcXr5yVd+6Emc5kwaYVI1WICQO97CDDfO7brOoqkGQAIbg5yZK0KQxMZKnuQ/Yrj5R1D2BoPBPsGa/czm4IrGimwNP4Jbbglsy/rGPeOlZ7PQgvMA9wWTir3N1xYbNr3e3c4nlTZM6Ikdc9t/zVlFZdTNS+9POepZ+3XvmR+W8PM081q20AqVpk97BJEzMm6ffF2Al50Wf8f/o9VrfoA/yG90ejj8cG9u7fd4GUUx4nT9pMCtkT6ak87izZ6ARx6SBf+wlWfSWYhhjTvY1fnC3TX170GZE5jROo0/nhKcdALzPIEBnDfvOfWfU1IGAibO3Mf3gaBAe5mp/5vX3y6ZJjDhDA7axtOis1TuWpVf35U9KikP3eb8T4MNjjkA3xO37O/VjjYCfBQtt9XKTf5aefZ/75VSv/9/Tk3K3rVX/+lHzjF/jIq2L8RPYGrCTY4yL1Lj/1LPPPq/pszHf3t2ZFzg3DGIzH8yzOwXi8qDmYlxYMc5YUnuO2LCsJiVq0HF3XhwoSlkxaoO4qaiiRcJdgGEZho0q1tFTn6LruJKEp2j+F91w0l1rRM92tw6qdjzClrHujXWFXlG8L2egEMWMzvfGL5q++Jt+wYhZtKXnp5+wT/8S886aft0yISQ10a+g7zFsHwIGPn4+eYdVX2q88UiIKishGLJ9FhKg8PjzzKb6Pf83b+EXrlUesV49CZpT56pl3Hsj+czbscVNkDGEaILh8/Z/IH++araAuzKd4b/uyp/FL1tB3zOf/Qaq7gXlr+egJaf5N3nv7ZqsWwzD2RHowCXpvpAcTovRHo3siPRjS1TAMPNgbiRyN9jeoaiAYOBrtb9S0vfv39UejR6P9mIVsVbilJRy+cfGSRk0bSiRawmGMDqsoSqPWiIHT3QHV8wx0dzkoWuvXrlNVNZFIDOs65i/BPCuKoqiq+nBXN2Zkd5ezurUNw66pqvro8WOrW9uCwaCu67quHzpyeFjXH+7qxtPQyHZaOhAbWNPRXnh7O7q64/F4U6gJ47Bu3b4NU50O6/pgfDAvU8tgPI6nAUC9EsOENJgXzt1pjqsAc8UqioJha29cvCQQDGqalkgkhhLrMCotppzfu38fLsu/cfGSQ0cOYwLWLZs2q6raoDYc7Duwd/8+rL0p1DQQG9A0rVQoXFJ0gpiZoi/9vPnct+Xp7kEvZURKV3yUv/8fM5A323PL+vKzANbQd4BbIvXe+esc6/SL3tv+pnCsI0ZPiLE3Z706wTNTdYd4b/uy97Yv81Mv2Cd+xk8lwDzLx96E1PvgqZLm3QSyT158v3SFJi/69HkZ9KCuL/2c+dy37bef9n3iG7Nb0cG+vkQi4VYmlIrHjh/DmKPr167b0dWN8mAYxqP79ymKsiocvnf5PSjbhdqmqupjx48ZhrGjq1tRFNSwplDo/uYVmI+88DbyykG7c01HO8rYvcvv6Y9G2zs63AX2RiJ4MK+oEcP49W+fg1wKV5T8+5tX4Mlf3b5tdWsb1uJu6ZqOjpXNK/IUHePA42ACT1imNW7dvg0HQO4McpDL6uZIr/t4Xqc1atr6tese7GjHm1/d2oYHAeC+UBMevHf5PZALUG8YxtFof16xWzZtzruHRk177PgxAFjT0XHnrbet6WivJGosKTpBTBnfH31r1uNxVrKIeoZUtyY+kO5CEb2gnqB0xS3SFbd8ULWzukXlAwZMm6KpVBs1zRGDVeGWLZs274Rd4ErWgqpcal0YpvdWFGUgFnMsRSxzIBYr1OBSOBrWoKojhoH3tqajHfW+XlEejw0UlrYq3OIY7uiBGIjFDMMYKbjbgVhMVVXHs12vKIPxuFs4H48NYCIWbE5TKPR4bKCUm2EgFmtQ1cIN7oWdhh54VVWxXlVVsc/BlVq+QVUb1Ibc7w15CevQ2Z635kBRlMF4/Gi0H4uddNVe9otNb2eCmIZJTZ1AXICg1zfPxnUfQV/39Ao3CooamW5RToHD+vBgPD4Yj48YxqpwS5mTB+Pxlc0rrlcbHs35GwqteTwNf5pCTQ3n+g8Mw3DPl9cr9WW6YrigJ8u0AgAwGetgPN6gNkw10M2wrmN/ug8e6Otbv3bdfaGmKa37IxudIAjiEqFR03RdD5x75Gi03y350075lVf4sK43au0zvNu7goFSVnIeB/sOtITDaMQP6zpAoLA0gP4857kbTdOG9WGXjg5rpbsir9/KtwIAVoXD0w4mjyWgoe8c3BPpwTS4U1oZRzY6QRDEJcKajvY9kR7H9DQMAxdk9Uej+N+DfQfWdJST4frSRvyajvaDfQfwUyywTA7y+gqcAU2hpj2RHkexCheKF6U/GnVKRrsW/xsIBg3DcLZrF5b2YEf7QCyGx4cSiYFY7MHSXYFNO9DX5zbEi6IoSiAYxGTqUGL5fXkURWkJh3d0dRet63t9B8hGJwiCuOxoCYdxSRfqxIbOjYqm7d2/rzfSgxZnU6gJbeIGVdW0EefCQDCI6tgSDj8TH7y/eUVTqGlDZ6dzHHLr3ZzCnXlfTdMaCsxTdzlNoZDbEe2cj/Y0LnfHEUOe/8Bd8obOjevXrtN1vVFrdAYljZrW3tGxurVNVdW9+/cdOnK4N9Jzf/MKXD+/dfs2tytbVdWdu3c9nBPOnbt3oU1c9P4B4PtHDu/o6n48NuCUVqrT9u7ft6Ore3Vrm6Io2O3uT/OqcBfinLN1+7Y9kR4sAe8N1+EfjfavCrc4+/dK3aoD5UcnCIIgiEsB8roTBEEQBCk6QRAEQRCk6ARBEARBkKITBEEQBEGKThAEQRCk6ARBEMTlAyZHoX648KHdawRBEEQ+Q4mEYRi4j3x1axsA5KUmI0jRCYIgiIsAzBmKQWDQQJ92lFNizqCYcQRBEJcIg/G4ruvDuj6sD2MStv5o9PHYgDuAGmb00nXdyfWJmv29vgOJRELTtIc6Nw7EYsO6PhiH3khkVTg8rOu6rqvhcN6ZD3a0o8z3R6OKoui6/nhswH1c13WM87qmo71MyFhitqB5dIIgiEtH0bds2jyUGELxXt3a9mJi6NCRw3cFAxi9Fc95qHPj3v37jkb7MQr6YDz+QGvbfaGmQ0cO3xdqUhRF07R6RVFVFcOU4iAAFRrTih86cniZ1riyeQWa70ej/Vs2bdY0be/+fZinHOt6oLXtrmBg7/59FeYxI0jRCYIgiCwY4Xzr9m2D8fiwrmNGc4z3juq7obMTk3krioKJug/2HVgVbsEpc/wXs4BjYlC3GH+v70AgGMTI8C3hcCAYdPKI4H8VRXFSniPPxAcxlwk9GlJ0giAIYgo4mTwwydjq1jb8GdZ1zMN9oK/v3uX3YAISPHMgFqtQcROJRKPW6Py3UWtM5FKcuVOPO+zdv28gFlu/dp0xs0zqRIXQPDpBEMQlSL2iNGpa3gL1wXh8T6Tn0JHDjZrWG4mgjV65S7zwzPLX4g18ZdPmHV3d6C0gyEYnCIIgpkYwGMSFcnmK3qhpmLR0IDaAB5tCIZwmn5T7Qk3OVVjCfaGm8pc0atqGzo1Ognba106KThAEQUyNRk1rCYcfaG3rj0Yd13cgGBxKJAZisS2bNiuKgs7whzo3DsbjvZHIYDx+oK8PZ8EDwcBAbGAwHh/K+dUBAGfQt2zajEvwnCNFGUokVre2Dcbjj8cGcKH7lk2bVzavoEdz/qD96ARBEJcIuq6PGAaa4I6sxuNxNMRxR9lgPD4Yj68KhxVFGUokcAbdMAwU70Aw6MypD8RiQ4nEqnAYANzF4vFGTXM2pA0lErg2HotyisXRg3PmUCKh6zptYyNFJwiCIAiiHOR1JwiCIAhSdIIgCIIgSNEJgiAIgiBFJwiCIAiCFJ0gCIIgSNEJgiAIgrjQ+P8HAAxV2JNHzGSsAAAAAElFTkSuQmCC
Those who carry out the [[penalty]] tend to become an [[autonomous]] [[sector]]; [[justice]] is relieved of responsibility for it by a bureaucratic concealment of the penalty itself.
[[DnP p8-1]]
One no longer touched the [[body]] or at least as little as possible, and then only to reach something other than the body itself.
[[DnP 10-1]]
[[representation]] as the site of application for the [[punishment]]s dreamt up by the reformers
[[DnP p126-1]]
...one might imagine a political [[anatomy]]... one would be concerned with the '[[body]] politic', as as set of material [[element]]s and [[technique]]s that serve as [[weapon]], [[relay]]s, [[communication]] routes and supports for the [[power]] and [[knowledge]] relations that [[invest]] human bodies and [[subjugate]] them by turning them into [[object]]s of knowledge.
It is a question of situating the techniques of [[punishment]]... in the history of the body politic; of considering penal practices les as a consequence of legal theories than as a chapter of political anatomy
[[DnP p28-1]]
Tie to [[liquidation]] [[Baudrillard]]
liquidation of the body into signs; of punishment from the future, into the mind when weighed against the crime?
[[DnP p106-1]]
Very much a [[function]] of the [[control societies]]
[[DnP p108-1]]
relationship of the whole new army of technicians to the prisoner: relationship of the whole new army of devices to the consumer, as well as the institution of a new body: we go from the physical body in the sovereign, the aim at 'something other than the body' in the disciplinary: what do we aim at in the [[control societies]]? [[Stiegler]] points at things lke the ecology that is the [[human]] m[[mind]], [[art]], [[culture]]; Yet I think that by their very nature, and by Stiegler's Thesis in T&T there is something different.
Stiegler's theory of [evolution]] demonstrates how the new body that is the human body relies on [[language]] and [[technology]]; the meeting of [[organic]] and [[organized]] [[inorganic]] [[matter]] make the human. We give technology a body; in the control society that is now different; the advent of the [[digitus]] is a [[device]]-driven reality whereby technology turns around, [[efface]]s the body we have given it. It now gives us a new body, instituting something else entirely; the [[dividual]] is only a body part of the new body. The massive (un)concealed [[force]] is another.
Task: find a new, cooler name for the conceptualization of that force.
[[DnP p11-2]]
Deprive of rights, don't inflict pain, impose penalties free of pain.
What of the [[digitus]]? Deprive of [choice, image-thought? There's a thinking of the [[digitus]] that needs to be critiqued, an inherence of an image thought that needs to be drawn out]. Don't inflict [knowledge of the digitus? A critique of the hidden-in-plain-site nature of the plane of the digitus? Don't inflict, but mold? Don't inflict, modulate?] impose penalties free of [realizing they are penalties? The very nature of the digitus as having its installment be a penalty? The violence it inflicts is not on its environment (consciousness systems, prior societies) but rather in a destruction of the Other environments; the environments of the Other? Outside of using my [[device]]s there really not all that much to do anymore].
Digitus as making use of the '[[damned of industry]]'- the overpresence of drug manufacturing means that we now manufacture addiction. Global consumerism means we produce slave labor. Frictionless languages in the digital produce not the illiterate, but the anti-literate.
[[DnP p11-3]]
A new [[body]], one that possesses rights; a new punishment to go with it; both of these are constituted in relation to the law
What are the new bodies of the [[digitus]]? What are its new possessions? What law are the constituted in connection with? [[marketing]] is the new form of [[social]] [[control]] and all that...
[[DnP p13-2]]
marketing, the smallest social unit as being a [[consumer]], the role of the digital in constituting [[power/knowledge]] in the [[control societies]] and so on...
[[DnP p168-1]]
What is functioning at the heart of any control system? of any piece of the digitus ([[digitus]]-[[assemblage]]?)
[[DnP p177-2]]
Everything comes to be converted into the light of surveillance and punishment; a function of classification here vs generation in the [[control societies]]? An unending, always referred to another, higher master in the Discipline Society vs the internalization of the master in the control society? Classification of behavior by surveillance, vs generation of data by surveillance. Repressive surveillance vs enjoyable surveillance. To enjoy and be a part of this society is to be surveilled
[[DnP p178-1]]
The goals of the formulation of the discipline [[society]] [[body]]; what telos does the body of [[control societies]] have written in the knowledge which serves as its very constitution?
D&G disagree with [[Foucault]]'s tracing this out as [[power]] and rather trace it out as [[desire]]; what does this say for doing an analytic of my own?
[[DnP p25-1]]
[[punctual]] [[system]] of the [[disciplinary society]]; the becoming-linear of the [[control societies]]? Bring in the line about a becoming that expands in both directions, past and present, from Logic of Sense? The acceleration of [[time]] in a control society; we are increasingly cut off from the past; is this a new [[line]] of [[becoming]] that exists in /of/from the [[digitus]]? A [[line of conversion]] inherent to the [[process]]es through which it comes to be [[actual]]ized?
The DS seems to want to progress in certain respects, increase points, increase [[resonance]] of the points; the CS seems to want a permanent instability, a time that never ends; an appropriation of the [[Aion]] of becoming? A destruction of Chronos? And [[indefinite postponement]] that evades the past, forces you to be actualized at every moment, on every screen (especially the one in your head), all the while eating up the future in the same (yet inexorably different) manner from which it separates you from the past.
[[conversion]]
Goes on to describe how the king couldn't regulate; in this [[modulation]] of power, do we see the first inklings of the [[control societies]]? an installment of the birth of [[control]]? The manner in which [[mechanism]]s/[[assemblage]]s have come to cede human control in favor of a series of cybernetic control? Perhaps bring in [[Luhmann]] and [[autopoiesis]] here to demonstrate the increasingly non-human [[element]]s that are appearing)
[[DnP p79/80-1]]
'down to the finest grain of the social body'
DP as [[rigid]]ifying the social body vs how the body of the [[control societies]] is establishing a new digital body, (the body of the [[digitus]]?) and entirely new ways of having/being a body that come with it. At this point mention the [[A Thousand Plateaus]] reading of DnP? switching from [[power]] to [[desire]]?
Bring in their thoughts on [[subjectivity]] [[subjectification]] [[subjection]]; a theory of subjectivity that sees it as existing at the impersonal level of the [[assemblage]] first, then subjectivity second. Bring in something of [[Guattari]]'s solo works with regards to subjectivity here?
[[DnP p80-1]]
This is an example of a [[tendency]] in the disciplinary societies that gets carried over into the control societies, rather than how disciplinary [[mechanism]]s remain as such in the new interminglings with these societies of control
[[DnP p87-1]]
[[Foucault]] doesn't realize that it is not simply [[coextensive]], but that the [[mechanism]s through which this [[function]] emerges are both coextensive with and [[precondition]]s for the [[emergence]] of the [[body]] that is being exploited, punished, surveilled and controlled; these reforms are presented as pushed for by individuals as opposed to the [[autopoiesis]] of the [[society]]; the logic of the [[control societies]] is still operating here, [[emergent]] yet concealed. For here, as in the control society, the [[human]]s on all sides are controlled, not in control.
[[DnP p90-1]]
The body, the imagination, the heart to be respected are not, in effect, those of the criminal that is to be punished, but those of the men who, having subscribed to the pact, have the right of exercising against him the power of assembly. mechanism? A mechanism, rather.
[[DnP p91-1]]
One man's idea of [[slavery]] as the replacement for the [[death]] penalty; modern prisons?
an [[assemblage]] that is a [[network]] designed with a principle of [[contagion]] in mind; the shift of this [[body]] behind the body as the birth of this [[neo-body]] that becomes, in a sense, the environment of the [[digitus]]/[[control societies]]. Establishment of [[vector]]s similar to that of the [[order-word]]; the minimum amount of punishment to spread the [[statement]]; establishing networks that allow for a [[flow]] of these statements, and all sorts of other flows birthed by this flow. "...the [[link]] from one to the other must be regarded as necessary and unbreakable." bottom of (95)
[[DnP p94/95-1]]
Birth of widespread [[transparency]]. Necessity of mass [[data]] [[process]]ing. [[Baudrillard]] and his [[liquidation]] are in the wings with this. [[surveillance]] of the socius vs a [[digitus]] that produces its own objects of surveillance and data on them.
[[DnP p96-1]]
[[crime]] became less violent long before [[punishment]] less severe. But that [[transformation]] cannot be separated from several underlying [[process]]es...
[[DnP p75-1]]
exercise of [[power]] on and the establishment of the [[soul]] "And we can see very clearly what he meant bu this term [soul]: the correlative of a [[technique]] of power." [[punishment]] as in "the mind or rather a [[play]] of [[representation]]s and [[sign]]s circulating discreetly but necessarily and evidently in the [[mind]]s of all."
[[power/knowledge]] and [[crime]] at the bottom of the page
[[DnP p98-2]]
This [[complex]] of [[sign]]s must engage with the mechanics of force
[[DnP p101-1]]
Consequently, one must use a temporal [[modulation]]. The penalty transforms, modifies, establishes [[sign]]s, arranges obstacles. What use would it be if it had to be permanent?
[[DnP p106-1]]
For the [[convict]], the [[penalty]] is a mechanics of [[sign]]s, interests and duration. But... [[punishment]] is above all directed at the others, at all the potentially guilty. So these obstacles-signs that are gradually engraved in the [[representation]] of the condemned man must therefore [[circulate]] rapidly and widely... they must shape the [[discourse]] that each [[individual]] has with others...
...everyone must see [[punishment]] not only as natural, but in his own interest; everyone must be able to read in it his own advantage (109)
[[DnP p107-1]]
Thus the [[convict]] pays twice; by the [[labor]] he provides and by the [[sign]]s he produces... the convict is a focus of [[profit]] and [[signification]]
he is a [[vector]] for the [[transmission]]/[[contagion]] of signs ([[particles-signs]]??), continues on next page
[[DnP p108-1]]
The [[body]] now serves as an [[instrument]] or [[intermediary]]: if one intervenes upon it to [[imprison]] it, or to make it [[work]], it is in order to deprive the [[individual]] of a [[liberty]] that is regarded both as a [[right]] and as [[property]]... As a result of this new restraint, a whole [[army]] of [[technician]]s took over from the executioner, the immediate anatomist of pain [lists them] by their very [[presence]] near the [[prisoner]], they sing the praises that the law [[need]]s: they reassure it that the [[body]] and [[pain]] are not the ultimate objects of its punitive [[action]]
[[DnP 11-1]]
A very usable quote: here's a snippet: "A [[utopia]] of judicial reticence: take away [[life]], but prevent the [[patient]] from feeling; deprive the [[prisoner]] of all rights, but do not inflict [[pain]]; impose [[penalty]]s free of pain. Recourse to psycho-pharmacology and to various physiological 'disconnectors'., even if it is temporary, it s a logical consequence of this 'non-corporal' penalty
[[DnP p11-2]]
The publicity of [[punishment]] must not have the physical effect of terror; it must open a book to be read.
[[DnP p109-1]]
...obstacle-[[sign]]s... will [[circulate]] in men's [[discourse]]. The positive [[mechanic]]s will [[operate]] to the full in the [[language]] of every day, which will constantly reinforce it with new accounts. Discourse will [[become]] the vehicle of the [[law]]: the constant principle of universal [[recoding]]
[[overcoding]]?
[[code]]
[[DnP p111-1]]
[in the prison] A whole corpus of individualizing [[knowledge]] was being [[organ]]ized that took as its field of reference not so much the [[crime]] committed (at least in its isolation), but the [[potential]]ity of danger that lies hidden in an [[individual]] and which is manifested in his observed everyday conduct, The [[prison]] [[function]]s in this as an [[apparatus]] of knowledge.
[[DnP p112-1]]
The previously developed theory of an open, representational form of [[punishment]] is contrasted with two other [[mechanism]]s of [[power]] and its exercise, bringing us into the [[prison]]-[[assemblage]]; [[secrecy]] and [[autonomy]] reign supreme in this one.
[[DnP 127-1]]
([through the [[guillotine]]) Death was reduced to a visible, but instantaneous [[event]]. Contact [[between]] the [[law]]. or those who carry it out, and the [[body]] of the [[criminal]] is reduced to a split second. There is no physical confrontation...
c.f. [[DF p48-2]] and the use of the term 'seeing'
[[control societies]] and their [[indefinite postponement]] vs these [[temporal]] [[linear]] [[proceeding]]s; the execution, and the movement from criminal->condemned to death->death represents parts of that [[series]] of [[rigid]] [[segment]]s.
[[DnP p11-2]]
The [[guillotine]]... is intended to apply the [[law]] not so much to a [[real]] [[body]] capable of feeling pain as to a juridical [[subject]], the possessor, among other [[right]]s, of the right to exist. It had to have the abstraction of the law itself.
[[DnP p13-1]]
To begin with, there was the [[scale]] of the [[control]]: it was a [[question]] not of treating the [[body]], en masse, wholesale, as if it were an indissocialbe unity, but of working it retail, [[individual]]ly; of the exercising upon it a subtle [[coercion]], of obtaining holds upon it at the level of the [[mechanism]] itself - [[movement]]s, [[gesture]]s, [[attitude]]s, rapidity: an infinitesimal [[power]] over the active body. Then there was the [[object]] of the control: it was not or was no longer the [[signifying]] [[element]]s of [[behavior]] or the [[language]] of the body, but the [[economy]], the efficiency of [[movement]]s, their internal organization; constraint bears upon the [[force]]s rather than upon the [[sign]]s; the only truly important ceremony is that of exercise.
Lastly, there is the [[modality]]: it implies an uninterrupted, [[constant]] coercion, supervising the [[process]]es of the activity rather than its result and it is exercised according to a codification that partitions as closely as possible [[time]], [[space]], and [[movement]]. These methods, which made possible the meticulous control of the [[operation]]s of the body, which assured the constant [[subjection]] of its forces and imposed upon them a [[relation]] of docility-utility, might be called '[[discipline]]s'. Many [[disciplinary]] methods had long been in existence - in monasteries, armies, workshops. But in the course of the 17th and 18th centuries the disciplines become general [[formula]]s for [[domination]].
[[DnP p128/135-1]]
...the formation of a [[relation]] that in the [[mechanism]] itself makes it more obedient as it becomes more useful... the human [[body]] was entering a [[machine]]ry of [[power]] that explores it, breaks it down, and rearranges it... let us say that [[disciplinary]] [[coercion]] establishes in the body the constricting link between an increased aptitude and an increasing [[domination]].
[[political anatomy]]
[[DnP p136/137-1]]
The '[[invention]]' of this new [[political anatomy]] must not be seen as a sudden discovery. It is rather a [[multiplicity]] of often [[minor]] [[process]]es, of different origins and scattered location, which overlap, repeat, or [[imitate]] one another, support one another, distinguish themselves from one another according to their [[domain]] of application, [[converge]] and gradually [[produce]] the [[blueprint]] ([[diagram]]?) of a general [[method]].
[[DnP p138-1]]
[[discipline]] sometimes requires [[enclosure]], the specification of a place [[heterogenous]] to all others and closed in upon itself.
Locked in, and often with guards; no one in or out except at appointed times.
[[school]] [[factory]] [[workshop]] [[barracks]] [[hospital]]
[[DnP p138-2]]
The principle of [[enclosure]] is neither [[constant]], nor indispensable, nor sufficient in [[disciplinary]] [[machine]]ry. (we need) [[partitioning]]. Each [[individual]] has his own place; and each place its individual. Avoid [[distribution]]s in [[group]]s... Disciplinary [[space]] tends to be divided into as many sections as there are bodies or [[element]]s to be distributed... its aim was to establish [[presence]]s and [[absence]]s, to know where and how to locate individuals, to set up useful [[communication]]s, to interrupt others, to be able at each moment to supervise the conduct of each individuals, to assess it, to judge it, to calculate its qualities or merits. It was a procedure therefore, aimed at knowing, mastering, and using. [[discipline]] [[organize]]s an analytical space...
Even if the [[compartment]]s it assigns [[become]] purely ideal, the disciplinary space is always, basically, [[cell]]ular.
[[DnP p141-1]]
[[disciplinary]] [[space]] and the establishment of [[power center]]s [[power]] [[center]]s, [[rigid]] [[segmentarity]] [[molecular]] [[quanta]] [[flow]]s
birth of [[data]] [[processing]]? [[dividual]]s? [[conversion]]s of flows of people and goods, and crime and... to data
[[DnP p143-1]]
The [[trace]] of [[torture]] that still exists in [[mechanism]]s of [[punishment]], and the use of pain in still-contemporary practices of [[prison]] as being that trace. Later, the idea of punishment as being now of the [[soul]] rather than of the body. the [[new body]]
17-18 [[content]] [[expression]] but really an excellent demonstration of how a new [[form]] of [[law]] needs a new [[substance]] ([[object]]s) to work over.
[[DnP p13-2]]
The [[body]]... opposes and shows the conditions of [[function]]ing proper to an [[organism]]... not only analytic and [[cell]]ular, but also natural and [[organic]].
This and p155 are excellent [[summary]]s of the body as it appears in this text up to this point.
[[DnP p144-1]]
The [[examination]] is introduced.
[[DnP p156-1]]
162-here is great; a new demand appears to which [[discipline]] must respond: to construct a new [[machine]] whose [[effect]] will be maximized by the concerted [[articulation]] pf the elementary parts of which it is composed. Discipline is no longer simply an art of distributing [[body]]s, of extracting [[time]] from them and accumulating it, but of composing [[force]]s in order to obtain an efficient machine. This demand is [[express]]ed in several ways...
[[assemblage]] [[mechanism]]
[[DnP p158-1]]
The [[body]] is constituted as a part of a multi-[[segment]]ary [[machine]]
[[DnP p164-1]]
There is not a single moment of [[life]] from which one cannot [[extract]] [[force]]s, providing one knows how to [[differentiate]] it and [[combine]] it with others.
[[DnP p164-2]]
[[order-word]]s
[[DnP p165-1]]
To sum up, it might be said that [[discipline]] creates out of the [[body]]s it controls four types of [[individual]]ity, or rather and individuality endowed with four characteristics: it is [[cell]]ular (by the play of [[spatial]] [[distribution]]), it is [[organ]]ic (by the [[code]]ing of activities), it is [[genetic]] (by the [[accumulation]] of [[time]]) it is [[combinatory]] (by the [[composition]] of [[force]]s)
And, in doing so, it [[operate]]s four great [[technique]]s: it [[draw]]s up [[table]]s, it prescribes movements; it imposes exercises, lastly, in order to obtain the combination of forces, it arranges [[tactic]]s...
[[DnP p166-1]]
In the great 18th century [[State]]s, the army guaranteed civil peace no doubt because it was a real [[force]]., an ever-threatening sword, but also because it was a [[technique]] and a [[body]] of [[knowledge]] that could project their [[schema]] over the [[social]] body.
[[power/knowledge]]
[[DnP p167-1]]
Last paragraph here is great
[[DnP p168-1]]
The [[power]] in the hierarchized [[surveillance]] of the disciplines is not possessed as a thing, or transferred as a property; it functions like a piece of [[machine]]ry.
[[DnP p169-1]]
At the [[heart]] of all [[disciplinary]] [[system]]s functions a small [[penal]] [[mechanism]]
[[DnP p177-1]]
The [[discipline]]s established an '[[infra]]-penality'; they partitioned an area that the laws had left empty; they defined and repressed a mass of behavior that the relative indifference of the great [[system]]s of punishment had allowed to escape.
[[DnP p177-2]]
The birth of the [[norm]].
[[DnP p178-1]]
The [[examination]] as an [[example]] of [[power/knowledge]]; exercise of [[power]] creates the [[document]]s of knowledge, job interviews, pupil histories, grades. [[trace]]. creation of [[strata]].
[[DnP p184-1]]
Different [[discipline]]s and their [[strata]] are shown as being born of the [[power/knowledge]] of the [[examination]]. Their progress is borne of these strata.
[[DnP p185-1]]
"to brand," "to alter," as the two fundamental [[operation]]s of [[discipline]] that still exist today, in [[control societies]]
[[DnP p189-1]]
"Hence the major effect of the [[Panopticon]]: to induce in the inmate a state of conscious and permanent visibility that assures the automatic [[function]]ing of [[power]]."
Let's follow the advice from [[A Thousand Plateaus]]
"Hence the major effect of the [[Panopticon]]: to induce in the inmate a state of conscious and permanent visibility that assures the automatic [[function]]ing of [[desire]]."
A perfect point of entry for [[control societies]]
[[DnP p199-1]]
...[[knowledge]] follows the advances of [[power]], discovering new objects of knowledge over all the [[surface]]s on which power is exercised.
[[power/knowledge]]
[[DnP p201-1]]
The [[police]] as a [[control]] [[system]]. [[apparatus]]? Something which linked together varied [[disciplinary]] apparatuses and ensured them within a 'meta-[[discipline]].'
[[automatic]] control
[[feedback]]
[[DnP p204-1]]
By studying only the general [[social]] [[form]]s... one runs the risk of positing as the principle of greater leniency in [[punishment]] [[process]]es of [[individual]]ization that are rather one of the [[effect]]s of the new tactics of [[power]], among which are to be included that new penal [[mechanism]]s.
He then outlines the 4 general rules of this text.
[[DnP p15/-1]]
...we can surely accept the general [[proposition]] that, in our societies, the [[system]]s of [[punishment]]s... even when they use lenient methods... it is always the [[body]] that is at issue.
goes on to describe the [[relation]] of the body to [[society]] and its goals
[[DnP p23-1]]
Something is there in the top paragraph but I don't know what it is
[[DnP p25-1]]
We should admit rather that [[power]] produces [[knowledge]] (and not simply by encouraging it because it serves power or by applying it because it is useful); that power and knowledge directly imply one another; that there is no [[power-relation]] without the correlative constitution of a field of knowledge, nor any knowledge that does not presuppose and constitute at the same time power relations
[[power/knowledge]]
[[DnP p27-1]]
In short, it is not the activity of the [[subject]] of [[knowledge]] that produces a corpus of knowledge, useful or resistant to [[power]], but [[power/knowledge]], the [[process]]es and struggles that traverse it and of which it is made up, that determines the [[form]]s and possible [[domain]]s of knowledge.
[[DnP p27-2]]
The birth of the [[soul]] of the modern [[body]] as a result of these varied [[mechanism]]s, [[power/knowledge]] and other bits; "the soul is the effect and [[instrument]] of a political anatomy; the soul is the [[prison]] of the body."
[[DnP 28-2]]
A paragraph here acts as a [[summary]] of how the [[sovereign]] [[society]] constitutes the [[body]] through its [[mechanism]]s.
[[DnP p29/30-1]]
[[truth/power]] relationship of the [[sovereign]], does this become the [[power/knowledge]] relationship of the [[disciplinary society]]
[[DnP p48-1]]
The discovery of a [[humanity]] inside of [[man]]; the [[soul]] in the [[body]]. The [[State]] must now respect the humanity of the [[criminal]].
"The 'man' that the reformers set up against the [[despot]]ism of the scaffold has also [[become]] a 'man-[[measure]]': not of things, but of [[power]]
[[DnP p55-1]]
...the double movement by which, during this period [17th-18th century], [[crime]]s seemed to lose their [[violence]], but at the cost of greater [[intervention]]... one observes a considerable diminution in [[murder]]s and, generally speaking, in physical acts of aggression; offences against [[property]] seem to take over from crimes of violence...
criminal [[group]]s become smaller
[[DnP p74-1]]
... the s[[shift]] from [[criminal]]ity of blood to a criminality of [[fraud]] [[form]]s part of a whole complex [[mechanism]]. embracing the development of production, the increase of [[wealth]],a higher juridical and more value placed on [[property]] relations, stricter methods of [[surveillance]], a tighter partitioning of the population, more efficient [[technique]]s of locating and obtaining [[information]]: the shift in [[illegal]] practices is correlative with an [[extension]] and a refinement of [[punitive]] [[practice]]s.
Was this general change of attitude, a 'change that belongs to the domain of the [[spirit]] and the [[unconscious]]'... Perhaps, but more certainly and more immediately, it was an effort to adjust the mechanisms of [[power]] that frame the everyday lives of [[individual]]s; an adaptation and a refinement of [[machine]]ry that assumes responsibility for and places under surveillance their everyday behavior, their [[identity]], their activity, their apparently unimportant [[gesture]]s; another policy for that [[multiplicity]] of [[body]]s and [[force]s that constitutes a [[population]]. What was emerging no doubt was... a [tendency]] toward a more finely tuned [[justice[[, towards a closer penal [[map]]ping of the social [[body]].
Following a circular [[process]], the [[threshold]] of the [[passage]] to violent [[crime]]s rises, intolerance to economic offences increases, [[control]]s [[become]] more thorough, penal [[intervention]]s at once more premature and mroe numerous.
[[DnP p 76-1]]
About the transition from the [[sovereign]] to the [[disciplinary society]], The paralysis of [[justice]] was due not so much to a weakening as to a badly [[regulated]] ([[control]]ed?) [[distribution]] of [[power]], to its [[concentration]] at a certain number of [[point]]s and to the conflicts and discontinuities that resulted.
[[DnP p77/78-1]]
...and the [[tendency]], which has become increasingly marked since the nineteenth century, to adapt punishment to the individual offender... The [[body]] as the major target of penal [[repression]] disappeared
The true objective of the reform movement...was not so much to establish a new [[right]] to [[punish]] based on more equitable principles, as to set up a new [[economy]] of the [[power]] to punish, to assure its better [[distribution]], so that it should be neither too concentrated at certain privileged [[point]]s, not too divided between [[opposing]] [[authority]]s; so that it should be [[distribute]]d in homogenous [[circuit]]s capable of operating everywhere, in a continuous way, down to the finest grain of the social [[body]].
[[DnP p79/80-1]]
...to insert the [[power]] to [[punish]] more deeply into the social [[body]]
[[DnP p80-1]]
...the illegality of rights were reduced by [[force]] to an [[illegal]]ity of [[property]]... the [[economy]] of illegalities was restructured with the development of [[capitalist]]...
bottom of pagge
It became necessary to define a [[strategy]] and [[technique]]s of [[punishment]] in which an economy of continuty and permanence would replace that of [[expenditure]] and [[excess]].
[[DnP p82-1]]
The [[power]] of the [[sovereign]] and the [[illegal]]ties therein are [[double]]s of each other.
[[DnP p87-1]]
A [[penal]] [[system]] must be conceived as a [[mechanism]] intended to [[administer]] [[illegality]]s differentially, not to eliminate them all.
Shift the [[object]] and change the [[scale]]... This paragraph is excellent but you should pick one or two specific liens from it for the reading, rather than the paragraph in its entirety.
[[DnP p88-1]]
[[penal]] [[punishment]] is therefore a [[function]] [[coextensive]] with the function of the social [[body]] and with each of its [[element]]s. This gives rise to the [[problem]] of the [[degree]] of punishment, the [[economy]] of the [[power]] to [[punish]]
the [[desire]] to punish
[[DnP p89-1]]
The principle of moderation in [[punishment]]... is articulated first as [[discourse]] of the heart...
bottom of the page
The [[body]], the imagination, the heart to be respected are not, in effect, those of the [[criminal]] that is to be [[punish]]ed, but those of the men who, having subscribed to the [[pact]], have the right of exercising against him the [[power]] of assembly. [[mechanism]]? A mechanism, rather.
[[DnP p90-1]]
The idea of punishing humanely someone 'outside nature' in a humane fashion; bring in [[Mbembe]] here, not necessarily here as in in this order but here as in on this quote; his idea of the establishment of the [[border]] and [[camp]] as political hotspots today; the establishment in the [[control societies]] (and disciplinary) of a true outside, where their is no humanity to be found.
The 'ultimate [[crime]]' that 'is doomed to disappear without a [[trace]].' Bring in [[Baudrillard]] here; [[the perfect crime]]?
[[DnP p91-1]]
...the [[pain]] at the heart of [[punishment]] is... the 'pain' of the idea of 'pain'. Punishment has to make use not of the [[body]] but of [[representation]]... (94) The penalty must have its most [[intense]] [[effect]]s on those who have not committed the [[crime]]... (95) One man's idea of [[slavery]] as the replacement for the [[death]] penalty; modern prisons?
an [[assemblage]] that is a [[network]] designed with a principle of [[contagion]] in mind; the shift of this [[body]] behind the body as the birth of this [[neo-body]] that becomes, in a sense, the environment of the [[digitus]]/[[control societies]]. Establishment of [[vector]]s similar to that of the [[order-word]]; the minimum amount of punishment to spread the [[statement]]; establishing networks that allow for a [[flow]] of these statements, and all sorts of other flows birthed by this flow. "...the [[link]] from one to the other must be regarded as necessary and unbreakable." bottom of (95)
[[DnP p92-1]]
Hence the idea that the [[machine]]ry of [[justice]] must be duplicated by an [[organ]] of [[surveillance]]...
[[DnP p94/95-1]]
The [[legal]] [[ritual]] in itself no longier generates a divided [[truth]]. With the [[multiplicity]] of scientific [[discourse]]s, a difficult, [[infinite]] relation was then forged that penal justice is still unable to [[control]]. The master of justice [judge/legal system] is no longer master of its [[truth]].
[[structural coupling]] [[coupling]] loss of control over human [[destiny]] at the hands of the [[technic]]al
[[DnP p96-1]]
...all offences must be defined; the must be classified and collected...
[[data]] [[process]]ing
[[DnP p98-1]]
[[technology]] is the [[essence]] of this [new] [[knowledge]]. It aims to [[produce]] neither [[concept]]s nor [[image]]s, nor the [[joy]] of [[understand]]ing, but method, [[exploit]]ation of the [[labor]] of others, [[capital]]. The "many things" which, according to [[Bacon]], knowledge still held in store are themselves mere [[instrument]]s: the [[radio]] as a sublimated printing [[press]]... more follow
[[Dialectic of Enlightenment]]
B-A BA
Made up of the [[first articulation]] and, of course, the [[second articulation]]
[[content]] then [[expression]]
!!Download
*Download a copy of Stroll with the tutorials included:
**Click the <<icon {{$:/core/images/save-button}} "">> icon in the sidebar of this file, and follow instructions.
*Download an empty copy of Stroll:
**Open https://giffmex.org/stroll/empty.html, click the {{$:/core/images/save-wiki}} icon in the sidebar in that file, and follow instructions.
!!Saving changes
*There may be a few steps involved for you to get Stroll to save changes the way you want it to. And everything depends on which browser you use and whether you use Stroll as a single file wiki, hosted online, with the ~TiddlyDesktop, or with node.js. See ~TiddlyWiki's documentation [[here|https://tiddlywiki.com/#GettingStarted]].
[[repetition]] as a conduct and as a [[point of survey]] concerns non-[[exchange]]able and non-[[substitute]]able [[singularity]]s... If exchange is the criterion of [[general]]ity, [[theft]] and [[gift]] are those of repetition. To [[repeat]] is to [[behave]] in a certain manner, but in [[relation]] to something [[unique]] or [[singular]] which has no [[equal]] or equivalent... [[Monet]]'s first water lily which repeats all the others.
..neither one of these two [[center]]s is the [[ego]]... In fact the [person/self] is constructed within a double [[series]]: on the basis of the [[passive synthesis]] of [[connection]] and on the basis of the [[bound]] [[excitation]]s. Both series are [[object]]al: one series comprises [[real]] objects which serve as correlates of [[active synthesis]]; the other [[virtual]] objects which serve as correlates of an [[extension]] of [[passive synthesis]].
...the fact that the two series cannot exist without each other indicates not only that they are [[complement]]ary, but that by virtue of their dissimilarity and their [[difference]] in kind they borrow from and feed into one another... the virtual object is a [[partial]] object... the virtual is never [[subject]] to the [[global]] character which [[affect]]s real objects. it is-not only by its [[origin]] but by its own [[nature]]-a [[fragment]] a shred or a remainder. It lacks its own [[identity]].
[[DR p99-1]]
Whereas [[active synthesis]] points beyond [[passive synthesis]] towards [[global]] [[integration]]s and the supposition of identical totalizable [[object]]s, [[passive synthesis]], as it develops points beyond itself towards the [[contemplation]] of [[partial]] objects which remain non-totalizable... these virtual objects are incorporated in the real objects...it does not become [[integrate]]d: it... testifies to the other virtual [[half]] which the real continues to lack...they are planted in it like trees from another [[world]], like [[Gogol]]'s nose...
[[DR p100/101-1]]
Although it is deducted from the [[present]] [[real]] [[object]], the [[virtual]] object differs from it in kind, not only does it lack something in [[relation]]] to the real object from which it is subtracted, it lacks something in itself, since it is always half of itself, the other half being different as well as [[absent]]. This... is the [[opposite]] of a [[negative]]. Eternal half of itself, it is where it is only on [[condition]] that it is not where it should be.
similar to the [[aleatory point]]
[[DR p101-1]]
it is true that the [[unconscious]] [[desire]]s, and only desires.
[[DR p102-1]]
The [[problem]]s concern the [[eternal]] [[disguise]]; [[question]]s, the eternal [[displacement]].
[[repetition]]
[[DR p106-1]]
the [[active synthesis]]... posits [[repetition]] as [[displacement]] and [[disguise]]
[[DR p107-1]]
if the first [[passive synthesis]] concerns the [[present]], the second concerns the [[past]]. If the first makes us of [[repetition]] in order to [[draw]] off a [[difference]], the second passive synthesis includes difference at the heart of [[repetition]], since the two [[figure]]s of difference, [[movement]] and [[disguise]]-the displacement which symbolically [[affect]]s the [[virtual]] [[object]] and the disguises which affect, in imaginary fashion, the [[real]] objects in which it is incorporated-have become the [[element]]s of repetition itself.
[[DR p108-1]]
...the [[structure]] of the [[unconscious]] is not conflictual, oppositional or contradictory, but [[question]]ing and [[problem]]atizing. Nor is [[repetition]] a bare and brute [[power]] behind the [[disguise]]s, the latter [[affect]]ing it only secondarily, like so many [[variation]]s: on the contrary it is woven from [[disguise]] and [[displacement]], without any existence apart from these constitutive [[element]]s
[[DR p109-1]]
the [[eternal return]] is a [[force]] of [[affirmation]], but it affirms everything of the [[multiple]], everything of the different, everything of [[chance]] except... the [[one]], the [[same]], and the [[necessary]].
[[DR p112-1]]
The [[disguise]]s and [[variation]]s, the [[mask]]s or [[costume]]s, do not come 'over and above': they are, on the contrary, the [[internal]] [[genetic]] [[element]]s of [[repetition]] itself, its integral and constituent [[part]]s...Repetition is truly that which [[disguise]]s itself in constituting itself, that which constitutes itself only by disguising itself. It is not underneath the masks, but is [[form]]ed from one mask to another, as though from one distinctive [[point]] to another, from one privileged instant to another, with and within [[variation]]s. There is no first term which is repeated...
There is therefore nothing [[repeat]]ed which may be [[isolate]]d or [[abstract]]ed from the repetition in which it was formed, but in which it is also [[hidden]]. There is no bare repetition which may be abstracted or inferred from the disguise itself. The same thing is both disguising and disguised... The variations [[express]], rather, the [[differential]] [[mechanism]]s which belong to the [[essence]] and [[origin]] of that which is repeated.
[[treatment]]
[[DR p1-1]]
The [[mask]], the [[costume]], the covered is everywhere the truth of the uncovered. The mask is the true [[subject]] of [[repetition]]. Because repetition differs in kind from [[representation]], the repeated cannot be represented: rather, it must always be [[signified]], masked by what signifies it, itself masking what it signifies.
I do not [[repeat]] because I [[repress]]. I repress because I repeat, I forget because I repeat. I repress, because I can live certain things or certain experiences only in the [[mode]] of repetition. I am determined to repress whatever would prevent me from living them thus...
[[treatment]] [[Freud]]
[[DR p16/17-1]]
[[transference]] is [[repetition]]. It is above all repetition. If repetition makes us ill, it also heals us; it it enchains and destroys us, it also frees us, testifying in both cases to its [[demon]]ic [[power]]. All [[cure]] is a voyage to the bottom of repetition.
[[treatment]] [[Freud]]
[[DR p18-1]]
[[rhythm]] and [[cadence]], rhythm produces cadence.
[[DR p19-1]]
[[sign]]s involve heterogeneity in at least [[three]] ways: first, in the [[object]] which [[bear]]s or [[emit]]s them, and is necessarily on a different [[level]], as though there were two [[order]]s of [[size]] or disparate [[real]]ities [[between]] which the sign [[flash]]es; secondly, in themselves, since a sign [[envelop]]s another 'object within the [[limit]]s of the object which bears it, and [[incarnate]]s a natural or spiritual [[power]] (an [[idea]]), finally, in the [[response]] they [[elicit]], since the [[movement]] of response does not '[[resemble]]' that of the sign.
[[semiotic]]s [[semiology]].
[[DR p21-1]]
We [[learn]] nothing from those who say 'Do as I do'. Our only [[teacher]]s are those who tells us to 'do with me', and are able to [[emit]] [[sign]]s to be [[develop]]ed in heterogeneity rather than propose [[gesture]]s for us to [[reproduce]]... [he discusses [[swim]]ming, then,
When a [[body]] [[combine]]s some of its own [[distinct]]ive [[point]]s with those of a [[wave]], ot espouses the principle of a [[repetition]] which is no longer that of the [[same]], but involves the [[other]], involves [[difference]], from one wave and one [[gesture]] to another, and carries that difference through the repetitive [[space]] thereby constituted.
[[treatment]]
[[DR p22/23-1]]
[[DR p23-1]]
([[repetition]]) forms itself in covering itself, in [[mask]]ing and [[disguise]]ing itself
[[difference]] is the [[state]] in which one can speak of [[determination]] as such.. instead of something [[distinguish]]ed from something else, imagine something which distinguishes itself-and yet that from which it distinguishes itself does not distinguish itself from it... Difference is this state in which [[determination]] takes the [[form]] of [[unilateral]] distinction.
[[DR p23-1]]
(For [[Aristotle]]), [[difference]] appears only as a reflexive [[concept]]. In effect, difference allows the [[passage]] from similar neighboring species to the [[identity]] of a genus which subsumes them - that is, the [[extract]]ion or [[cut]]ting out of generic identities from the [[flow]] of a [[continuous]] [[perceptible]] [[series]].
[[pattern]] [[double articulation]] [[machine]] [[striated]] and [[smooth]]
[[crossover]]
[[DR p28-1]]
[[crossover]] with [[Logic of Sense]], [[reread]]. [[univocity of being]] [[Duns Scotus]]
'We must add that [[being]], this common designated, in so far as it [[express]]es itself, is said in turn in a single and same [[sense]] of all the [[numerical]]ly [[distinct]] [[designator]]s and expressors.' Being is spoken of both what is expressed, and that which does the expressing. [[Spinoza]] 'The [[ontological]] [[proposition]] involves a [[circulation]] of this kind (expression as a whole). p36
[[DR p34-1]]
...the essential in [[univocity of being]] is not that [[being]] is said in a single and same [[sense]], but that it is said, in a single and same sense, of all its [[individuate]]ing [[difference]]s or intrinsic modalities. Being is the same for all these modalities, but these modalities are not the same... The [[essence]] of univocal being is to include individuating differences, while these differences do not have the same essence and do not change the essence of being...
[[DR p35-1]]
Returning is [[being]], but only the being of [[becoming]]. The [[eternal return]] does not bring back 'the [[same]]', but [[return]]ing constitutes the only Same of that which [[become]]s. Returning is the [[becoming-identical]] of becoming itself. Returning is thus the only [[identity]], but identity as a secondary [[power]]; the identity of [[difference]], the identical which belongs to the different, or turns around the different. Such an identity, produced by difference, is determined as [[repetition]]. Repetition in the eternal return, therefore, consists in conceiving the same on the basis of the different.
[[double articulation]]
[[DR p36-1]]
the [[wheel]] in [[eternal return]] is at once both production of [[repetition]] on the basis of [[difference]] and [[select]]ion of difference on the basis of repetition.
[[double articulation]]
[[DR p41-1]]
Instead of animating [[judgement]]s about [[thing]]s, [[orgiastic]] [[representation]] makes things themselves so many [[express]]ions or so many [[proposition]]s: [[infinite]] [[analytic]] or [[synthetic]] propositions.
[[collective assemblage]] is created from the [[machinic assemblage]]. Another case of a [[double articulation]] here?
[[DR p42-1]]
[[differential]] [[relation]]s and [[distinct]]ive [[point]]s already [[indicate]] [[center]]s of [[envelope]]ment within the [[continuum]] [?], centers of [[possible]] [[implication]] or [[involution]] which are brought about by individual [[essence]]s. It suffices to show that the continuum of [[affection]]s and properties in a [[sense]] precedes the constitution of these individual essences (which amounts to saying that he distinctive points are themselves [[pre-individual]] [[singularity]]s... [[individuation]] precedes the actual determination of species...)
[[DR p43-1]]
...for each [[world]] a [[series]] which [[converge]]s around a [[distinct]]ive [[point]] is capable of being [[continue]]d in all [[direction]]s in other series by converging around with points, while the [[incompossible]]ity of worlds, by contrast, is defined by the [[juxtaposition]] of points which would make the resultant series [[diverge]].
[[aleatory point]] [[connection]] [[disjunction]] [[disjunctive]] [[conjunction]] [[Leibniz]] [[Logic of Sense]] [[pre-individual]] [[singularity]]
[[DR p47-1]]
...[[difference]] is an [[object]] of [[affirmation]]; that affirmation itself is [[multiple]]; that it is [[creation]] but also that it muse be [[create]]d, as affirming difference, as being difference in itself... there are [[positive]] [[differential]] [[element]]s which determine the [[genesis]] of both the affirmation and the difference affirmed. ..
Negation results from [[affirmation]]... of that [[power]] or '[[will]]' which engenders the affirmation and the difference in the affirmation. Those who bear the negative... take the [[shadow]] for the [[real]]ity...
This whole section, from the red tag to here is amazing.
[[DR p48-1]]
...[[difference]] is behind everything, but behind difference there is nothing,
[[DR p55-1]]
...[[non-being]] is not the [[being]] of the [[negative]]; rather, it is the being of the [[problematic]], [[being]] of [[problem]] and [[question]].
[[DR p57-1]]
In [[real]]ity, the [[distinction]] between the [[same]] and [[identical]] bears fruit only if one subjects the Same to a conversion which relates it to the different, while at the same time the things and beings which are distinguished in the different suffer a corresponding radical destruction of their [[identity]]. Only on this condition is [[difference]] thought in itself, neither [[represent]]ed not [[mediate]]d.
things are [[drift]]ing
[[DR p64-1]]
Is this the [[for-itself]] of [[repetition]], an [[originary]] [[subjectivity]] which necessarily enters into its constitution? Does not the [[paradox]] of repetition lie in the fact that one can [[speak]] of repetition only by virtue of the [[change]] or [[difference]] that it introduces into the [[mind]] which [[contemplate]]s it? By virtue of a difference that the mind [[draw]]s from repetition?
[[DR p66-1]]
[[habit]] is discussed
...in order to [[integrate]] actions within a more [[complex]] action, the [[primary]] actions must in turn play the [[role]] of [[element]]s of [[repetition]] within a [[case]], but always in relation to the [[contemplative]] [[soul]] [[adjacent]] to the [[subject]] of the [[compound]] action. Underneath the [[self]] which [[act]]s are little selves which [[contemplate]] and which render [[possible]] both the [[action]] and the [[active]] [[subject]]. We speak of our 'self' only in virtue of these thousands of little witnesses which contemplate within us: it is always a third party who says 'me'. These contemplative souls must be assigned even to the [[rat]] in the [[labyrinth]] and to each [[muscle]] of the rat.
is this laying the groundwork for [[larval selves]]?
[[DR p71-1]]
Given that [[contemplation]] never appears at any [[moment]] during the [[action]]- since it is always [[hidden]], and since it 'does' nothing (even though something is done through it, something completely [[novel]])-it is easy to [[forget]] it an to [[interpret]] the entire [[process]] of excitation and [[reaction]] without any [[reference]] to [[repetition]]-the more so since this reference appears only in the [[relation]] in which both excitations and reactions stand to the [[contemplative soul]]s.
The [[role]] of the [imagination]], or the [[mind]] which contemplates in its [[multiple]] and [[fragment]]ed [[state]]s, is to [[draw]] something [[new]] from repetition, to draw [[difference]] from it. For that matter, repetition itself in [[essence]] is imaginary...
[[imaginary]]=[[unconscious]]
[[contemplation]] as [[coexistent]] with [[action]]
[[DR p75-1]]
The [[present]] [[extend]]s [[between]] two eruptions of [[need]], and coincides with the [[duration]] of [[contemplation]]. the [[repetition]] of need...
All our [[rhythm]]s, our reserves, our reaction times, the thousand [[intertwining]]s, the [[present]]s and [[fatigue]]s of which we are [[compose]]d, are defined ont he basis of our [[contemplation]]s. The [[rule]] is that one cannot go faster than one's own present-or rater, one's presents. [[sign]]s as we have defined them-as [[habit]]udes or [[contraction]]s referring to one another-always belong to the present
[[DR p75/76-1]]
[[passive synthesis]] is the [[contraction]] that goes from the [[particular]] to the [[general]] as a result of the [[contemplation]] done by the [[contemplative]] [[soul]]. These happen at all levels, physical, organic, social, etc.
...we must regard [[habit]] as the [[foundation]] from which all other [[psychic]] phenomena derive. All these other phenomena either rest upon contemplations or are themselves contemplations: even need, even questions, even irony.
These thousands of habits of which we are [[compose]]d-these contractions, contemplations, [[pretension]]s, presumptions, satisfactions, fatigues; these [[variable]] [[present]]s-thus [[form]] the basic domain of passive syntheses. The passive [[self]] is not defined simply by receptivity-that is, but means of the capacity to experience [[sensation]]s-but by virtue of the [[contractile]] [[contemplation]] which constitutes the [[organism]] itself before it constitutes the sensations. This self, therefore, is by no means [[simple]]... selves are [[larval selves]]; the world of passive syntheses constitutes the [[system]] of the self, under conditions yet to be determined, but it is the system of a[[dissolve]]d self. There is a self wherever a furtive contemplation has been established, whenever a contracting [[machine]] capable of [[draw]]ing a [[difference]] from [[repetition]] [[function]]s somewhere.
[[subjectivity]] [[pre-individual]].
[[DR p77-1]]
[[active synthesis]] involves comparing the [[present]] and former presents, as well as having an extra [[dimension]] in which it represents the former and represents itself. <-last para of 80
The [[passive synthesis]] of [[habit]] constituted a [[time]] as a [[contraction]] of [[instant]]s with respect to a [[present]], but the [[active synthesis]] of [[memory]] constitutes it as the [[embed]]ding of presents themselves.
seems to also have passive as [[unconscious]], after a sense, then also active and conscious, as well as passive relating to a certain simplifying and active towards a complexification
[[DR p78-1]]
In short, what we live [[empirically]] as a succession of different [[present]]s from the [[point of survey]] of [[active synthesis]] is also the ever-increasing [[coexistence]] of [[level]]s of the [[past]] within [[passive synthesis]]. Each present [[contract]]s a level of the [[whole]]...
[[segment]] [[rigid]] [[line]] [[supple]] [[segmentarity]]
[[DR p81-1]]
[[repetition]] is never a historical fact, but rather the historical condition under which something [[new]] is effectively produced... repetition is a [[condition]] of [[action]] before it is a [[concept]] of [[reflection]]. We produce something new only on condition that we repeat-once in the [[mode]] which constitutes the past, and once more in the [[present]] of [[metamorphosis]]. Moreover, what is produced, the absolutely new in itself, is in turn nothing but repetition: the third repetition, this time by [[excess]], the repetition of the future as [[eternal return]].
[[DR p83-1]]
[[biopsychic]]al [[life]] implies a [[field]] of [[individuation]] in which [[difference]]s in [[intensity]] are [[distribute]]d here and there in the [[form]] of [[excitation]]s. The [[quantitative]] and [[qualitative]] [[process]] of [[resolution]] of such differences is what we call [[pleasure]]. A [[totality]] of this kind-a [[mobile]] [[distribution]] of differences and local resolutions withing an intensive field-corresponds to what [[Freud]] called the [[Id]], or at least the primary [[layer]] of the Id.
The [[word]] 'id' in this [[sense]] is not only a [[pronoun]] referring to some formidable unknown, but also an [[adverb]] referring to a [[mobile]] [[place]], a 'here and there' of [[excitation]]s and [[resolution]]s.
pleasure is a [[reterritorialize]]ation of [[desire]] on the [[body without organs]] -dialogues
[[unconscious]] [[body without organs]] [[grammar]]
[[DR p90-1]]
This is the primary concern of [[Beyond the Pleasure Principle]]: not the exceptions to this [[principle]], but rather the [[determination]] of the [[condition]]s under which [[pleasure]] effectively [[become]]s a principle. The [[Freud]]ian [[answer]] is that [[excitation]] in the [[form]] of [[free difference]] must, in some sense, be 'invested', 'tied', or bound in such a manner that its [[resolution]] becomes [[system]]atically [[possible]]. This binding or [[invest]]ment of difference is what makes possible in general, not pleasure itself, but the value taken on by pleasure as a principle: we thereby pass from a state of scattered resolution to a [[state]] of [[integrate]]ion, which constitutes the second layer of the [[Id]] and the beginnings of an [[organization]].
[[DR p96-1]]
...[[receptivity]] must be defined in terms of the [[form]]ation of [[larval selves]] or egos, in terms of the [[passive synthesis]] of [[contemplation]] or [[contraction]], thereby accounting simultaneously for the [[possible]]ity of [[experience]]ing [[sensation]]s, the [[power]] of [[reproduce]]ing them and the value that [[pleasure]] assumes as n ([[organize]]ing) [[principle]].
[[DR p96-2]]
the [[passive synthesis]] leads to the [[emergence]] of the [[active synthesis]] which allows us to take an [[actual]] [[object]] as a goal which [[larval selves]] aim at, but also [[extend]]s in another [[direction]], by which a [[virtual]] object is created simultaneously as a result of the passive synthesis. My [[summary]], not from the text.
'..a virtual object or [[center]] and which then [[govern]]s and [[compensate]]s for the progresses and failures of its real activity... the real [object] is contemplated only in order to provide a [[goal]] for the activity, and a [[criterion]] by which to evaluate the activity, in the context of an active synthesis.
[[DR p98-1]]
To [[repeat]] is to behave in a certain manner, but in relation to something [[unique]] or [[singular]] which has no equal or equivalent. And perhaps this [[repetition]] at the [[level]] of external conduct [[echo]]s, for its own part, a more [[secret]] vibration which animates it, a more profound, internal repetition within the singular.
[[DRxix]]
[10] This movement, the[[essence]] and the [[interiority]] of movement, is not [[opposition]], not [[mediation]], but [[repetition]]...
We have in mind the theatrical [[space]], the emptiness of that space, and the manner in which it is filled and determined by the [[sign]]s and [[mask]]s through hwhich the [[actor]] plays a [[role]] which plays other roles; we think of how [[repetition]] is [[woven]] from one [[distinct]]ive [[point]] to another, including the [[difference]]s within itself...
The [[theater]] of repetition is opposed to the theater of [[representation]] which refers it back to the [[concept]]. In the theater of repetition, we [[experience]] [[pure]] [[force]]s, [[dynamic]] [[line]]s in space which [[act]] without [[intermediary]] upon the [[spirit]], and link it directly with [[nature]] and [[history]], with a [[language]] which speaks before [[word]]s, with [[gesture]]s which [[develop]] before [[organize]]d [[body]]s, with [[mask]]s before [[face]]s, with specters and phantoms before characters- the whole [[apparatus]] of re[petition as a 'terrible [[power]]'...
...a [[matter]] of knowing what it means to '[[produce]] movement', to repeat or to [[obtain]] repetition...
[[DR8]]
From the first theory of [[repression]], [[Freud]] indicated another path:[[Dora]] elaborates her own [[role]], and repeats her love for the father, only through other roles filled by others, which she herself adopts in relation tot hose others (k., Frau K, the governess). The [[disguise]]s and the [[variation]]s, [17] the [[mask]]s or [[costume]]s, do not come 'over and above', they are, on the contrary, internal [[genetic]] [[element]]s of [[repetition]] itself, its integral and constituent [[part]]s... Repetition is truly that which disguises itself in constituting itself, that which constitutes itself only by disguising itself. It is not underneath the masks, but is formed from one mask to another, as though from one [[distinct]]ive [[point]] to another, from one privileged instant to another, with and within the variations. The masks do not hide anything except other masks. There is no first term which is repeated.... There is therefore nothing repeated which may be isolated or abstracted from the repetition in which it was formed but in which it is also hidden. There is no [[bare]] repetition which may be abstracted or inferred from the disguise itself. The same thing is both disguising and disguised...
In short, repetition is in its essence [[symbolic]]; [[symbol]]s or [[simulacra]] are the letter of repetition itself. Difference is included in repetition by way of disguise and by the order of the symbol. This is why the variations do not come from without, do not express a secondary compromise between a [[repress]]ing instance and a repressed instance, and must not be understood on the basis of the still negative forms of [[opposition]], reversal or overturning. The variations [[express]], rather, the [[differential mechanism]]s which belong to the essence and [[origin]] of that which is repeated... [18]
The mask, the costume, the covered is everywhere the [[truth]] of the uncovered. The mask is the true subject of repetition. Because repetition differs in kind from [[representation]], the repeated cannot be represented: rather, it must always be [[signified]], masked by what [[signify]]s it, itself masking what it signifies.
[[DR10]]
We are right to speak of [[repetition]] when we find ourselves confronted by identical [[element]]s withe exactly the same concept. However, we must [[distinguish]] between these discrete elements, these repeated objects, and a [[secret]] subject, the real subject of repetition, which repeats itself through them... For there is no repetition without a repeater, without a repetitious [[soul]]
[[larval selves]] [[subjectivity]]
[[DR16/19]]
The [[repetition]] of dissymmetry is hidden within symmetrical ensembles or effects; and everywhere the Other in the repetition of the Same. This is the secret, the most profound repetition.... it is the [[mask]]ed, the [[disguise]]d or the costumed which turns out to be the truth of the uncovered. Necessarily, since this repetition is not hidden by something else, but forms itself by disguising itself; it does not pre-exist its own disguises, and, in forming itself, constitutes the bare repetition within which it becomes [[envelope]]d.
[[DR23]]
There are [[internal]] [[difference]]s which dramatize an [[Idea]] before [[represent]]ing an [[object]]. Difference here is internal to an Idea, even though it be external to the concept which represents an object. [Dramatization at the level of the [[intensive]] prior to the [[extensive]] ]... interesting [[Leibniz]] sentence at the bottom of the page.
[[DR24]]
(what is important [for [[repetition]] ] in [[principle]] is 'n' times as the [[power]] of a single time, without the need to pass through a second or third time). see the [[festival]] discussion on p1
[[DR1]]
...it is a [[question]] of [[producing]] within the work a [[movement]] capable of [[affect]]ing the m[[mind]] outside of all [[representation]]...
[[DR3]]
Using [[writing]] thus presupposes a double utilization of the [[distinction]] between [[medium]] and [[form]]: first, in [[connect]]ion with [[language]], a [[set]] [157] of written characters for still undetermined but regulated [[coupling]] options, which serves as a [[medium]] for text [[production]]... In the second stage, meaningfully comprehensible texts have to be produced that can be read differently, [[interpret]]ed in various ways... And interpretation can [[generate]] new texts, which in turn gives rise to a [[tradition]] in need of interpretation...
people could therefore read before they could write [China, writing emerges from [[divination]] rather than record keeping/[[account]]ing] [158]... The [[sign]]s then had only to be [[detach]]ed from their [[substratum]] and adapted for [[artifici al]] use, an [[evolution]]ary [[mutation]] that apparently took place in a very brief state of time.
[[TS156]]
Language is the first and last [[<hr>]]structure]] of [[madness]]... on [[language]] are based all the cycles in which madness articulates its nature.
[[MnC 99/100-1]]
How are we to balance studies with these two halves of [[assemblage]]s? "One solution is to stick to the new definition of social as a fluid visible only when new [[association]]s are being made. Such is the rightful domain of [[ANT]], even though it is not a specific stretch of land nor an enclosed turf but only a brief flash which may occur everywhere like a sudden change of [[phase]]... those situations are not as rare as one might think. To be accounted for, [[object]]s have to enter int accounts... the situation is the same for [[group]]s and [[agency]]s-no trial, no account, no [[information]]..." no difference that makes a [[difference]].[[RTS p77-1]][[RTS p77-1]]
[[baseline]], the period before we try to change things...
But that may be a misleading way to describe the problem because it suggests there is a thing called [[<hr>]]phobia]] and there is a thing called fear. Phobia has no special, fundamental, psychological importance; it just means that the person who uses the word thinks it’s irrational for someone to find that stimulus aversive because it will not be paired with other aversive stimuli in the future
[[Principles of Behavior 8e]]
It is a question of composing a [[body]] with the [[animal]], a [[body without organs]] defined by [[zone]]s of [[intensity]] or [[proximity]]. Where does this [[objective indetermination]] or [[indiscernibility]]... come from?
[[ATP p272/273-1]]
discussion of pre-existing social categories, then "follow the [[<hr>]]actor]]s themselves; yes, one must follow the them when they multiply [[entity]]s and again when they rarefy entities.
[[RTS p222/3-1]]
The [motif]] of the [[refrain]] may be anxiety, fear, joy, love, work, walking, [[territory]]... but the refrain itself is the [content]] of [[music[[<hr>]]
[[ATP p299-1]]
the [[machinic phylum]] is [[material]]ity, natural or artificial, and both simultaneously; it is matter in [[movement]], in [[flux]], in [[variation]], matter as conveyor of [[singularity]]s and [[trait of expression]]s. This has obvious consequences: namely, this matter-flow can only be [[<hr>]]follow]]ed.
[[ATP p408/409-1]]
General [[organology]] defines the [[rule]]s for analyzing, thinking and prescribing [[human]] [[fact]]s at three parallel but indissociable [[level]]s of the psychosomatic, which is the endosomatic level, the artifactual, which is the [[exosomatic]] level, and the [[social]], which is the [[<hr>]]organization]]al level. It is an analysis of the [[relation]]s [between]] [[organic]] [[organ]]s, [[technical]] organs and social organizations.
[[NL p28-1]]
For, having in his [ [[Plato]] ] youth first become familiar with [[Cratylus]] and with the Heraclitean doctrines (that all [[sensible]] things are ever in a state of flux and there is no knowledge about them), these views he held even in later years. [[Socrates]], however, was busying himself about ethical matters and neglecting the world of nature as a whole but seeking the universal in these ethical matters, and
fixed thought for the first time on definitions; Plato accepted his teaching, but held that the problem applied not to sensible things but to entities of another kind-for this reason, that the common definition could not be a definition of any sensible thing, as they were always changing. Things of this other sort, then, he called [[Idea]]s, and sensible things, he said, were all named after these, and in virtue of a relation to these; for the many existed by
participation in the Ideas that have the same name as they. Only the name 'participation' was new; for the Pythagoreans say that things exist by 'imitation' of numbers, and Plato says they exist by participation, changing the name. But what the participation or the imitation of the Forms could be they left an open question.
Further, besides sensible things and [[Form]]s he says there are the objects of mathematics, which occupy an intermediate position, differing from sensible things in being eternal and unchangeable, from Forms in that there are many alike, while the Form itself is in each case unique.
Since the Forms were the causes of all other things, he thought their elements were the elements of all things. As matter, the great and the small were principles; as essential reality, the One; for from the great and the small, by participation in the One, come the Numbers.
This whole section is an extended treatment of Plato and worth revisiting if this tiddler is of interest.
[[Book 1-3]] [[form]]
...[[Leibniz]] was no doubt, perhaps, the first to introduce into [[philosophy]], that we could call the theory of [[singularity]]ty]]s... which is scattered, which is everywhere-I cannot cite a single book where it doesn't exist... [[L83-8]]
“Will the [[machine]]s run so badly, their component pieces fall apart to such a point that they will return to [[nothingness]] and thus allow us to return to nothingness? It would seem, however, that the [[flow]]s of energy are still too closely connected, the [[partial-objects]] still too [[organic]], for this to happen. What would be required is a pure fluid in a free [[state]], flowing without interruption, streaming over the surface of a full body. [[desiring-machine]]s make us an [[organism]]; but at the very heart of this [[production]], within the very production of this production, the body suffers from being [[organized]] in this way, from not having some other sort of organization, or no organization at all. “An incomprehensible, absolutely rigid stasis” in the very midst of process, as a third stage... The [[automata]] stop dead and set free the unorganized [[mass]] they once served to articulate. The full [[Body Without Organs]] is the unproductive, the sterile, the unengendered, the unconsumable... The death instinct: that is its name, and death is not without a model. For [[desire]] desires death also, because the full body of death is its [[Body Without Organs]][[motor]], just as it desires life, because the organs of life are the working machine.”
Death (BwO) is the motor, organs of life (desiring-machines) are working the machine
A fluid to dissolve, to wash away your organs?[
[AO p7-2]]
[[Stiegler]] [[madness]] [[logic]], relates to the 'mad but not seeming it, seeming mad but not being it of [[ATP p120-1]] (not on the tiddler but that text), [[example]]s of the relations of [[dream]]s, madness, logic, images, [[reason]], [[<hr>]]unreason]] and [[sleep]]
[[MnC p93-1]]
Whatever the differences between [[signifiance]] and [[subjectification]]... they have it in common to crush all [[polyvocality]], set up [[language]] as a [[form]] of exclusive [[expression]], and operate by [[signifying]] [[biunivocalization]] and [[subjective]] [[binarization]]... [[linguistic]]s can tolerate no polyvocality or [[rhizome]] [[<hr>]]
[[ATP p179/180-1]]
[there is] in [[human]] [[language]] an arbitrary [[principle]], the self-sufficiency of a system entirely dependent on its internal [[interval]]s, and thus capable of provoking and supporting the separation of [[discourse]] from its object[.] What would one [[see]] if one did not [[speak]]?
* [[control societies]] [[grammitization]]
[[Di18]]
By asking [[open-ended]] instead of [[leading]] [[<hr>]]question]]s we are likely to hear far more details, and it is generally the circumstantial and tangential comments people make-both in [[analysis]] and everyday life-that are the most revealing
[[1A61]]
As an [[operational]] [[unity]] of [27] [[distinction]] and [[indication]], meaning is a [[form]] that contains itself, namely, the distinction between distinction and indication. [[reentry]].
With respect to the specific [[form]] of meaning, namely, the distinction between [[actual]]ity and [[potential]]ity, meaning therefore [[become]]s [[operational]] only by the form reentering the form. The inside of the form must be able to accept this reentry. The difference between momentary actuality and open [[possible]]ity must itself be actually available for [[consciousness]] and/or [[communication]]... Through [[reentry]]... meaning becomes a self-regenerating medium for the om-going [[select]]ion of [[particular]] forms.
[[systems theory]] is understood as the theory of the distinction between [[system]] and [[environment]], with reenrty possible on the side of the system if the system itself... in its own operations, distinguishes [28] between [[self-reference]] and [[other-reference]] Treatment of communication as the operation that reproduces specific social systems is guide d by the distinction between medium and form. This distinction occurs within itself inasmuch as loosely or strictly [[couple]]d [[element]]s are presupposed on the two sides that are cognizable only as forms, that is to say, they presuppose a further distinction between medium and form.
[[TS27]]
A social [[memory]] must therefore be [[develop]]ed beyond... mental memory. It consists solely in the delayed reuse of [[word]]s and the [[express]]ed [[meaning]] formed with their aid. Psychic systems are used, as it were, only for intermediate [[storage]]. What is decisive for social memory is the retrieval of memories in later social [[situation]]s; and over extended periods of time, the [[psychic]] [[substratum]] can change... we must first of all understand the preceding [[mechanism]] that all [[recall]] has to perform through the [[temporal]] [[form]] of [[delay]]...
The solution to this [[problem]] might lie in the [[concept of [[eigen]]behavior... It refers to a stability arising in the [[recursive]] [[procedure]] of applying the procedure to the results of the procedure. [[smoothing]]? [[identity]] [[<hr>]][[collective individual]] [[collective retention]] [[collective]] [[secondary retention]]
[[TS128]]
Every [[impression]] has an effect, but the effects are not always noticeable. When I turn one way rather than another, it is often because of a series of tiny impressions of which I am not aware but which make one movement slightly harder than the other. All our undeliberated actions result from a [[conjunction]] of [[minute]] [[perception]]s; and even our customs and [[passion]]s, which have so much influence when we do deliberate, come from the same source; for these [[tendency]]s come into being gradually, and so without the -minute perceptions we would not have acquired these noticeable dispositions. I have already remarked [[U55/57]] that anyone who excluded these effects from moral philosophy would be copying the ill- informed people who exclude [[insensible]] [[corpuscle]]s from natural science...
[every impression has a [[multiplicity]] of effects, [[virtual]] and [[actual]]?]
there is always a perfect correspondence between the body and the soul, and since I use bodily impressions of which one is not aware, whether in sleep or waking states, to prove that there are similar impressions in the soul. I even maintain that something happens in the soul corresponding to the circulation of the blood and to every internal [[movement]] of the viscera, although one is unaware of such happenings, just as those who live near a water-mill are unaware of the noise it makes. The fact is that if during sleep or waking there were impressions in the body which did not touch or [[affect]] the soul in any way at all, there would have to be limits to the union of body and soul, as though bodily impressions needed a certain shape or size if the soul was to be able to feel them. And that is indefensible if the soul is incorporeal, for there is no relation of proportion between an [[incorporeal]] [[substance]] and this or that [[modification]] of [[matter]]. In short, many errors can flow from the belief that the only perceptions in the soul are the ones of which it is aware.
[[strata]] [[double articulation]] [[assemblage]] [[stratum]] [[unconscious]] [[<hr>]][[U114]]
Attributes are for [[Spinoza]] [[active]] and [[dynamic]] [[form]]s. And here at once we have what seems essential: [[attribute]]s are no linger attributed, but are in some [[sense]] "attributive." Each attribute [[express]]es an [[<hr>]]essence]], and attributes it to [[substance]].
[[EIP p43-1]]
The [[thing]]s which are [[temporal]], [[actual entity]]s, arise by their participation in the things which are eternal, [[eternal object]]s... The eternal objects are the pure [[potential]]s of the [[universe]], and the [[<hr>]]actual entity]] differ from each other in their [[real]]ization of potentials.
[[KPR p15/16-1]]
...what is given, I'd say, at the [[extreme]], could always be called a [[flow]]. Flows are what are [[given]]s, and [[creation]] consists in [[divide]]ing, [[organize]]ing, [[connect]]ing flows in such a way that a creation is [[drawn]] or made around certain [[uusingularity]]s [[extract]]ed from flows... [ [[philosopher]]s create [[concept]]s] a concept is not at all something that is a given... the concept is a [[system]] of singularities appropriated [preleve] from a thought flow. A philosopher is someone who [[invent]]s concepts...
just as there is a biological flow, there is a [[vital]] flow, there is a flow of thought... the philosopher is the one who would know or who would propose to create concepts appropriated form the thought flow. Imagine the universal thought flow as a kind of [[interior]] [[monologue]], the interior monologue of everyone who thinks... For a great [[music]]ian, one can also conceive of a [[continuous]] acoustic flow-perhaps that is only an [[idea]], but it matters little if the idea is justified-that traverses the [[world]] and even encompasses [[silence]]...
[[truth]] is always subordinate to the system of concepts of which one [[dispose]]s. [[dispositif]]?
[[Leibniz, First Seminar]]
The second articulation concerns [[expression]]
Lodged between mechanics and biology, a [[technical]] [[being[[<hr>]]
Deleuze's definition of [[transcendental empiricism]] is very simple: transcendental empiricism is that philosophical position which [[determine]]s the [[condition]]s of
real rather than [[possible experience]].
[[real experience]] [[DG3]]
What we seek is not the empirical difference characterizing the thing
extrinsically in terms of something else, but the internal difference
presiding over the genesis of a [[world]]. Hence the paradoxical term
[[transcendental empiricism]]. On the one hand, we cannot anticipate what
these [[difference]]s will be in advance and must thus resort to a sort of
[[empiricism]]. On the other hand, these differences are not what is given
in experience, but rather, as Deleuze says elsewhere, that by which the
given is [[given]].
[[DG51]]
[[draw]] the [[line]], or what amounts to the same thing, cross the line, pass over the line, for the line is only drawn by surpassing the line of separation
[[ATP p403-1]]
[[observe]]ing or of [[draw]]ing [[distinction]]s...
[[IS38]]
preface page
The modern world is on of [[simulacra]]. Man did not survive god... all [[identity]]s are only [[simulate]]d...
In [[simulacra]], [[repetition]] already plays upon repetitions, and difference already plays upon [[difference]]s. Repetitions repeat themselves, while the [[differenciator]] differentiates itself. The task of [[life]] is to make all these repetitions coexist in a [[space]] in which difference is [[distribute]]d.
XX
The perpetual [[divergence]] and [[decenter]]ing of difference correspond closely to a [[displace]]meent and [[disguise]]ing within repetition.
[[Difference and Repetition]]
The difference between one place
and another is only an external difference, and thus not the internal,
determining, difference we are seeking. Position, change of position, is
not a difference that touches the being of the being, but only externally
relates the being to o ther beings in the homogeneous medium of [[space]].
[[Bergson]]
[ [[duration]] is an [[experience]] of [[difference in itself]] [[internal difference]] [[difference]] ]
[[DG56]]
We
believe that [[Penrose]] is right: We need a new formulation of
the fundamental laws of [[physics]]. The [[evolution]]ary aspects
of [[nature]] have to be expressed in terms of the basic laws of
physics. Only in this way can we give a satisfactory answer
to [[Epicurus]]' dilemma. The reasons for indeterminism, for
temporal [[asymmetry]], must be rooted in [[dynamic]]s.
Formulations that do not contain these features are incomplete,
exactly as would be formulations of physics that ignore
gravitation or electricity.
Probability plays an essential role in most sciences..
[[EC6]]
Over the past several decades, a new science has been
born, the physics of [[nonequilibrium process]]es, and has led to
concepts such as [[self-organization]] and [[dissipative structure]]s... In the past, the arrow of time appeared in
physics only through simple processes such as diffusion or
viscosity, which could be understood without any
extension of the usual time-reversible dynamics. This is no
longer the case. We now know that [[irreversibility]] leads to
a host of novel phenomena, such as vortex formation,
chemical oscillations, and laser light, all illustrating the
essential constructive role of the arrow of time. Irreversibility
can no longer be identified with a mere appearance that
would disappear if we had perfect knowledge. Instead, it
leads to coherence, to effects that encompass billions and
billions of particles. Figuratively speaking, matter at
equilibrium, with no [[arrow]] of time, is "blind," but with the
arrow of time, it begins to "see." Without this new
coherence due to irreversible, nonequilibrium processes, life on
earth would be impossible to envision. The claim that the
arrow of time is "only phenomenological," or subjective,
is therefore absurd. We are actually the children of the
[[arrow of time]], of [[evolution]], not its progenitors.
[[Difference and Repetition]]
[[The End of Certainty]]
The second crucial development in revising the concept
of [[time]] was the formulation of the physics of unstable [4]
systems. Classical science emphasized order and stability;
now, in contrast, we see fluctuations, instability, multiple
choices, and limited predictability at all levels of
observation.
[[molecular]]
[[EC3]]
This does not mean a return to classical
deterministic orthodoxy; on the contrary, we go beyond the
certitudes associated with the traditional laws of [[quantum]]
theory and emphasize the fundamental role of
probabilities. In both classical and quantum physics, the basic laws
now [[express]] possibilities. We need not only [[law]]s, but also
[[event]]s that bring an element of radical [[novel]]ty to the
description of nature... [[chance]] can neither be defined nor understood
[[dice throw]] [[Logic of Sense]] [[Deleuze]]
[[EC4]]
What are
the roots of time? Did time start with the "[[big bang]]"? Or
does [[time]] preexist our universe?
These questions place us at the very frontiers of space
and time. A detailed explanation of the cosmological
implications of our position would require a special
monograph. Briefly stated, however, we believe that the big bang
was an [[event]] associated with an instability within the
medium that produced our [[universe]]. It marked the start of
our universe but not the start of [[time]]. Although our
universe has an age, the medium that produced our universe
has none. Time has no beginning, and probably no end.
[[Spinoza]]
[[EC5]]
In the simplest case in which [[verbal]] behavior is under the control of verbal stimuli, the response generates a sound- pattern similar to that of the stimulus. For example, upon hearing the sound Beaver, the speaker says Beaver. Evidence of a tendency to engage in such “[[echoic]]” behavior comes from many sources.
[[VB89]]
Now we would say that cybernetic methodologies draw out the [[virtuality]] correlated with [[actuality]]...
[[Emergence and Embodiment]]
[[diachronic]] [[emergence]] (emergence as the [[production]] of [[novel]] [[structure]]s)
[[EE90]]
[[neocybernetic]]s views [[emergence]] "as a movement from the chaotically [[complex]] to the managerably complex."
[[EE9]]
the task facing [[neocybernetic]]s...can be specified to be that of showing how the ineluctable self-[[differentiation]] of a system that must maintain its [[autonomy]] over time can yield the [[emergence]] of the [[new]], which is to say how it can yield [[emergence]] understood in its current usage as the appearance at the systems [[global]] level of [[property]]s that do not exist at the [[local]] level of a system's [[component]]s.
not... from the simple to the complex, but rather by way of system-specific and system-internal reductions of [[hypercomplexity]] to ordered [[complexity]]...
[think] [[human]] [[agency]] as [[distributed]] [[technical]] agency...
[[selection]] is key to instituting [[difference]] into what would otherwise remain [[undifferentiate]]d [[chaos]]/
[[EE11]]
[[spychic]] and social systems "use [[meaning]] as a way t [[virtualize]] the [[system]]/[[environment]] relationship."
[[EE13]]
... the [[evolution]] of [[system]]s feeds on [[anarchy]]...
[[EE14]]
[[Piage]] you need the [[motorium]] to understand the [[sensorium]]
[[sensorimotor]]
[[perception]]
[[EE15]]
The crucial conceptual shift... [[self-organization]]-especially as that notion captured the aparent self-ordering and self-regulating of [[body]]s and [[mind]]s-and to [[self-reference]] and [[autology]] as the abstract logical counterparts of [[recursive]] operations in concrete and worldly systems
[[EE31]]
...whereas circularity is [[death]] (by [[infinite regress]]) to [[structure]]s it is [[life]] (by autonomous [[self-regulation]]) to [[system]]s.
[[EE35]]
putting [[form]] and [[medium]] theory together...
Neither form nor medium reaches bottom: there is no bottom. Forms are temporary fixations of [[element]]s within a medium, and when enough life forms coalesce, they become another medium for a new, [[emergent]] [[set]] of forms...
"if the medium of [[meaning]] is indeed the ultimate medium of [[psychic]] and [[social]] systems-ie if meaning is the medium of itself-then what is its form, the [[distinction]] through which it can be [[expressed]]? I perceive only one [[answer]]: the medium of meaning must be identical to the difference between form and medium, and the [[reentry]] of that [[distinction]] into itself. Its consequent indecidability is the [[symbol]] of our dealing with the world."
[[EE1]] [[definition]]
In Maxwell's original demon scenario, that is, the external [[closure]] of the physical system is countered by the demon's capacity to open and shut the [[membrane]] between the vessels. Thus the demons operations already anticipated the "open closure" [[openness from closure]]" of [[complex]] systems that go beyond thermodynamical enclosure and use their boundaries to reulate commerce (input/output ratios or peturbation/compensation relations) with their [[environment]]s.
[[EE36]]
Although certain systems do [[self-organize]], or decrease their internal [[entropy]], they do so only in the presence of conditions provided for elsewhere, by [[environment]]s that lend a necessary other of [[self-organization]].
[[EE40]]
systems thought has to proceed from the full situation constituted by the system and its environment and the dynamic maintenance of the [[boundary]] that distinguishes them.
[[EE42]]
...all [[knowledge]] of the [[environment]] depends upon the specific realities of the systems that [[observe]] it. The systemic reality of the environment is to be both the precondition and the product of an observing system. This is the [[self-reference]] bound up in any presentation of something beyond the [[self]]...
...[[reality]] appears as a consistent reference frame for at least two [[observer]]s.
[[EE44]]
A [[multiplicty]] of mutually reinforcing [[observer]]s maintains relationships and states of stable cross-systemic [[resonance]] [[von Foerster]] will come to call [[eigen]]behaviors.
[[EE45]]
casae one is to decrease entropy to increase order (R=1-[H/Hm]) where H is entropy, Hm is maximum entropy, R=[[redundancy]] as a measure of the order of a system derived by subtracting from [[unity]] or maximum order
2nd case ...[[possible]] to increase the [[order]] of a system by maintaining its [[entropy]] while increasing its [[complexity]]...
[last case case] one where systematic processes and environmental resources are structurally [[couple]]d to each other in a way that maintains the system and under favorable [[condition]]s enables it to reduce its [[entropy]] and or increase its complexity
[[EE46]]
When we perceive our [[environment]], it is we who [[invent]] it.
[[EE4]]
[[computation]] is generalized to mean any [[process]] or [[algorithm]] that [[transform]]s or [[recode]]s [[stimuli]] or [[data]] presetned to it
[[EE47]]
Rerdsicribed as the [[production]] of an [[observing]] system, [[cognition]] is rendered as a contingent opreational effect rather than assumed as a free-floating or even disembodied [[agency]]. The [[boundary]] between subject and object is re-cognized as both an ongoing product of and an impassible limit to the operation of the system. A system boun dary never just is, ontologically, but is always coming into being as [[part]] and parcel of the systems total [[autopoiesis]]. As a self-referential [[product]] of the systems operational enclosure, the boundary guarantees that the system is [[autonomous]], or [[information]]-tight. The environment as object cannot enter into the system in the [[mode]] of its own being, cannot dictate to the system. What it can do is [[perturb]] [ [[irritate]] ] its [[observer]] in such a way that the system reorganizes its own [[element]]s to compensate, which compensation must then count for the system's [[cognition]] of the object. ..
The environment contains no [[information]]; the environment is as it is. That is to say, it is only self-referential observing systems that can construct environments in the mode of information; the [[construction]] of descriptions is solely the systems affair... observing systems in [[communication]] may be observed to arrive at [[eigen]]behaviors-that is, mutually to stabilize and reinforce [[perception]]s autonomously achieved.
[[EE51]]
One [[form]] of the [[neocybernetic]] turn is a shift of interest from the identities of subjects to the [[network]]s of [[connection]]s among [[system]]s and [[environment]]s. The humanist project that unified [[perception]] and [[communication]] in one [[subject]], shored up against all odds by the first cybernetics, is now observed as an amalgamation or [[structural coupling]]s of multiple [[observing]] [[system]]s. With thisi move the noumenal unity of the humanist subject gives way to a differential observation of the [[relation]]s of living and nonliving systems and their environments, such as human and nonhuman bodies and societies.
[[EE5]]
...the [[concept]] of [[autonomy]] as double [[closure]]... the [[regulation]] of regulation... a [[system]] is [[open]] to its [[environment]] in proportion to the [[complexity]] of its [[closure]].
[[EE6]]
[[recursive]] [[process]]es generate [[emergent]] [[complexity]].
[[EE7]]
The [[problem]] of what it is for [[metnal]] processes to be also [[body]]ly processes is thus in large part the problem of what it is for [[subjectivity]] and [[feeling]] to be a bodily phenomenon.
[[EE52]]
...understand the [emergence]] of licing [[subjectivity]] from living [[being]], including the reciprocal [[shaping]] of living being by living subjectivity.
...[[life]] and [[mind]] share a common [[pattern]] or [[organization]], and the organizational properties characteristic of mind are an enriched version of those fundamental to life. Mind is life-life, and life is mind-like... living is [[cognition]].
[[EE80]]
[[cognition]]... the operation of any living system in the [[domain]] of [[interaction]]s specified by its [[circular]] and [[self-referential]] [[organization]]. Cognition is effective conduct in this domain of interactions, not the [[representation]] of an independent environment.... "Living systems are cognitive systems, and living as a process is a process of cognition. This statement is valid for all organisms, with and without a nervous system." -[[Maturana]].
thanks to the [[organism]]'s [[autonomy]], its [[world]] or niche has a "[[surplus]] of [[significance]]"[ [[signifiance]]?] compared with the physicochemical environment. Living isn't simply a [[cognitive]] process; its also an [[emotive]] process of [[sense]]-making, of bringing [[signification]] and value into existence. In this way the [[world]] becomes a place of [[valence]], of attraction and repulsion, approach or escape.
[[EE81]]
I would like to expand the proposition "living is [[sense]]-making" in the following way:
1. [[life]]=[[autopoiesis]] By this i mean the thesis that the three criteria of autopoiesis-(i) a [[boundary]], containing (ii) a [[molecular]] reaction [[network]], that (iii) [[produce]]s and regenerates itself and the boundary-are [[necessary]] and [[sufficient]] for the [[organization]] of minimal life.
2 Autopoiesis entailes [[emergence]] of a [[self]]. A physical autopoietic system, by virtue of its operational [[closure]], gives rise to an [[individual]] or self in the [[form]] of a living [[body]], an [[organism]].
3. Emergence of a self entails emergence of a [[world]]. The emergence of a self is also by necessity of a correlative [[domain]] of [[interaction]]s proper to that self, an [[umwelt]].
4. emergence of self and world = sense-making. The organism's world is the sense it makes of the [[environment].. The world is a place of [[significance]] [[signifiance]] and [[valence]]. Signification and valence do not preexist "out there" but are [[enact]]ed or constituted by the living being. Living entails sense-making, which equals [[cognition]].
[[EE82]]
For Neo-Darwinians [[evolution]] involves the optimization of [[adapt]]ation through [[natural selection]]. But from the autopoietic perspective, evolution involves simply the [[conservation]] of [[adaptation]]... [[cognition]]... in the present context means the [[sense]]-making activity of living [ [[life]] ]... this way of thinking about cognition rests on an explicit hypothesis about the natural roots of [[intentionality]]: intentionality arises from the operational [[closure]] of an [[autonomous]] system, whose paradigm and minimal case is an autopoietic system.
[[EE82/83]]
The self-transcending movement of life is none other than [[metabolism]], and metabolism is none other than the biochemical instantiation of the autopoietic [[organization]]. That organization must remain invariant-otherwise the [[organism]] dies-but the only wat [[autopoiesis]] can stay in place is thorugh the incessant [[material]] [[flux]] of metabolism... operational [[closure]] of autopoiesis demands that the organism be an [[open system]]... The organism is never bound to its material [[composition]] at any given isntant, but by the same token it has to change because [[stasis]] means [[death]].
..situate [[consciousness]] in relation to [[dynamic]] [[unconscious]] processes of [[life]] [[regulation]]...
[[EE83/84]]
...[[Rosen]] argues taht in a [[relational]] [[model]] of an [[organism]] every [[function]]... is entailed by another function...
[[emergence]] is present when there is no way to analyze a system into preexisting [[part]]s and a resultant [[whole]].... part and whole are completely interdependent: an [[emergent]] whole is produced by a continuous [[interaction]] of its parts, but these parts cannot be characterized independent from the whole
[[EE85]]
[[sense]]-making is not a feature of the autopoietic [[organization]] but rather of the [[coupling]] of a concrete autopoietic system and its environment.
[[EE87]]
It is not a matter of "policing" [[operational]] [[boundary]]s: not only are tehy self-producing and self-maintaining, but they are the [[condition]] of the [[possibility]] of systemic functions in the first place. The [[environment]] can perturb [ [[irritate]] ] living, psychic, and social systems but cannot operationally in-[[form]] them. More simply put, environmental stimuli can trigger systems to [[restructure]] themselves but cannot directly or causally impact their [function]]. We can say then, that systems [[observation]]s of their environment are internally and autonomously constructed by their own ongoing self-productions. In other words, to maintain their [[autopoiesis]], ([[self-referential]]) systems must remain operationally (or organizationally) closed to [[information]] from the environment. On that basis, they can construct their interactions with their environment as information. [[Luhmann]] writes with regard to the operation of [[communication]] in social systems "A systems-theoretical approach emphasizes the [[emergence]] pf communication itself. Nothing is transferred."
...the [[order]] from [[noise]] principle in [[self-organizing]] systems gives way to the [[openness from closure]] principle in autopoietic systems... Thermodynamically, a system is either open or closed to energic exchange with its environment; by contrast, autopoietuc systems are both environmentally open to energic exchange and operationally closed to informatic transfer... [10] [[operational closure]]-far from being simply opposed to openness-is in fact the precondition for [[openness]], which is to say for any [[cognitive]] capacity whatsoever
[[EE8]]
[[EE88]]
I cannot understand the function of the living [[body]] except by [[enact]]ing it myself, and except in so far as i am a body which rises towards the [[world]]
[[Merleau-Ponty]]
[[The Phenomenology of Perception]]
[[eigen]]behavior... It refers to a stability arising in the [[recursive]] [[procedure]] of applying the procedure to the results of the procedure. [[smoothing]]? [[identity]] [[TS130]]
[[Spinoza]] says that each [[attribute]] [[express]]es a [[certain]] [[infinite]] and [[eternal]] [[essence]], an essence corresponding to that particular kind of attribute. Or: Each attribute expresses the essence of [[substance]], its [[being]] or [[real]]ity. Or again: each attribute expresses the [[infinity]] and [[necessity]] of substantial [[existence]], that is, expresses [[eternity]]. He also shows how to [[pass]] from each of these [[form]]ations to the others. Thus, each attribute expresses an essence, insofar as it expresses in one form the essence of substance, and since the essence of substance necessarily involves existence it belongs to each attribute to express, together with [[God]]s essence, his eternal existence... I believe this is the [[first level]] and some form of [[triad]] that gets mentioned later
next page: we must [[identify]] a [[second level]] of [[expression]]: an expression, as it were, of expression itself. Substance first expresses itself in its attributes, each attribute expressing an essence. But then attributes express themselves in their turn: they express themselves in their [[subordinate]] modes, each such mode expressing a modification of of the attribute. As we will see, the first level of expression must by understood as the very [[constitution]], a [[genealogy]] almost, of the essence of substance. The second must be understood as the very production of particular things.
Expression is not itself [[production]], but becomes such on its second level, as attributes in their turn express themselves... expression as production is grounded in a prior expression,
[[Expressionism in Philosophy: Spinoza]]
[[idea]]s are [[mode]]s of [[thought]]... ideas [[express]] the [[essence]], [[nature]] or [[perfection]] of their [[object]]s. A things [[definition]] or idea is said to express the things nature as it is in itself
[[EIP p13/14-1]]
[[attribute]]s [[involve]] and [[explicate]] [[substance]], which in turn comprises all attributes. [[mode]]s involve and explicate the attribute on which they depends, while the attribute in turn contains the [[essence]]s of all its modes.
[[EIP p14-1]]
So the [[idea]] of [[expression]] seems to [[emerge]] only as determining the [[relation]] into which [[attribute]], [[substance]] and [[essence]] enter, once [[God]] for his part is defined as a substance consisting of an [[infinity]] of attributes that are themselves [[infinite]].
[[EIP p17-1]]
Expression presents us with a [[triad]]. In it we must [[distinguish]] [[substance]], [[attribute]]s and [[essence]]. Substance [[express]]es itself, attributes are expressions, and essence is expressed. The [[idea]] of expression remains unintelligible while we see only two of the [[term]]s whose relations it presents...essence, insofar as it has existence, has no existence outside the attribute in which it is expressed; and yet, as essence, it relates nly to substance.
[[EIP p20-1]]
...the [[essence]] of [[substance]] has no [[existence]] outside of its [[express]]ions; each expression is, as it were, the essence of what is expressed.
[[EIP p27-1]]
What is [[express]]ed has no [[existence]] outside its expression, but is expressed as the [[essence]] of what expresses itself. Once again we are faced with the necessity of [[distinguish]]ing [[three]] [[term]]s: [[substance]] which expresses itself, [[attribute]]s which are its expressions, and the essence which is expressed.
[[EIP p42-1]]
Attributes are for [[Spinoza]] [[active]] and [[dynamic]] [[form]]s. And here at once we have what seems essential: [[attribute]]s are no linger attributed, but are in some [[sense]] "attributive." Each attribute [[express]]es an [[essence]], and attributes it to [[substance]].
[[EIP p43-1]]
[[molecule]]
[[matter]]
[[particle]]
[[element]]
[[unformed]]
[[flow]]s
All these terms are related in some way, they appear at this moment as being related to types of matter prior to stratification, or [[destratified]]
[[strata]]
[[stratum]]
One can associate these biologically based
properties with cognition only through behavior. [great [[quote]] ]
It is only because this structure, the brain, undergoes interactions in an environment
that we can label the ensuing behavior as [[cognitive]]
[[EM9]]
When it is [[cognition]] or mind that is being examined, the dismissal of experience becomes untenable, even paradoxical... [[cognitive]] science stands at the crossroads where the natural sciences and the human sciences meet. Cognitive science is therefore Janus-faced, for it looks down both roads at once: One of its faces is turned toward nature and sees cognitive processes as [[behavior]]. The other is turned toward the human world (or what phenomenologists call the "life- world") and sees cognition as [[experience]].
[[EM10]]
Why should it be threatening to question the idea that the [[world]] has pregiven properties that we represent? Why do we become nervous when we call into question the idea that there is some way that the world is I I out there," independent of our cognition, and that [[cognition]] is a re-presentation of that independent world?
[[quote]]
[[EM30]]
We can now give a preliminary formulation of what we mean by [[enaction]]. In a nutshell, the [[enactive]] approach consists of two points: (1) [[perception]] consists in perceptually guided action and (2) [[cognitive]] structures emerge from the recurrent [[sensorimotor]] [[pattern]]s that enable action to be perceptually guided.
Let us begin with the notion of perceptually guided action. We have already seen that for the representationist the point of departure for understanding perception is the information-processing problem of recovering pregiven properties of the world. In contrast, the point of departure for the enactive approach is the study of how the perceiver can guide his actions in his local situation. Since these local situations constantly change as a result of the perceiver's activity, the reference point for understanding perception is no longer a pregiven, perceiver- independent world but rather the sensorimotor structure of the per- ceiver (the way in which the nervous system links sensory and motor surfaces). This structure-the manner in which the perceiver is em- bodied-rather than some pregiven world determines how the per- ceiver can act and be modulated by environmental events. Thus the overall concern of an enactive approach to perception is not to deter- mine how some perceiver-independent world is to be recovered; it is, rather, to determine the common principles or lawful linkages be- tween sensory and motor systems that explain how action can be perceptually guided in a perceiver-dependent world.
[[EM133]]
By [[embody]]ed, we mean re- flection in which body and mind have been brought together. What this formulation intends to convey is that reflection is not just on experience, but reflection is a form of experience itself-and that reflective form of experience can be performed...
[[EM13]]
When we include in our reflection on a question the asker of the [[question]] and the process of asking itself (recall the fundamental circularity), then the question receives a new [[life]] and [[meaning]].
[[self-reference]]
[[EM27]]
[[knowledge]] has become tangibly and inextricably linked to a [[technology]] that transforms the social practices which make that very knowledge possible-artificial intelligence being the most visible example. Technology, among other things, acts as an amplifier. One cannot separate cognitive science and cognitive technology without robbing one or the other of its vital complementary element.
[[technical individuation]] [[stiegler]] [[technics]]
[[EMxvi]]
We propose as a name the term enactive to emphasize the growing conviction that [[cognition]] is not the representation of a pregiven world by a pregiven mind but is rather the enactment of a world and a mind on the basis of a history of the variety of actions that a being in the world performs. The [[enactive]] approach takes seriously, then, the philosophical critique of the idea that the mind is a mirror of nature but goes further by addressing this issue from within the heartland of science.
...circularity is central; it is an epistemological necessity. [[quote]] [[recursion]]
[[EM5]]
[[emergence]] is present when there is no way to analyze a system into preexisting [[part]]s and a resultant [[whole]].... part and whole are completely interdependent: an [[emergent]] whole is produced by a continuous [[interaction]] of its parts, but these parts cannot be characterized independent from the whole
[[EE87]]
The moment I see some- thing differently, something new is there. You can call this “emergence” and thereby remain generally understood. However one could also bring the perspective of [[self-organization]] into play: This self-organizing system has swung into new [[eigen]]values that it did not previously pos- sess. And with this there are new insights to observe, something has “emerged.” But not there—no, here, inside of me something is newly configured, and I see it as a new understanding. [[emergence]] is my ability to see [[new]]ly.
[[HE17]]
One of the three factors proper to the [[plane of consistency]]
For [[Merleau-Ponty]], as for us, [[embodiment]] has this double sense: it encompasses both the body as a lived, experiential structure and the [[body]] as the context or milieu of cognitive mechanisms
[[The Embodied Mind]]
We can now give a preliminary formulation of what we mean by [[enaction]]. In a nutshell, the [[enactive]] approach consists of two points: (1) [[perception]] consists in perceptually guided action and (2) [[cognitive]] structures emerge from the recurrent [[sensorimotor]] [[pattern]]s that enable action to be perceptually guided.
Let us begin with the notion of perceptually guided action. We have already seen that for the representationist the point of departure for understanding perception is the information-processing problem of recovering pregiven properties of the world. In contrast, the point of departure for the enactive approach is the study of how the perceiver can guide his actions in his local situation. Since these local situations constantly change as a result of the perceiver's activity, the reference point for understanding perception is no longer a pregiven, perceiver- independent world but rather the sensorimotor structure of the per- ceiver (the way in which the nervous system links sensory and motor surfaces). This structure-the manner in which the perceiver is em- bodied-rather than some pregiven world determines how the per- ceiver can act and be modulated by environmental events. Thus the overall concern of an enactive approach to perception is not to deter- mine how some perceiver-independent world is to be recovered; it is, rather, to determine the common principles or lawful linkages be- tween sensory and motor systems that explain how action can be perceptually guided in a perceiver-dependent world.
[[EM133]]
A [[response]] may be executed with a certain [[energy]], which is not to be confused with “[[strength]]” as a synonym for “[[probability]].” Energy seems to vary with probability, and is frequently accepted as a measure of strength. An energetic and prolonged NO! is not only a strong response, it suggests a strong tendency to respond which would not easily be overcome by competing forces. On the other hand, a timid brief No is accepted as an instance of a weak [[operant]] from which we [[infer]] some inadequacy in the [[independent variable]]s. Relative energy permits a similar inference.
[[VB56]]
[[AO]] an energy-machine precedes an [[organ-machine]]; the organ-machine sees beyond the energy machine an [[ideal]] [[flow]]
[[epiphylogenesis]]... is the sedimentary deposit left by the [[process]] of production of [[tertiary retention]]s... it is both the process of production and the resultant [[system]] of these retentions. Epiphylogenesis and the retentions that constitute it as a system, are the [[condition]] for the constitution of a '[[we]]'.
[[SM1 p35-1]]
...what is important is a body of habitual assumptions or premises implicit in the relationship between man and environment, and that these premises may be true or false. I shall there-fore use the single term “[[epistemology]]” in this essay to cover both aspects of the net of premises which govern adaptation (or maladaptation) to the human and physical [[environment]]. In George Kelly’s vocabulary, these are the [[rule]]s by which an individual “construes” his [[experience]].
[[steps p309]]
vertically oriented layers of a [[strata]]
There are other types of [[consequence]]s which alter the [[strength]] of a [[verbal]] [[response]]. Behavior may be [[reinforce]]d by the reduction of aversive stimulation. When an aversive stimulus itself is reduced, we call the behavior [[escape]]. When some condition which characteristically precedes an aversive stimulus is reduced, we speak of [[avoidance]]. Thus, if the verbal response Stop it! is reinforced when it brings about the cessation of physical injury, the response is an example of escape. But Don’t touch me! may be reinforced when it brings about the cessation of the threat of such injury—of events which have previously been followed by such injury and which are therefore conditioned aversive stimuli—and the behavior is then called avoidance. When a speaker has had a history of such reinforcement, we [[control]] his verbal behavior by creating appropriate circumstances. We make him say Stop it! by pummeling him, or Don’t touch me! by threatening to do so.
[[VB66]]
things are unsuitable beings for determining
[[essence]].
[[DG145]]
The eternal objects are the pure [[potential]]s of the [[universe]], and the [[actual entity]] differ from each other in their [[real]]ization of potentials.
Returning is [[being]], but only the being of [[becoming]]. The [[eternal return]] does not bring back 'the [[same]]', but [[return]]ing constitutes the only Same of that which [[become]]s. Returning is the [[becoming-identical]] of becoming itself. Returning is thus the only [[identity]], but identity as a secondary [[power]]; the identity of [[difference]], the identical which belongs to the different, or turns around the different. Such an identity, produced by difference, is determined as [[repetition]]. Repetition in the eternal return, therefore, consists in conceiving the same on the basis of the different.
[[double articulation]]
[[DR p41-1]]
examples of a [[concept]] or idea listed on a page are too long to type out, so these refer where one is in a given text.
[[Rhizome]] plateau is filled with examples of how, for example (pun intended), we can use a [[tracing) to gain access to a rhizome, [[psychoanalysis]] to get our way to the rhizome.
Under such conditions, the concept of [[expectation]] no longer contains any subjective component. Instead, the concept of expectation poses the question of how [[structure]]s can achieve the reduction of [[complexity]] without, as it were, limiting the entire system to just one capacity. How ought one to conceive of a system that has at its disposal a rich array of structures, for instance via [[language]], without being limited by the [[selection]] of this or that sentence, which is to say, without immediately losing this structural variety again? On the contrary, in many instances structures are built without the need to determine the situation in which these structures are used. The concept of structure must include an explanation as to why the system does not shrink when it continuously has to make decisions, continuously has to perform this or that [[connectivity]] operation. It must explain why it does not shrink but may even, depending on the circumstances, grow and gain in complexity, although it is constantly forced to reduce complexity. The more possibilities a system has - once again you may look at language as the extraordinary [[example]] that makes this clear - the more selective is every single sentence, and the less stereotypical is the [[speech]].
[[IS73]]
the basic [[formula]] is simple: manipulate stimuli and, through the presence or absence of the response, identify the effective controlling properties. Laboratory [[experiment]]s in concept formation follow this pattern by setting up and testing for the presence of abstract tacts in an artificial verbal community
[[VB147]]
[[explanation]]-the [[map]]ping onto [[tautology]] of unfamiliar sequences of [[event]]s.
fn: All description, explanation, or representation is necessarily in some sense a mapping of derivatives from the phenomena to be described onto some surface or matrix or system of [[coordinate]]s [[MN44]]
for [[von Foerster]], he likes [[Bateson]]'s use of explanation as something that links [[description]]s together.
Second of the [[double articulation]]
He used the term [[expression]] for functional [[structure]]s, which would also have to be considered from two points of view: the organization of their own specific form, and substances insofar as they form compounds ([[form and content of expression]].)
[[ATP p43-2]]
[[content]] and expression both impact and form each other; "A stratum always has a dimension of the expressible or of [[expression]] serving as the basis for a relative [[invariance]]; for example, nucleic sequences are inseperable from a relatively invariant expression by means of which they determine the compounds, [[organs]] and functions of the [[organism]].
[[ATP p43/44-1]]
[[facialization]] doesn't consist in transforming the cup into a man or woman but in making a [[black hole/white wall]] [[system]].
[[face]] [[faciality]] [[abstract machine of faciality]]
[[ATP7 p9-1]]
[[facialization]] doesn't consist in transforming the cup into a man or woman but in making a [[black hole/white wall]] [[system]].
[[face]] [[faciality]] [[abstract machine of faciality]]
[[ATP7 p9-1]]
[[facialization]] doesn't consist in transforming the cup into a man or woman but in making a [[black hole/white wall]] [[system]].
[[face]] [[faciality]] [[abstract machine of faciality]]
[[ATP7 p9-1]]
we cannot say that [[faculty]]s are
mental, but must instead conceive them ontologically in a manner akin
to [[Bergson]]ian [[tendency]]es. The faculties are tendencies within being, not
a subject. Deleuze is thus highly misleading when he evokes the faculties.
The tendencies or faculties are [[condition]]s for subjects, not the reverse.
[[Deleuze]] is perpetually concerned
to [[determine]] faculties like [[sensibility]], [[memory]], [[thought]], [[language]], and
so on in their being rather than their empirical manifestation.
[[DG151]]
feeling is the term used for the basic generic operation of passing from the objectivity of the data to the subjectivity of the actual entity in question... Feelings are vectors; for they feel what is there and transform it into what is here. We thus say that an actual occasion is a concrescence effected by a process of feelings...
[[KPR p8-1]]
the [[expression]] is borrowed from [[speech act]] theory and allows us to speak of the truth and falsity of a [[mode]] without immediately judging it solely according to [[constative]]s. We will therefore be able to define each mode's own conditions of veridiction.
[[pragmatic field]]s
all sorts of fields
The first of the [[double articulation]] that concerns [[content]]
[[Quanta Article | https://www.quantamagazine.org/in-test-tubes-rna-molecules-evolve-into-a-tiny-ecosystem-20220505/]]
Four papers
[[Host–parasite oscillation dynamics and evolution in a
compartmentalized RNA replication system | https://doi.org/10.1073/pnas.1524404113]]
[[Emergence and diversification of a host-parasite RNA ecosystem through Darwinian evolution | https://doi.org/10.7554/eLife.56038]]
[[Evolutionary transition from a single RNA replicator
to a multiple replicator network | https://doi.org/10.1038/s41467-022-29113]]
[[Inevitability of the emergence and persistence of genetic parasites caused by evolutionary instability of parasite-free states | DOI 10.1186/s13062-017-0202-5]]
First article
[[cell-like]] compartment-artificial cell. [[in vitro]][outside of normal environment for the biological components used
"one of the next important challenges is the reconstitution of interacting [[network]]s of self-[[replicate]]ing species, including the investigation of how such [[interact]]ions [[generate]] [[complex]] [[ecology]]cal [[behavior]]s such as those observed in [[nature]]. [[organism]]s in the wild self-reproduce and [[interact]] with each other to form [[ecosystem]]s. Such interaction generates complex ecological behaviors such as the [[oscillation]] [[dynamic]]s observed in prey-predator or [[host-parasite]] [[population]]s. The causes and results of such periodic patterning have been a focus of intensive debate for decades (13-17)"
There's a sort of [[evolution]]ism that sits behind the conceptualization here. [[prey-predator]] and host-parasite are [[emergent]] [[relation]]s, rather than something that pre-exists and they do [[reciprocal]]ly [[determine]]s one another. Host is simply first. Think of the [[multiplicity]] description from [[Difference and Repetition]]-a relation that determines terms, rather than [[atom]]ic terms pre-existing which then enter into relationships. They're starting with interactions of low complexity then making high complexity emerge therefrom, rather than starting with high complexity as a [[form]] of [[reciprocal presupposition]].
"Previously, we had constructed a simple translation-coupled RNA replication system in which an artificial genomic RNA replicated through translation of the self-encoded RNA replicase and evolved (7). This system consists of a reconstituted translation system of Escherichia coli and an RNA encoding the RNA replicase (Qβreplicase), which is composed of the catalytic β-subunit and the translational factors, EF-Tu and EF-Ts. We found that parasitic RNAs, which had lost their replicase encoding region, spontaneously appeared in this system at a high genome concentration. The parasitic RNA appears possibly through recombination of the host RNA based on the facts that the appearance of the parasitic RNA depends on the presence of the host RNA (20) and that RNAs spontaneously recombine in a nonhomologous manner (21)."
Now here's what's interesting. Given the existence of "an artificial genomic RNA replicated through translation of the self-encoded RNA replicase," there is the consistency of an [[emergence]] of "parasitic RNAs, which had lost their replicase encoding region... in this system [that's running] at a high genome concentration." It would be a mistake to think this solely as as [[phenomenon]] of emergence, for the parasitic RNAs exist as a [[virtual]]ity within the [[actual]]ity of the "artificial genomic RNA." Considered as a [[system]] of [[difference]]s, a system made to [[interact]] through difference, the existence of the [virtual] parasite RNA is every bit as real as the existence of the [actual] RNA. It is only a matter of interaction through difference which allows for the [[actualization]] of the virtuality which inheres (a [[predicate]] with a relation of [[inclusion]] with the [[subject]])-however, that difference is not a difference which occurs at the level of the RNA, it is a difference that occurs at the [[level]] of [[assemblage]] itself.
"Once such parasitic RNAs appeared, the host RNA replication was completely inhibited because of the much higher replication rate of the parasitic RNA. Therefore, in our previous long replication experiment we had to manually adjust the genome concentration as low as possible to avoid the appearance of parasitic RNAs."
However, at this level of assemblage, a [[threshold]] has been crossed that prevents anything other than the [[inhibition]] of the replication of the [[host]] RNA by the [[parasite]] RNA. It is here a question of the determination of the [[Limit]] of the assemblage, as discussed in [[Apparatus of Capture]].
"We found that only when compartmentalized into microscale droplets did the [ecosystem]] show a typical host-parasite oscillatory [[dynamic]]s. Furthermore, after a long cultivation, the ecosystem evolved to allow the coexistence of the two species." A repetition lies between two differences [DR] given the existence a limit within the assemblage, the threshold is not crossed. No runaway [[feedback]] loops emerge. All so far from p1. There has to be an [[inhibit]]ion of the replication of the parasitic RNA at the level of the assemblage.
"The mixture was then [[incubate]]d for 5 h at 37 C for...19 rounds (total incubation time of 95 h)... under both the bulk and compartmentalized conditions, the parasitic RNA appeared after 5-10h of incubation and then significantly [[amplify]]d to a [[concentration]] ~100 times greater than that of the host RNA. With dilution, the host and parasitic RNA concentrations declined continuously..." p2
Further demonstration of the [[determine]]d yet [[virtual]] existence of the parasitic RNA. Important to note here is that the difference in this system, the emergence of the 'parasitic' is a result of a repetition. A disguised and displaced repetitionthat eventually differenciates itself in the form of a so-called parasitic RNA
"The changes in the oscillation pattern might be caused by evolution of the host and/or parasitic RNAs because in this system mutations were spontaneously introduced through replication errors, and the more highly replicable RNA could dominate the population according to the principles of Darwinian evolution (7)."
We need to bring in [[ATP p40/41-1]] to do some discussing.
"Not only do strata come in pairs, but in a different way each stratum is double (it itself has several layers.) Each stratum exhibits phenomena constitutive of double articulation..."
"The first articulation chooses or deducts, from unstable particle-flows, metastable molecular or quasi-molecular units (substances) upon which it imposes a statistical order of connections and successions (forms)"
"The second articulation establishes compact, stable structures (forms) and constructs the molar compounds in which these structures are simultaneously actualized (substances)."
first articulation; choosing or deducting
second articulation; establishing
Figure 1A should be understood as a [[diagram]] of a [[stratum]]. The left have being the second articulation, the Host RNA which establishes the RNA replicase, and the right side, the parasitic RNA is the first articulation, which establishes the parasitic RNA. The terms first and second when used with articulation are considered arbitrary. It is worth noting that the first articulation is the much less stable of the two. What is of interest is yet another double articulation to be found here, that of the phylogenetic trees of the Host and the Parasite.
Fig3C shows separate clusters that denote different evolutions of the RNA that appear at different times. The [[creativity]] of the strata are on full display-the second articulation finds itself engaged in a proliferation of forms. Interestingly, "some mutations... that had been fixed at 120h disappeared at 155-170 h but reappeared after 195h. These results indicated that the evolutionary [[process]] of the host RNA was not uni[[direction]]al as had been observed in our previous study (7) performed in the absence of parasitic RNAs, but seemed to be bidirectional, which might be caused by the coexistence of the parasite that changed the [[environment]] for evolution of the host RNA." The creativity of the strata. p3. Additionally, theses forms do not pre-exist teleologically, they are determined as singularities in response to what is singular, their repetition is not identical, it is disguising and displacing, always new, always different.
"...it should be noted that the [[sequence]] results of parasitic RNA might contain larger uncertainty than that of the host RNA..." Further showing how the parasitic RNA is of the first articulation, the more unstable of the two.
"The changes in the population dynamics (Fig. 3 A and B) suggested that the host RNA acquired the ability to replicate in the presence of excess parasitic RNAs. To confirm this suggestion, we performed a competition experiment between the host and parasite RNAs. We used the original host RNA and one of the host clones obtained at 215 h (evolved host RNA) as the host RNAs and s222 as the parasitic RNA. We mixed 10 nM of the original or evolved host RNA with the parasitic RNA in 100-fold excess and incubated the mixture in the translation system. When using the original host RNA, the parasitic RNA predominantly amplified and the host RNA replication was repressed (Fig. 4A, Left). When using the evolved host RNA, both the host and parasitic RNAs replicated to almost the same amount (Fig. 4A, Right), indicating that the replication of the evolved host RNA had acquired resistance against the presence of the parasitic RNA." Fascinating.
"We identified two possible causes of the parasite resistance: improved activity of the evolved host RNA as a replication template or increased specificity of the replicase encoded by the evolved host RNA" What does "improved activity..." [[signify]]? "The increased specificity of the replicase encoded by the evolved host RNA," is actually something that requires thought and commentary I've yet to be able to make sense of. Without a doubt, there must be swarms of [[sign]]s produced within the environment to which the host RNA is somehow reacting.
"All these [[teleonomic]] performances rest, in the final analysis, upon the [[protein]]s so-called "[[stereospecific]]" properties, that is to say upon their ability to "recognize" other [[molecule]]s (including other proteins) by their shape, this shape being determined by their molecular structure. At work here is, quite literally, a microscopic discriminative (if not "cognitive" [[faculty]])." Chance and Necessity, p46. Here, the RNA is not reacting to shape, but [[proliferation]]. The ability to produce, by the second articulation, something that the first articulation is able to make less use of, that's another way to put it. "...the parasite resistance of the evolved host RNA can mostly be [[attribute]]d to a functional change of the replicase encoded by the evolved host RNA.
Discussion of the necessity of compartmentalization dynamics for the [[prebiotic]] soup to appear, and how this stabilization of oscillation experimentally demonstrated here "might have played an important role in the accumulation of genetic molecules in the prebiotic world." p4
"Accumulating evidence has suggested that the existence ofparasites is not only an obstacle for host replicators but also plays an important role in host evolution by maintaining the genetic diversity of the host species (16, 18). In this study, we found that the evolution of the host RNA in the presence of parasitic RNA was bidirectional (Fig. 3C), which contrasted with the unidirectional evolution that occurred in the absence of parasites in our previous study (7). The existence of the parasitic RNA might increase the diversity of the host RNA by increasing the number of possible evolutionary pathways. In addition, the existence of parasites is proposed as one of the driving forces of host evolution in the Red Queen hypothesis (29), in which the evolution of host species becomes accelerated by rapidly evolving parasitic species through an evolutionary arms race. In this study, we found that the
host RNA acquired a certain level of parasite resistance, and thereby the parasitic RNA replicated at a lower concentration than the host RNA in the last few rounds (200–215 h, Fig. 3A). It remains to be determined whether the parasitic RNA might evolve to be replicable again by the evolved replicase after further rounds of replication. Overall, this host–parasite replication system might be a useful experimental model to investigate host and parasite
coevolution processes in detail." p5, concluding paragraph
[[First SetMB]]
"Even in a simplest [[form]] of [[replication]] [[system]]s, [[parasite]]s inevitably appear through a [[function]]al loss of self-replicating [[molecule]]s and threaten the [[sustain]]ability of the replication system. Theoretical studies suggested that [[spatial]] [[structure]]s, such as [[cell-like]] [[compartment]]s, allow self-replicators (ie. hosts) to [[survive]] by limiting the [[propagation]] of [[parasitic]] replications." p1-2 Is [[evolution]] something that is [[coextensive]] with [[life]], the way [[Maturana]] and [[Varela]] claim that all life is [[cognition]]? It is undoubtedly coextensive with [[actualization]].
"In a subsequent study (Bansho et al., 2016), we performed a serial transfer replication experiment of the aforementioned RNA replication system to study the evolutionary process of the host and parasitic RNA replicators. We reported that the host and parasitic RNAs showed oscillating population dynamics and that the host RNA acquired a certain level of parasite-resistance in the final rounds of the replication experiment (43 rounds, 215 hr). However, we did not observe counter-adaptative evolution of the parasitic RNA to the host RNA, and the coevolutionary process of the host and parasitic RNAs remains unclear.
In this study, we reasoned that a much longer time may be necessary for coevolution of the host and parasitic RNA replicators..." p2
Looking at fig 2 p4-the absolute dip in the Host that 'kills off' the parasites, yet when host increases, back they come. Are there certain 'species,' perhaps better worded as "are there certain life-forms," that always come with others? This 'host' always comes with 'parasites.' This [[process]] always comes with [[emergence]] of novel [[form]]s, with a ghost of the [[virtual]] waiting to be borne into the [[actual]]. The spider has a fly-[[motif]] in it's head (Refrain Plateau).
In the later [[stage]] (rounds 95-116), the [[concentration]] of the hose and parasite-a further increased. and the [[oscillation]] [[pattern]] became unclear."
what does this non-clarity signify?
"In this [[regime]], we observed the appearance of new parasitic RNA species of different sizes... We termed these new RNAs parasites because each clone of these RNAs did not replicate along. Such continuously changing [[population]] [[dynamic]]s can be caused by successive [[adapt]]ation processes between host and parasitic RNAs." p5
"The mutational patterns of the host and parasitic RNAs in this study suggest an interesting possibility that parasites could bring about new information in a molecular population. Parasite-accumulated nine dominant mutations in the 3’-UTR, whereas the host RNA never accumulated dominant mutations during long-term evolution in the region (Figure 2—figure supplement 3). This result suggests that mutations in the 3’-UTR of the host RNA are severely limited (constraint imposed by translation efficiency). Evolving and persistent parasitic molecules with less mutational constraints may add genetic novelties to the whole molecular ensemble and play a role in the evolution of complexity (Adami et al., 2000)." Not only does the host RNA contain the parasite as a virtuality whose repetition (of the 'container') causes differenciation qua actualization, in actualizing the parasite, new [[potential]]s are created, new 'genetic novelties' enter the scene. p9
"It is generally believed that evolution progresses toward more complexity in nature (Petrov, 2001; Sharov, 2006); however, genome reduction is also a popular mode of evolution (Albalat and Can ̃estro, 2016; Morris et al., 2012; Wolf and Koonin, 2013). Therefore, the condition in which genomic information expands and reduces is a fundamental question." [[becoming]] is [[involution]] (becoming plateau). p9
"A remarkable phenomenon in our study is that longer parasites with a long RNA genome appeared after long-term evolution (after 94 rounds). The new parasites, parasite-band parasite-g, became longer because they retained a part of the M-site sequence, a recognition site for Qbreplicase (Meyer et al., 1981; Schuppli et al., 1998), which did not exist in
parasite-a. A plausible scenario for the appearance of these parasites is as follows: (1) parasite-a first invaded the system, taking advantage of its short genome for faster replication; (2) the host RNA evolved the specificity of Qbreplicase to host-specific sequences (including the M-site) to circumvent parasite-a; and (3) the new parasites invaded the system because they retained evolved M-sites that were recognized by evolved Qbreplicases when they appeared from the evolved hosts. According to this scenario, the new parasites appeared to be expanding the genomic information to cope with the evolved strategy of the host RNA, which may be consistent with recent theoretical studies that suggest that host-parasite antagonistic coevolution is an effective mechanism to increase the complexity of individuals (Seoane and Sole ́, 2019; Zaman et al., 2014). The next important question
would be whether further long-term coevolution can lead to genome expansion of the host RNA." p9/10
[[First SetMB]]
"...the irregularly changing [[host]] and [[parasitic]] [[RNA]] [[concentrate]]ions in the early [[stage]] turned into a relatively regular [[oscillate]]ion in the late stage." Oscillation as a [[machinism]]/[[mechanism]] to maintain [[metastable]] states in [[complex]] [[system]]s. A more [[profound]] [[rhythm]]icity underlying the existence of [[being]] qua [[differentiate]]d [[state]]s; they are the [[sedimentation]]s of these [[becoming]]s, the [[point]]s that are the poles of the oscillation show the profound nature of the rhythmicity in its functioning; not all its [[function]]ing but int its functioning of the stabilization of the [[system]] under consideration. Rhythmicity as a stabilization of [[dissipative]] structures.
74 and 30 unique [[mutant]]s for host and parasitic RNAs, respectively and 7 common mutation...
"The ancestral host RNA (Ancestor) initially accumulated mutations (ancestral lineage, HL0) and then diverged into two host RNA lineages (HL1 and HL2), corresponding to those containing Host-99 and Host-115 RNAs detected in the previous study 29, respectively."
Similar to the first paper, these exist as a [[virtual]]ity within an [[actual]]ity. Reproducing the same under the given [[condition]]s for [[emergence]].
2
"The [[transition]] to the [[coexistence]] of [[diverse]]ified RNA [[lineage]]s raised the [[possible]]ty that RNAs in each lineage replicated [[interdependent]]ly." [3]
"The graphs indicate the transition of RNA replication relationships through the long-term replication experiment. At round 0, the ancestral RNA (HL0) was replicated by the self-
encoded replicase (“HL0 replicase”). At round 120, two host (HL1 and HL2) and one parasitic (PL2) RNAs appeared, but their interaction was limited. Both HL1 and HL2 replicated with their respective replicases without detectable interdependency. HL2 replicase also replicated PL2 as efficiently as HL2, whereas HL1 replicase did not. At rounds 155–158, another host RNA lineage (HL3) appeared, and the replication relationship became
complicated. HL1 and HL2 were mainly replicated by their respective replicases, whereas HL3 was primarily replicated by HL2 replicase. PL2 was also preferentially replicated by HL2
replicase. At round 228, another parasitic RNA lineage (PL3) appeared, and the replication relationship became even more complicated. HL1 acquired the ability to utilize HL2 replicase, as well as the self-encoded replicase. HL2 replicase could replicate not only HL2 but also all other RNAs. HL3 replication still largely relied on HL2, although the dependence was weakened compared to rounds 155–158. In parasitic RNA clones, PL2 was only replicated by HL2 replicase, and its replication by the other replicases became negligible. In contrast, PL3 was replicated by all three replicases similarly, but none of the replications was as efficient as that of PL2 by HL2 replicase, indicating that PL2 is an HL2-specific parasite, whereas PL3 is a general parasite. These results demonstrated that the RNAs in each [[lineage]] have different
biochemical properties, and the replication relationship among the RNAs gradually changed as evolution proceeded to form a larger replicator [[network]]." [4]
[img[graph.png]]
Fig. 3 Development of replicator networks. a–c Frequencies of the lineages in total sequence reads of the analyzed genotypes for the host (b) and parasitic (c) RNAs, with horizontal lines above the graphs (a) indicating rounds where the frequency of each lineage is more than 0.1 %. d Directed graphs based on translation-uncoupled experiments (Fig. 4) for representing interdependent replication of the RNA clones of each selected round. Nodes represent RNA clones of indicated rounds. Arrows indicate direct replication with widths proportional to binary logarithm of the measured levels of relative replication. Gray dashed lines indicate undetected replication events from host RNA clones.
It should be noted that although we focused on interactions between two RNAs, there may be higher-order interactions that arise only when an RNA is replicated by multiple RNAs
simultaneously. However, we confirmed that such higher-order interactions played only a minor role in the replicator network (Supplementary Text 2, Figs. S17 and S18)." 5
These experimental and simulation results demonstrated that the replication relationship
among the selected RNA clones explain the sustainable replication of at least four RNA ineages. "
Finally, we examined how the four RNAs could sustainably replicate when competing with each other. Hypothesizing that each RNA helped sustain the replication of others, we simulated continuous replication by removing each of the four RNAs from the five-member network. We found that the absence of HL1-, HL2-, PL2-, and PL3–228, tended to cause the extinction of PL3-, PL2-, HL1-, and HL2- and PL2-228, respectively (Supplementary Fig. S21). A serial transfer experiment in the absence of HL2–228 reproduced the simulated replication dynamics in that PL2-228 was diluted out (Supplementary Fig. S20b). These results support
the interdependence of the four RNAs, facilitating the coexistence of multiple replicators. Of note, the experiments in the absence of the other RNAs (HL1-, PL2-, and PL3–228) were unsuccessful because the removed RNAs appeared soon, probably due to the presence of contamination at an undetected level and/or de novo production through recombination and mutations.[6]
"...our simulation displayed that removing one RNA replicator typically drove other RNAs to
extinction (Supplementary Fig. S21), partly supported by experiments (Supplementary Fig. S20b), indicating that the RNAs in the network may have sustained each other indirectly."
Parasitic replicators as driving [[complex]]ity, p7 second side.
In the present study, we defined parasitic RNAs as shortened sequences that deleted the replicase gene and can replicate only in the presence of a replicase-encoding RNA (host RNA). Similarly, some of the host RNAs in the population may produce dysfunctional replicases and replicate only by utilizing active replicases translated from other host RNAs. Our previous transfer experiment showed that approximately 60% of a host RNA population did not produce functional replicases due to random mutations 31 . Although we focused only on dominant mutations in this study, heterogeneity in replicase activity may be an important factor to consider for a comprehensive understanding of the evolutionary dynamics.
[[First SetMB]]
Evolutionary transition from a single RNA [[replicator]]
to a multiple replicator network
"In prebiotic evolution, self-replicating molecules are believed to have evolved into complex
living systems by expanding their information and functions open-endedly. Theoretically,
such evolutionary complexification could occur through successive appearance of novel
replicators that interact with one another to form replication networks. Here we perform
long-term evolution experiments of RNA that replicates using a self-encoded RNA replicase.
The RNA diversifies into multiple coexisting host and parasite lineages, whose frequencies in
the population initially fluctuate and gradually stabilize. The final population, comprising five
RNA lineages, forms a replicator network with diverse interactions, including cooperation to
help the replication of all other members. These results support the capability of molecular
replicators to spontaneously develop complexity through Darwinian evolution, a critical step
for the emergence of life." -from the abstract
"...it has remained an open [[question]] whether a single [[molecular]] [[replicator]] can [[evolve]] into a [[complex]] [[replicator]] [[network]]." p2
"Here, we continued the serial transfer experiment up to 240 rounds (1200 h) [prior experiment was 600h]. Sequence analysis uncovered that two previously detected host RNA lineages became sustained and further diverged into multiple sublineages of host and parasitic RNAs. The population dynamics of each lineage gradually changed during the evolution, from dynamically fluctuating stages to quasi-stable coexistence, suggesting the appearance of co-replicative relationships among the lineages. Biochemical analyses supported the co-replication of dominant RNAs in the different lineages containing a cooperative RNA that replicates all other members, thus establishing a multiple replicator network." p2
[[First SetMB]]
"Evolvability is a fundamental and inescapable property of such a replicator-replicase [[system]] [43]. To be evolvable, a system must possess three basic properties: 1) heredity (whereby the location of progeny in the phenotype space is correlated with that of the parents),
2) variability (whereby the progeny is not identical to the parents), and 3) differential reproduction (whereby the capability of a replicator to leave progeny is part of the phenotype). Heredity is ensured by replication with fidelity above the error catastrophe [[threshold]]. The replicator theory that was developed primarily by Eigen and colleagues demonstrates that, under simple fitness [[landscape]]s, there exists a [[replication]] fidelity [[threshold]], below which the [[master]] [[sequence]] in a population of [[replicator]]s cannot be efficiently passed across [[generation]]s, so that the entire [[population]] collapses [44, 45]." 2
"Differential reproduction ensues from the fact that the replicator encodes the replicase that, in turn, copies the replicator itself. Mutations in both RES and RRS can affect the efficiency of replication. If the resources that are available to the system are limited (i.e. the system cannot support unlimited growth of all possible constituent parts), competition between individual replicators ensues and selection arises. In a system with finite [[memory]] storage, all information exchange, transfer and utilization processes carry a memory clearing cost.. Therefore, selection for cost reduction acts not only on the constituent parts of the system, but also on the information transfer processes themselves, effectively ensuring an upper [[limit]] on the fidelity of information transmission." 3
a replicator containing the full RRS, but omitting at least some of the RES... would not only serve as a template as efficient as the original replicator, but would also enjoy an evolutionary advantage because replication of the smaller replicator is faster and requires less resources (building blocks, such as nucleotides, and energy). This makes the parasite-free equilibrium point of the replicator-parasite system unstable because deletion of any part of the RES yields more efficient replicators (Fig. 4). Therefore, the system is vulnerable to parasite invasion, and moreover, such an invasion is inevitable under a non-zero parasite [emergence]] rate..."3 [[emergence]] of [[parasite]]s coming about as the [[invention]]/[[create]]ion of advantageous [[machinisim]].
We have to remain on guard against some [[telos]] instead of [[teleonomy]]; parasites don't emerge from some teleological cause, some permanent drive to efficiency of replication, but are differences differentiated by [[repetition]]. [[evolution]] is not to be thought of as a [[punctual]] [[system]], as in a movement from point to point. It is yet another way of [[investigate]]ing [[process]] at the most [[metaphysical]] of [[level]]s. The constant manner in which each [[repetition]] produces [[difference]]s, and in how [[complexity]] is [[emergent]], but not necessarily an [[accumulate]]ion, or a [[creation]] of a [[stock]], is to be understood as a [[foundation]]al part of the discussion that's at hand, rather than an understanding of a [[movement]] that bears [[coherence]] through some form of [[measurement]], be it the consistent emergence of a host-parasite type, be it from less to more differentiation, be it to an increase of genetic [[variation]]. The only constant is constant [[variation]], and the necessity to 'follow the actors themselves,' that is, to make use of the emergent [[quality]]s, the [[strata]], [[assemblage]]s, to question the [[effectuation]] of whatever [[abstract machine]] is at hand. Here, the experiment complex obviously is effectuating a given abstract machine, and measuring phylogeny as well as the stabilization of a [[replicator]] [[network]]. Fine. But that isn't a given in [[evolution]], the only given in evolution is the only given in difference and repetition which is the only given in process which is the only given in [[infinite]] [[regress]] which is the only given in...
[[First SetMB]]
[[thirdness]] is [[mediation]], [[secondness]] is [[relation]]. [ [[firstness]] is [[immediacy]] ]
[[12CS14]]
the code and the flow are absolutely [[form]]ed face to face with each other. [[reciprocal presupposition]]. in relation to flows... by virtue of a code, there is something that must pass through. It involves forming a sort of [[system]]...a physical system with [[territoriality]]s: something enters, something exits... women present themselves in the form of a flow, of this flow, the social code means this: in relation to such a flow, something of the flow must pass through ie flow; something must not go through, and, [[third]]ly-this will make up the [[three]] fundamental terms of every [[code]]- something must effect the [[pass]]ing through, or, on the contrary, the [[block]]ing.
[[double articulation]]
[[code]]
[[AO p5-2]]
...a [[surface]] belongs to neither domain but constitutes both. It is therefore a site of [[differentiation]], but it is also a [[difference]] in its own right-in [[Deleuze]]'s terms, it is a difference in itself, that serves as a [[differenciator]]: "[[sense]] is never only one of the two terms of the [[duality]]... it is also the frontier, the [[cutting edge]], or the [[articulation]] of the difference between the two terms, since it has at its disposal an [[impenetrability]] which is its own and within which it is reflected... the surface is not a [[singular]] phenomenon... there is a surface formed at the interstices of [[material]] [[body]]s; on the other hand, a surface of sense is [7] embedded in [[language]]... to operate and make sense. The first surface refers to material [[simulacra]], while the second refers to [[phantasm]]s of [[thought]]. Deleuze]s ultimate concern is a second-order surface where these surfaces of thought and thing intersect.
[[From Negation to Disjunction: Deleuze and Klein]]
On the level of matter, you will only find aggregates infinitely divisible and infinitely composable. So, I am just saying that aggregates ignore angles. Aggregates are [[curve]]s. As they go all the way to infinity, a curve that goes to infinity is a fold. Aggregates create [[fold]]s. [[LATB1-5]]
...[[form]] is the [[distinction]] itself, in that it imposes the [[indication]] (and thus the [[observation]]) of one side or the other and... can for this very reason not realize its [[unity]] on its own. The unity of the form s... the excluded [[middle]] that cannot be observed as long as we observe with the aid of the form. [concept of form= [[reciprocal presupposition]], which is a prerequisite for "[[draw]]ing a distinction" on top of page, we indicate, we observe, then we pursue. A sort of [[triad]].]
[[TS29]]
A [[medium]] consists of [[loose]]ly [[couple]]d [[element]]s, whereas a [[form]] joins the same elements in a [[strict]] [[coupling]].
[[TS118]]
Neither form nor medium reaches bottom: there is no bottom. Forms are temporary fixations of [[element]]s within a medium, and when enough life forms coalesce, they become another medium for a new, [[emergent]] [[set]] of forms...
[[EE4]]
I am always seeing [[form]] as a structure of relations that can also have different [[structure]]s of [[relation]]s than their [[element]]s
[[HE166]]
The [[form of content]] is reducible not to a thing but to a [[complex]] [[state]] of things as a formation of power (architecture, regimentation, etc.). From [[ATP p66/67-1]]
”a [[technical]] [[social machine]] that preexists them and constitutes states of force or formations of power.” [[ATP p63-1]]
What is the relation of this and the [[abstract machine]]? Especially [[ATP p63-2]]
"The third principle concerns free association. The [[observer]] must abandon all a priori distinctions between natural and social events. He must reject the hypothesis of a definite [[boundary]] which separates the two. These divisions are considered to be conflictual, for they are the result of analysis rather than its [[point]] of [[departure]]. Further, the observer must consider that the repertoire of categories which he uses, the [[entity]] which are mobilized, and the relationships between these are all topics for [[actor]]s' discussions. Instead of imposing a pre-established [[grid]] of analysis upon these, the observer follows the actors in order to identify the manner in which these define and [[associate]] the different [[element]]s by which they build and explain their world, whether it be social or natural" (Callon, 1986).
[[redundancy]] has two [[form]]s, [[frequency]] and [[resonance]]; the first concerns the [[signifiance]] of information, the second (I=I) concerns the [[subjectivity]] of [[communication]]. It becomes apparent that information and communication, and even [[signifiance]] and [[subjectification]], are subordinate to redundancy.
[[ATP p79-2]]
...the [[model]] is truer than [[ture]] (being the quintessence of the significant features of a situation) and thus produces a vertiginous sensation of [[truth]]...
Does this only occur at the [[level]] of the [[abstract machine]]? It ties directly into it,
"The abstract machine is pure Matter-Function-a [[diagram]] independent of the [[form]]s and [[substance]]s, [[expression]]s and [[content]]s it will distribute."
[[ATP p141-2]]
As a general rule, in order to identify any type of verbal [[operant]] we need to know the kind of [[variable]]s of which the [[response]] is a [[function]]. In a given [[verbal]] [[community]], however, certain formal properties may be so closely associated with specific kinds of variables that the latter may often be safely [[infer]]red
[[VB70]]
The [[probability]] that a [[verbal]] [[response]] of given [[form]] will occur at a given time is the basic [[datum]] to be [[predict]]ed and [[control]]led. It is the “[[dependent variable]]” in a [[functional analysis]]. The [[condition]]s and [[event]]s to which we turn in order to achieve prediction or control—the “[[independent variable]]s”—must now be considered.
[[VB62]]
[[Territory]]
thus Territories never given as an object but always as an [[intensive]] [[repetition]], as piercing existential affirmation. And I repeat, this [[operation]] is effected through the borrowing of [[semiotic]] [[link]]s, detached and diverted from their [[signifying]] and [[coding]] tasks. Here, an [[express]]ive instance is based on a [[matter]]-[[form]] relation, which [[extract]]s [[complex]] [[form]]s from a [[chaos]] (chaotic) [[material]].
[[CMO p28-1]]
[[Universe]]
[[phylum]]
[[Flux]]
...[[generality]] expresses a [[point of view]] according to which one term may be exchanged or substituted for another. The exchange or substitution of [[particular]]s defines our conduct in relation to generality. [[RD1]]
Any response used in conjunction with different [[mand]]s specifying different [[reinforcement]]s comes under the control of different [[deprivation]]s and acquires certain [[general]] properties. Please is the best known example. It is strengthened by almost any state of deprivation, and is often [[emit]]ted without further specification of the behavior of the reinforcer... Since the [[listener]]’s subsequent behavior may be relevant to many states of deprivation, these responses come under a rather broad [[control]]. [[generalize]]d mands reinforced by the [[attention]] of the listener are often used in [[conjunction]] with other types of verbal behavior to be considered later.
[[VB76]]
But [[generalize]]ation]], like [[metaphor]], is merely a characteristic of [[stimulus control]]. The more precise control established by the community in [[abstraction]] has sometimes caused this term to be applied to (1) the history of reinforcement producing the desired result, (2) the resulting response, and (3) the controlling property of stimuli.
[[VB162]]
Instead of using a great variety of reinforcements, each of which is relevant to a given state of deprivation or aversive stimulation, a contingency is arranged between a verbal response and a [[generalized conditioned reinforcer]]. Any event which characteristically precedes many different reinforcers can be used as a reinforcer to bring behavior under the control of all appropriate conditions of deprivation and aversive stimulation [for instance, verbal praise]. A response which is characteristically followed by such a generalized conditioned reinforcer has dynamic properties similar to those which it would have acquired if it had been severally followed by all the specific reinforcers at issue
[[VB87]]
Stroll's best kept secrets are the many ways you can extend and refine it!
!!!The Goodies page
*I have a page of goodies I and others have specifically made for Stroll. Find it [[here|https://giffmex.org/stroll/goodies.html]].
!!!The ~TiddlyWiki toolmap
*The [ext[TiddlyWiki toolmap|https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM]] is a list of hudreds of plugins you can use with Stroll. Keep in mind that plugins that tamper with the layout could break the Stroll layout.
'[[potentiality]]' is the
correlative of '[[givenness]].' The meaning of 'givenness' is that what is 'given'
might not have been '[[given]]'; and that what is not 'given' might have been
'given.'
[[P44]]
[170] Perhaps I should emphasize why I hold these [[second-order]] concepts to be so important: As soon as you with- draw to the area of the second-order—the understanding of understanding, the knowledge of knowledge—the first-order problems are suddenly illuminated in ways that you can’t perceive on the first level.
The purpose of [[purpose]] is the determination of [[goal]]s without having to consider the ways, routes, and trajectories right away. And that also hits on the point that Norbert [[Wiener]] and the early [[cybernetic]]ists recognized very decisively: What does the navigator who wants to get into the harbor do? In a purely physical way I can never determine what course the ship will take to get into the harbor. The wind is roaring from the left or right, obstacles sud- denly tower before you, other ships are crossing. Laying it out like this just isn’t possible. But as a rule the navigator manages to get the ship safely to harbor because he constantly sees the divergences from the course and can correct the steering—and in this way finally lands in the harbor. And that’s why the introduction of purpose makes cybernetic [171] and physical sense: It’s purposeful. It relieves me of the burden of having to constantly deal with the next step.
[purpose as [[continuous]] not [[discrete]] ]
[[HE169/170]]
...[[grammitization]]... [[analysis]] as discretization of the [[continuous]].
[[SM1 p49-1]]
iVBORw0KGgoAAAANSUhEUgAAA8AAAAOjCAYAAAB0tm1vAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xd4VFX+BvD3Tp/0hISQACmEAKEjSFGKgIWqAqKLolhWRH/Yd92iW1xdy+pa1rWsggoKKFjpIhiqEAhCEgIhnZCETPokmV7u74+Q4JBk0mYyIfN+nsdH5t6Zc7+TTGbmvefccwRRFEUQERERERER9XASTxdARERERERE1BUYgImIiIiIiMgrMAATERERERGRV2AAJiIiIiIiIq/AAExERERERERegQGYiIiIiIiIvAIDMBEREREREXkFBmAiIiIiIiLyCgzARERERERE5BUYgImIiIiIiMgrMAATERERERGRV2AAJiIiIiIiIq/AAExERERERERegQGYiIiIiIiIvAIDMBEREREREXkFBmAiIiIiIiLyCgzARERERERE5BUYgImIiIiIiMgrMAATERERERGRV2AAJiIiIiIiIq/AAExERERERERegQGYiIiIiIiIvAIDMBEREREREXkFBmAiIiIiIiLyCgzARERERERE5BUYgImIiIiIiMgrMAATERERERGRV2AAJiIiIiIiIq/AAExERERERERegQGYiIiIiIiIvAIDMBEREREREXkFBmAiIiIiIiLyCgzARERERERE5BUYgImIiIiIiMgrMAATERERERGRV2AAJiIiIiIiIq8g83QBnmC1WlFQUIDS0lJIpVIEBQUhLi4OEgnPBxAREREREfVUXhOArVYrNm3ahLVr1+LgwYOoq6tz2O/v74+FCxfihRdeQP/+/T1UJREREREREbmLIIqi6Oki3M1ut2PGjBnYt29fq/cNDQ3F4cOHMXDgwC6ojIiIiIiIiLqKV4z5LS8vbxJ+fX19ERcXBz8/vyb3feaZZ7qyPCIiIiIiIuoCXhGAAwICoFKpEB4ejhdeeAE5OTmoq6tDdnY2tFotXnrpJYf779ixA2az2UPVEhERERERkTt4xRBoADhz5gxiY2OhUqma7LPb7ejfvz+Ki4sbt2VmZiI+Pr4rSyQiIiIiIiI38ooeYABISEhoNvwCgEQiQVRUlMO22trariiLiIiIiIiIuojXzALdoKKiAvv27cPZs2eh0WhgMBgAAPn5+Q73s9vtHqiOiIiIiIiI3MVrAvCFCxfw9NNPY+PGjbDZbJ4uh4iI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t0toH92Bt19+QVaaboJMJhNPPvlkpefu3Xff5cSJEyxdupRFixbxyy+/cPr0ad577z0PRCpq4qOPPmLXrl0sWbKEBQsWsHr1aoxGI//5z3+cbb799ls2btzIp59+yuLFi1m/fj2tWrXi5Zdf9mDk4nwn09OY/siDJCfsc6vLy81l1msvc82wEcz9dgmvf/Axc+Z/S3FxER/OesvZ7r3XX8HX35+fV65i8eLFfPnll6xevZply5Y15FsR58jLzeHF//yTjWvXVFr/yfuzOJmezsKFC1mwYAG//vorHTt2ZMaMGc42b7/9NllZWSxbtoxFixbxww8/cOzYMebMmdNQb0Oc44knnsDb25vVq1fzzTffsGbNGrp06eLyt3Xu3LkkJiayYMECFi1axMqVK7FYLLz22mvO43z55Zds27aNL774gsWLF7NmzRr0ej0vvviip95ai/biiy+Snp7OihUr+Oabb1i9ejXXX389zzzzDFlZWW7tX3vtNVJTU93K161bx3fffcd///tfli5dyrp164iJieGpp55qiLfRpEgCLKoVFhbGvffeS3h4uFudj48P06ZN44MPPuC5554jLq52vbLnW7p0KZ06deK2224DwMvLiwcee5LM06fYuW1rnb6WqH8vv/wyoaGhdO3a1aVcVVWWLl3K5MmT6dChAwARERHcdtttLFmyBIvF4oFoxYUkJiYSFxdHly5dAPDz82PQoEHEx8dTMbBo6dKljBw50tkz4ePjw7333suGDRs4efKkx2IXZ/20dAkPTJmETq8jbuCVbvU7/tiCuayMiVPucvbkRrRqzcg/3UjC7l0AZGacZu+uHdxy+1Tn9nh9+/ZlzJgxLFiwoOHejHDasfUP7pk0gZMn0rhu1A1u9WVlZaxfs4o77r6PHj16AGA0Gvn73//Oddddh9VqxW6388MPPzBx4kTniI2oqCjuvPNOvvvuO7kR3cBOnjzJvn37+Otf/+oc8uzt7c348ePJyMjg2LFjQPn37rhx45zT0SIiInjooYf46aefKCwsdLYZPny487otMDCQRx55hDVr1pCdnd3wb64Fq5hiMGHCBOfoKY1Gw6RJkzCZTOzdu9el/aZNm1ixYgWjR492O9bSpUvp1q2bszNKr9fzr3/9i4MHD7Jz5876fzNNiCTAotHat28fffr0cRlO0rFLVxRFYX+ie0+FaLxW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NBw9274ntbKgEqjtEW4r257ahs/jw9HXQfdh3dusXRERERGRzkgJcBcyZMgQhgxp/yG5LXXjjTc2ua+6upo//OEPWK1Wnn766YAvzuWscHLw+4P1ttnCbEz47SQ+fWI9ZXllx2wj5YxURs45jfKCcsoLyuvt6zm8J4bp+FcaKfq6iINf1caXPD75+NvZXoTX6aWqsIrd7+7m66e+xh5r54IXL8B0jHIZIiIiIiLBTglwF7Jp0ybWrVt619LSAAAgAElEQVRHbm4uAwYM4Nprr2XZsmX079+ftLS0QIdXx+fzcfPNN9OvXz9uv/12DCPwS1AW7izkrZvfOKE29m/ax/5N+xrdd/0HNxIS0fokv6qwipy1OXzy20/weXz0n92f+FPjj31iI0r3lvLsqc/W2xadFs05j5xD0pik42pTRERERCSYKAHuAsrKyrjllltYv3593baKigoAli1bxm9+8xtuvfVWrr322uNqPz8/n9jYWGy2hkNvPR4PRUVFOByOFtcX3rBhA2vXriUkJIRbbrkFgNDQUP7xj38cV3xdjd/r55/GPxtsT5uexrmLzz3udiN7RTLhnxPweXxUF1VTvKuYPe/v4c3z36TfzH5c8J8LsIZrQRQRERER6bqUAAc5n8/HjTfeyOeff84ZZ5zBpEmTePrpp+v2/+xnP2PNmjX861//onfv3kydOrVV7a9du5brrruOV155pW7u7hEvvPACDz30EBUVFZjNZubMmcP//u//HrNHd/jw4axataretkCXZwp12Ek9I7XZY/K+zsNV5WqwPTo5GkdS83N+zZZWzME2IPWc2ljssXai06Lpe0Ffep7Vs+VtNMJkNXHab0+rt61sfxmvT36d3e/sZu2da5n00KQTeg8RERERkc5MCXCQ++STT9i8eTMLFizgtttuA+CVV16p2z9v3jxOP/10fvnLX/LYY4+1KgHetGkTt9xyS6P1hT/44APuuece7rjjDmbNmsXGjRv53e9+R0xMDDfffHOz7UZERBAREdHiODpC/CnduPChi5rcX5ZbyuLZzwBgtprpPjCBvK9zAbBH2ps9t7WO1AHuCFEpUUx6eBJvnvcmO1/eqQRYRERERLo0rXoT5D799FMMw+C6665r8pj09HRmzpzJ7t278fl8x2yzpqaGe+65h3nz5jFo0KBGj1m4cCHDhg1j7ty5REZGMmXKFK6++mqeeuopSkpKjvvzdFaZazMBiEyIZPb/XcwvHr+E8bdMwGw1k/9tPhWFFQGO8PjFDogFoOpgFT7Psf/7EBEREREJVuoBDnKlpaWEh4cTFRXV7HFRUVE4nU6qqqqO2fuanZ3N6tWreeSRR0hISKir2XtEdXU1u3bt4qabbqq3/ayzzmLRokVs27aNcePGHd8HakZpdmabtbU1+9jH/NjX731F7Klx9L9iALnOXHK/yIV+kH7LUL5b/C2rX/mEHmclnlBM7sNuAPx+P1u2bGnROflZ+UDtfwfNnuMHmhiZXrC8AIDQXqF8+dWXLY5XROSnWnttlcD7Qt+ZSJvQbyl4KAEOcrGxsVRUVJCbm0tSUtMr+X777beEhoYSHh5+zDb79u3LihUrMAyD7du3N9hfWFiI1+slPr7+asRHXpeWlrbyU7SMI7ntVrLuE+/A3MKyRO5qN5YZFobNHtYwiRwJY6aMZteHu0gfeeoJxVRVUMU61mEYBiNHjmzROTu27+BbviXcGk6/mH4N9ofEhGCPsfPO7HcIiQph6LVDSRqdVPc59ry/h00PbwJg1M2jWvy+ItI17C5s2xE7rbm2yvHJKirD04LRXC2V1s3RKaoxiHQkv99P5sG2vV/tqN9SSztJpGlKgIPc2LFjWbx4MX//+9958MEHsVgafqXvvfce69ev56yzzmrRD9Nsbn7BpsOHDwMQExNTb/uR1x6Pp6XhBwVrqJVhPx/W5P6QSDvpF55Y8nvcfvg693+8nyfTnmywO216GrPenUVY9zC+euwrtj+7HYvdQkTPCCrzK3FX1vY6D7p8EKf95rQG54uIiIiIdCVKgIPc2LFjGTduHCtXrmT27NnMnj2byspKSktLefPNN1mzZg0rVqzAZDJx4403tul7O53Oeq9drtoVko+VQEvjrBFW+l3YD0toy3+Wvcb1YvAVg/HWNFyoDCB5QjIAkxdNpu/5fdn9zm6Kvi6iqqiK6H7RdDu1G4N/OZjeGb3b4iOIiIiIiHRqSoC7gH//+9/cdtttrFq1invuuQeoHab85Ze18zkjIiL4y1/+wogRI9rk/WJjaxdNKi4urrf9yGurVbVkj4c13MqF/72wVec4ejs4//nzj3mcYTJIm55G2vS2G0YuIiIiIhJslAB3AWFhYSxatIjPPvuMDz74gKysLJxOJ7GxsYwcOZIZM2bgcDRfp7Y1evXqRXh4ONnZ9Wf779+/H4DU1Obr6YqIiIiIiASCEuAgt337dv773/9yySWXMGrUKEaNGtXu72k2m5kyZQrvv/8+v/rVr3A4HPh8Pl599VV69erFgAED2j0GERERERGR1lICHOSWLl3Kiy++iMPhoH///h32vrfccgtr165l7ty5zJgxg88++4x169axcOFCzQEWEREREZFOyRToAOTEHFlxOTk5uV3aj42N5ZJLLiEuLq7e9sTERN566y3GjBnDp59+SnR0NE8//TSTJk1qlzhEREREREROlHqAg1xGRgZvvPEGS5cu5bzzzsNut7dp+0lJSdx9992N7uvRowd/+MMf2vT9RERERERE2osS4CCXkJDAr371Kx544AHGjx/PsGHDSExMJDIyssGxPXr04Je//GUAohQREREREQk8JcBB7u2332bRokUAlJSUsHr16iaPTU9PVwIsIiIiIiInLSXAQW7SpEkkJCS06Ngj9XtFRERERERORkqAg1x6ejrp6emBDkNERERERKTT0yrQQWb//v3s3LkTr9cb6FBERERERESCihLgIHPnnXcyc+ZMSkpK6m33+/1UVlZSU1MToMhEREREREQ6NyXAXURBQQEjRozghhtuCHQoIiIiIiIinZISYBERERERETkpKAEWERERERGRk4ISYBERERERETkpKAEWERERERGRk4ISYBERERERETkpKAEWERERERGRk4Il0AHI8fn973+P1Wqte+10OgH49ttvuf766xs9JzU1lT/+8Y8dEp+IiIiIiEhnowQ4SK1bt67R7cXFxXz88ceN7hsyZEh7hiQiIiIiItKpKQEOMr///e8pLS09rnMjIiLaOBoREREREZHgoQQ4yJx66qmBDkFERERERCQoaREsEREREREROSkoARYREREREZGTghJgEREREREROSkoARYREREREZGTghJgEREREREROSkoARYREREREZGTghJgEREREREROSkoARYREREREZGTghJgERERkQBw1fj4+NVCdmwsC3QoIiInDUugAxARERE52eTvq+H9Z/JxVnv5bksFu7dWkHFFAvZwc6BDExHp0tQDLCIiItJR/PDlx8W883+5VJV78Lr9eNw+cjOreeGv+8n6pjLQEYqIdGnqAZaAOHDgAM8//zy5ubnMnDmTyZMnBzokERGRduWs9vHu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
details [[develop]]ments in the [[stone]] [[industry]] of earlier [[species]]. More complex methods of craft and selection are detailed by 'newer' man.
[102] The [[Paleoanthropian]] stone industry thus implies an already highly developed [[technical]] [[intelligence]]. There is little reason to distinguish between the Paleoanthropian technicain's attitude and that of any technician of a more recent age... in strict terms of technical intelligence which presupposes a pyramidal [[brain]] area...
[[human]]s as constituted by an always [[technical]] [[mind]], and needing [[tertiary retention]] to be human? [[other half of the human]].
[[GS98]]
...the [[Australanthropians]]... seem to have possessed their [[tool]]s in much the same way as an animal has claws. They appear to have acquired them, not through some flash of genius which, one fine day, led them to pick up a sharp-edged pebble and use it as an [[extension]] of their fist (an infantile [[hypothesis]] well-beloved of many works of popularization), but as if their [[brain]]s and [[body]]s had gradually exuded them. In a [[sense]] we may wonder whether [[technique]]s are basically really things of the [[intellect]]. Perhaps the distinction often drawn between the intellectual and the technical actually reflects a paleontological reality?... The techniques of the Sustralanthropians and Archanthropians seem, in their very long [[develop]]ment, to have obeyed the [[rhythm]] of [[biology]]cal [[evolution]]; chopper and biface seem to form part of the [[skeleton]], to be literally "incorporated" in the living [[organism]]. With the [[emergence]] of new intellectual [[possible]]tys, techniques began a dizzying ascent, but the [[curve]]s of their [[evolution]] followed the [[line]]s of [[phyletic]] evolution so closely that we must ask ourselves whether they are not simply an extension of the general [[development]] of [our] species.
Next paragraph is of some itnerest but I'm not typing it out.
[[GS100]]
The [[reflect]]ive [[intelligence]] which not only [[grasp]]s the [[relation]]ship between different [[phenomena]] but is capable of [[external]]izing a [[symbol]] ic [[representation]] of that relationship was the ultimate acquisition of the [[vertebrate]]s. It cannot be conceived before the [[anthropoid]] [[stage]], for it is the fruit of a [[cerebral]] [[organization]] whose seed was sown at the [[time]] of the freeing of the [[hand]] and which came into full flower with the [[emergence]] of [[Homo sapiens]].
Where this acquisition takes the form of technicity, the faculties of reflection and the neurovegetative organization of the association areas of the cortex merge into one; where it is a matter of"gratuitous" intellectual operations, the gradual development of the frontal and pre frontal areas appears to have entailed a progressively growing faculty for symbolization.
[[PS59]]
Archaeological evidence of such activity-which goes beyond technical motor function-is elusive for the early Quaternary, but by the Palaeoanthropian stage some archaeological evidence begins to become available. These activities, the earliest of an aesthetic or religious character, can be classified in two groups as reactions to death and reactions to shapes of an unusual or unexpected kind. Prehistoric records are very scanty. The most that remains of the activities of a once living human group are some worked stones, bones, or pieces of mineral which for some reason may have attracted the attention of the fossil human.
[[GS106]]
Discussion of potential evidence for [[affect]]ive life by way of evidence of burials, then a section of "other evidence." Ochre, coloration, and a placed [[skull]] are discussed. [[GS107]]
...[[human]]s... can make [[tool]]s as well as [[symbol]]s, both of which derive from the same [[process]] or, rather, [[draw]] upon the same basic [[equipment]] in the [[brain]]... [[language]] is as characteristic of humans as are tools, but also that both are the [[expression]] of the same intrinsically human property... [114] as soon as there are prehistoric tools, there is a possibility of a prehistoric language, for tools and language are [[neurology]]cally linked and cannot be dissociated within the [[social]] [[structure]] of humankind.
..the [[operation]]s involved in making a tool anticipate the occasions for its use and the tool is preserved to be used on later occasions... the permanence of a concept [and thus, our language is] comparable to that of a tool although is nature is not the same. [unlike [[Stiegler]], he does not abstract to the level whereby technics and language are the same From the standpoint of [[Wolfe]], given that they both restructure the [[brain]] and are non-genetic, they are the same[?] ].
Techniques involve both gestures and tools, sequentially organized by means of a "[[syntax]]" that imparts both fixity and flexibility to the series of operations involved. This operating syntax is suggested by the memory and comes into being as a product of the brain and the physical environment. If we pursue the parallel with language, we find a similar process taking place.
[[Leroi-Gourhan]] as paralleling [[Spinoza]]'s parallelism.
[[GS111]]
[[tool]]s and [[language]] as inseparable, then "The origin of [[language]] in anthropoids preceding Homo sapiens thus seems to have been closely linked with technical motor function. Indeed the link is so close that employing as they do the same [[pathway]]s in the [[brain]], the two main anthropoid characteristics could be attributed to one and the same phenomenon.
[[GS113/114]]
We saw earlier the general evolution of zoological species whose development followed the same course as ours involved successive "liberations," the two most important of which were the freeing of the head in theromorphous reptiles of the Paleozoic era and the freeing of the hand in Australanthropians at the very end of the Tertiary period of the Cenozoic. The "liberations" that occurred during the evolution of anthropoids were the freeing of the brain and, consequent upon it, the loosening of certain zoological bonds.
The stabilization and eventual overtaking of the technical brain were of particular importance to the human species. Had development continued toward ever increasing corticalization of the neuromotor system, our evolution would have stopped at a stage comparable to that of the most advanced insects. What happened instead was that the motor areas were overtaken by zones of association having a very different character that, instead of orienting the brain toward ever more developed [118] technical specialization, opened up unlimited possibilities of generalization unlimited at any rate by comparison with the possibilities offered by zoological evolution. Throughout our evolution, ever since the reptiles, the human appears as the inheritor of creatures that escaped anatomical specialization. Neither human teeth nor hand, neither human foot nor, when all is said and done, brain has attained the
perfection of the mammoth's teeth, the horse's hand and foot, or the brain of certain
birds-with the result that humans have remained capable of just about every possible action, can eat practically anything, can run and climb, and can use the unbelievably archaic part of their skeleton, that is, their hands, to perform operations directed by a brain superspecialized in the skill of generalizing. In the foregoing pages we have covered much of the path that took us there, but it still remains for us to explain how the last liberation was achieved.
[[GS115]]
It occurred to me some years ago that this development, resembling as it does certain
evolutive processes observed in paleontology, might reflect a general [[technical]] fact
that has nothing to do with the [[form]] of [[tool]]s but represents something in the nature
of an "[[orthogenesis]]." My initial hypothesis was that the process of extraction of a cut
ting edge from a lump of flint varied in time proportionally with the ratio between
the length of cutting edge obtained and the volume of flint required to obtain it (figure
64).
The hypothesis can easily be verified by experimental means. All that needs to
be done, leaving discards out of account, is to determine the length of usable cutting
edge per kilogram of flint fashioned into tools of a specific form. Figure 64 shows the remarkable progression of this ratio, which reflects the first material relationship between humans and minerals. It is fascinating to find that this relationship developed strictly in parallel with human [[evolution]], a fact that confers a curiously biological character upon the prehistory of sharp-edged objects. The parallel becomes still more obvious when we consider the succession of forms in greater detail.
[[GS117]]
Thus the [[art]] of making cutting blades... followed an unbroken [[line]] of [[evolution]] leading gradually, irrespective of [[form]], toward better [[adapt]]ation of the [[material]] to the desired purpose.
[[trait of expression]] [[trait]]
[[GS134]]
In [[homo sapiens]] [[technicity]] is no longer geared to [[cell]] [[develop]]ment but seems to [[exteriorize]] itself completely-to lead, as it were, a life of its own.
A single current [[flow]]s through all [[industry]].
[[technic]]s begins to proliferate and "A new technical world, our world, is coming into existence."
[[GS137]]
All sorts of charts in this area.
Instead of insisting... that they must have had a bone [[industry]], we could simply say they had not yet reached the [[point]] at which these [[technique]]s were to [[emerge]]...
For the present it appears that a very profound change took place with the disappearance of the prefrontal bar, when the steadily rising curves representing industrial progress and the increase in brain volume, respectively, began to [[diverge]] in a spectacular manner; [[brain]] volume had apparently reached its peak and the industry curve, on the contrary, was at the start of its vertical ascent. We may assume that it was at this point that, from being governed by [[biology]]cal [[rhythm]]s, [[human]] cultural development began to be [[dominate]]d by [[social]] phenomena.
body leads to brain, brain leads to this other half, but the other half also developed the barin into what it is.
[[GS138]]
[[summary]] ...[[art]]... indisputably shows the existence of distinct regional entities living side by side and steeped in the same [[material]] [[culture]] but separated from one another by the myriad details of their [[group]] [[personality]]s.
[[GS141]]
So far we have considered the [[human]] being as a [[phylum]], that is, as a [[time]] sequence of [[collective individual]]s eventually culminating in [[homo sapien]]s...life in [a] [[society]] reflects a basic [[biology]]cal option, like the option for [[bilateral]] or radial symmetry, or like the specialization of the forelimb for [[grasp]]ing... The most direct effect of the [[technical]] [[level]] upon the social [[group]] involves the group's [[dense]]ity... [146] [tech level-social density] [[ratio]] became the chief [[factor]] of [[progress]].
There is room for a real "[[biology]]" of [[technic]]s in which the [[social]] [[body]] would be considered as. an [[organism]] independent of the zoological one-an organism animated by humans but so full of unforeseeable effects that its intimate structure is completely beyond the means of inquiry applied to [[individual]]s. Is this enormously complex social body the result of a gradual [[evolutio]]n comparable to, and synchronous with, that of the [[brain]], or was the form of the societies of today, a [[form]] that evolved within the space of less than ten thousand years, determined by other, nonbiological factors? A brief review of societies over the ages could help to answer this question.
[[megamachine]]
[[GS144]]
The equivalence of [[human]] [[thought]] is a fact that applies both in time and in space. Except in so far as it impinges on a purely technical field, or has a specific historical context, the thinking of an African or a citizen of ancient Gaul is completely equivalent to mine. That is not to say that each of our ways of thinking does not have its peculiarities, but only that once
their reference system is known, their values become transparent. This fact is of an
order that cannot be transposed to the [[material]] world, just as material proof cannot
be provided for the hypothesis that the brain contributed toward the expansion of
the skull. Each sphere draws upon its own source of evidence: For the material
sphere that source is technology, economics, and history; for the sphere of [[thought]]
it is moral or metaphysical philosophy. We may think them [[mutual]]ly complementary,
but their complementarity is really a matter of mutual [[opposition]].
[[trait]] [[trait of expression]]
The close interdependence between social institutions and the technical and economic [[apparatus]] is borne out by countless facts. Although the nature of moral problems remains essentially unchanged, each society molds its behavior using such implements as the material world will offer. Social security for the mammoth-hunter is as unthinkable as is a patriarchal family in an industrial city. Technoeconomic determinism is a reality whose effect upon the life of societies is deep enough to bring into existence structural laws to govern the material world as firmly as moral laws govern the behavior of individuals toward themselves and their fellow beings. We may recognize that thought has as much reality as the material world, we may even assert that the latter owes its being to the effects of the former, but the fact
remains that thought is reflected in [[organized matter]]. It is the [[organization]] of [[matter]]
that, in various ways, directly shapes all aspects of human life.
...[148] a two-way [[flow]] springing initially from the [[world]] of [[matter]].
[[GS145]]
But being an eater of fleshy [[food]], we were compelled from the outset to observe certain very specific [[condition]]s of [[group]] [[form]]ation. The fact is an obvious one but in studying [[human]] groups it must be taken as the starting [[point]].
[[GS147]]
In chapters 3 and 4 we saw how the [[technical]] [[develop]]ment [[curve]] turned steeply upward at that moment, and we ascribed this sudden evolution to the loss of the [[prefrontal bar]] and the consequent release of a higher form of [[intelligence]] capable of using [[symbol]]s as [[implement]]s for achieving [[control]] over the [[external]] [[environment]]. Such control is unthinkable without [[language]], but it is also inconceivable without a complex [[social]] [[organization]]. If we then try to look back further than forty thousand years, what picture can we form of Pithecanthropian or Australanthropian society? The existence of continent wide technical stereotypes, coupled with lack of data about life in those societies, inevitably makes speculation abstract.
prior pages show social organization of complexity through managed trade. Complex design of the [[other half of the human]] precedes language. We are preceded by machines.
[[GS150]]
The mountainous terrain, both in the west and the east, is etched into by steep valleys, some
tens of kilometers long, that channel and isolate the migrations of herds between the
upland pastures and the winter grazing of the lowlands. The same herds go up and come down again each year, accompanied by herders who protect the [[animal]]s with out imposing any Significant change on their natural behavior. The conditions for a changeover to stockbreeding are provided by the [[boundary]] of the human [[group]]'s [[territory]], the normal migration paths of herbivorous herds and the regular [[time]] [[pattern]] of their migrations in search of additional food.
[[desiring-machine]]s. [[conjunctive synthesis]]
[[semiotic]]s and [[semiotization]] are preceded by [[machine]]s
[[GS156]]
The domestic dog, which first appears at about the same time as stock breeding, obviously played a very important role in its development. The Canidae beaters and trackers of game--display a [[form]] of [[behavior]] very similar to the [[human]] hunter's. Although information is still lacking about the origins of the [[dog]], which was not yet in existence in the Magdalenian, we have no difficulty in understanding how the Canidae and [[human]] came to work with one another, first in [[hunt]]ing and later in [[channel]]ing the [[movement]]s of herds.
[[abstract machine]] grasps them at the [[level]] of [[form]].
It is interesting to note that with the exception of the reindeer, whose food requirements are altogether special, all herbivores used for breeding (bovines, sheep, horses, camels) are grass-eating animals that live in large groups on continuous expanses of open grassland and band together when fleeing from danger. With animals of this kind, the game-beating methods of the herders and their dogs are highly effective. Leaf-eating animals (Cervidae), which live in small herds under cover of trees and scatter when fleeing, have proved resistant to stock-breeding.
An important point to be noted is that agriculture sprang up at the same period
and in the same parts of the world as stockbreeding (figure 71). This is hardly surprising if we recall what was said earlier about the [[technical]] and economic composition of the primitive group. Human groups were formed on the basis of a mixed-diet economy and their balance throughout prehistory depended on the complementary exploitation of the animal and plant kingdoms. A separation between farmers and herders must have taken place at an early stage, perhaps from the very outset. We can imagine primitive social cells of proto-stockbreeders relying on gathering for the vegetable part of their diet as we can imagine proto-farmers [162] supplementing their diet with hunting.
[[GS160]]
We can imagine proto farmers as being attached for part of the year to areas in which wild rice was plentiful, but the concept of sedentarization becomes meaningful only when the group's survival depends entirely on cultivated grain. Permanent settlement was dictated
simultaneously by having to tend the fields and by the presence of food stocks.
The preurban settlements of Palestine, Lebanon, and Turkey possibly included shrines or richer-than-average houses but not yet any real palaces, and the distance between the top and bottom of the social ladder was not yet as great as it would become a little later on. This nucleus of homes was encircled by protective structures-palisades or ramparts-and equipped with cattle yards and sunken store pits. An immediately noticeable fact, by comparison with primitive groups, is the concentration of a relatively large number of individuals in one place. The consequences of settled [[agriculture]] are uniform in all areas to which it extends: They are the forming of a human group of several tens of individuals concentrated round stocks of food and protected by defense works against the natural environment and fellow human beings. These immediate consequences were the cause of the complete transformation of the way of life of human societies. The most striking features of this transformation-[[capital]]ization, social [[domination]], military [[hegemony]]...
[[GS161]]
In the societies in which it originated, settled [[agriculture]] gave rise to a separation between farmers who also bred a small number of animals and [[nomad]]s who were large-scale stockbreeders. The separation persists to this day and imparts a specific character to a number of civilizations from South Africa to China. The group specialization typical of our savannas and steppes probably resembles that which existed in primitive communities; in both cases a [[symbiosis]] takes place. Like the primitive man/woman couple, the community is divided into two complementary [[technical group]]s, and the same causes account for the greater or lesser mobility of each of the two groups living in symbiosis and dealing, respectively, with animals and plants. This new division of the [[technical]] and [[economic]] [[apparatus]] is functionally of the same nature as earlier ones, but its [[element]]s are radically different. The symbiosis between an agricultural and a pastoral society is no longer one in which each of the two elements belongs to the same culture and is at an equivalent technical level. The two form distinct technoeconomic systems, economically linked but socially separate, no longer mutually complementary as in matrimony but often closed to one another.
A more complex structure, in which two distinct societies maintain a similar relationship, has been superimposed on the complementarity of the couple and of allied groups within a system of exchanges. The situation is comparable to the development of vegetative systems from the association of unattached cells at the bottom end of the biological scale to complex organisms requiring the coordination of a considerable number of [[aggregate]]d [[cell]]s at the top end. Fr. Teilhard de Chardin expressed the same thought when commenting on the replacement of the zoological element by the social. Similar causes naturally produce similar effects: Pastoral agricultural societies owe their special characteristics to increased population density, which is determined by and required for food production, itself both the cause and the effect of the altered complementarity relationship. That is the starting point
of the complex history of the symbiosis between farmers and herders. Now one, now the other, of these two economically inseparable groups has dominated in different societies and different historical situations. For thousands of years, from biblical antiquity until the invasions of the Huns and Mongols or, in Africa, the migrations of the Peuls and Bantu, much of the Old World's history reflects this alternation.
[[GS164]]
The techniques of aggression have always been closely associated with acquisition. For the primitive human the first purpose of such techniques was hunting, where aggression and the acquisition of food merge into one. During the transition to agricultural societies, this fundamental connection was disturbed by the deviation of the sodal apparatus from the biological
course of human evolution. Aggressive behavior has been a fact of human life at least since the Australanthropians, and the accelerated development of the social [[apparatus]] has not had any effect on the slow maturing of the [[phylum]]. Hunting and war have gradually become assimilated with one another, the exerdse of both activities becoming concentrated in a new class thrown up by the new economy, the class of men-at-arms. Cereals and cattle, the keys to the enfranchisement of primitive human kind, opened the way to progress but could not throw off human genetic servitudes.
Our history has taken place on three conflicting levels: that of natural history, in
which Homo sapiens of the twentieth century is hardly different from Homo sapiens
of three hundred centuries ago; that of social evolution, in which the biological
group's basic structures have adapted, with varying degrees of success, to the structures resulting from technical evolution; and at the level of technical evolution, that astonishing excrescence from which our species derives its efficacy but which it is not biologically equipped to control. Between these two extremes-the physical human at one end, and, at the other, the techniques of which the human sometimes seems to be no more than a tool-some mediation is achieved by a social edifice [168] whose responses to new problems are always a little delayed and by moral concepts upheld by religions or ideologies and deeply rooted in social morality. By giving us a counterimage of the biological human, these moral concepts help to create an image-still very abstract--of a Homo sapiens beyond the sapiens stage. The outer shell of the farmer is still the same as the ,ammoth-slayer's, but the economic system
that made the farmer a producer of resources also made the farmer, by turns, hunter
and prey.
[[general organology]]
[[GS166]]
The new relationship between [[human]]s and their food resources inevitably brings about an
adjustment of social [[relation]]s and thus determines a [[strata]]fied social [[organization]], the very mainspring of progress... While it is true to say that social forms lagged seriously behind the [[process]] of economic [[adaptation]], they still provided the best possible response to the insoluble dilemma of [[phyletic]] as against [[technical]] [[evolution]]. Throughout the enormous wastage of humans and resources that denotes history, it is always the human who serves as the connecting link between successive stages.
After only 2,500 years of agriculture, oriental societies were ready to acquire the technical and economic foundations upon which the human edifice still rests today. Yet it had taken Homo sapiens thirty thousand years to reach the [[threshold]] [169] of agriculture. This suggests that the constituents of the human group now included an element that had been lacking in primitive societies: The group had become capable of covering the food requirements of individuals engaged in tasks not directly related to food production (figures 74 and 75).
The cycle of technical progress starts with storable [[food]]. Of course animal breeders played an essential role in the evolutionary process, but it is with the sedentary part of the population that it must have begun. The "inventions" of pottery and metals had two causes: the new tempo of work and the presence of stored food resources. The exercise of crafts presupposes the freeing of a very considerable amount of time: This may take the form of food-producing individuals being freed during intervals in farm work, or of specialists totally exempted from food production tasks. The fluctuating seasonal character of agricultural work and the availability of more or less constant food reserves create the conditions for a "favorable environment." Just as the Australanthropians' freed [[hand]] did not stay empty for long, so too the free time of agricultural societies soon became filled with activity. Settled existence was favorable to the development of techniques such as basketry and weaving, which had undoubtedly existed earlier but which the requirements of farming and the reduced availability of animal hides now promoted to the status of necessities. But the most important innovation had to do with the handling of [[fire]], and it was around the "furnace crafts" that technical progress crystallized. The origin of such arts lies in the very distant past. The Paleolithic human already had some accidental acquaintance with baking clays, and we know that Chatelperronians and Aurignacians as far back as 35,000 B.C. found and gathered native [[metal]]s such as iron pyrites and galena crystals, probably using them for purposes relating to religion or magic. But the acquaintance did not lead to pottery or metallurgy because the primitive group lacked the countless hours that must be spent by countless indivduals before an invention can materialize. Availability of time of course was not the only factor. Steady population growth and the community's increasing needs created a strong demand for innovation, such as is not felt to the same degree by societies that have already achieved a balance.
Stabilization in space and the possibility of producing additional resources Simply by increasing the number of individuals in the group created a special inner environment that coincided with the freeing of many hours of time. This was the basis upon which the snowball of accelerated technical progress began to roll, within a social system composed of dense territorial units communicating with each other through a network of peaceful or warlike exchanges. [ [[speed]] [[time]] [[space]] ]
[[storage]] [[stock]] [[memory]] as a necessity of [[evolution]]. [[flow]]s of animals, food, of herders, stable tech, stable food, flows of power, flows of evolution, crossing [[limit]]s and [[threshold]]s...
creativity of the [[strata]].
[[GS167/8]]
The transition from villages built on natural raised ground to the first towns built on mounds on top of the ruins of earlier villages is literally [[imperceptible.]] Archaeological investigations reveal that successive layers of such ruins were permanently occupied from Neolithic times. Civilization is reflected in a [[function]]al [[pattern]], not in morphological features that are clear-cut from the start. The pattern is that of a group of villages organically linked to an agglomeration that fulfills the role of a capital. Such a pattern presupposes an established social [[hierarchy]] and the concentration of authority and of the group's "capital" of grain in the hands of an elite based on military and religious power. From the techno economic point of view, the most important fact here is the [[artisan]]'s entry upon the [[scene,]] for it is on the artisan that all [[technical]] [[evolution]] depends.
FN to a chart from the prior page Functional diagram of the city. The city serves as the center for the territory and is surrounded by a group of agricultural villages of the type shown infigure 75,from which it derives its resources and which it holds together. The central authority (1) is linked with military (2), religious (3), and legal (4) junctions, which tend to become speCialized in distinct individuals or classes. The degree of segregation of the merchants (5) from the ruling classes is variable, but the indirect influence and the alliances of this group always endow it with considerable importance. The artisans (6) and small traders, although dependent upon the ruling classes, are completely isolated from them. Some members of these groups achieve advancement, however, thanks to the permeability of the merchant class.
[[GS168/9]]
Civilization thus depends on the artisan, but ethnology has not yet fully defined his or her position within the functional apparatus. In all historical periods and in all nations, even when their activities are closely integrated in the religious system, artisans were relegated to the back of the stage. The priest is "holy," the warrior "heroic," the hunter "brave"; society acknowledges the orator's "prestige" and will even concede "nobility" to the peasant's tasks, but what the artisan does is merely "skillful ." Artisans embody what is most Anthropian in humans, but as we survey their long history we begin to suspect that they represent only one of the two poles-the [[hand]], the antithesis of meditative thought Society's discrimination in
favor of the "intellectual" as against the "technician," which still persists today, reflects an anthro p oid scale of values on which technical activity comes lower down than [[language]], and working with the most tangible elements of reality lower down than working with [[symbol]]s. In agricultural societies, wealth-the possession of [[money]]-began at a very early stage to be reckoned on a scale parallel to the [[function]]s of the priest, the chieftain, the manufacturer, or the farmer. Even today, when the divinization of inventions has led to a veritable cult of technology, the soldier-astronaut who travels in a rocket is perceived as a hero but the engineer who designs one merely as a servant of [[science]]-a hand. Once we have glimpsed the deep biological roots of such well-known social Situations, we can no longer ascribe the ascent of the human to the workings of chance or of mysterious predestination, for we can see that "chance" has been working in the same direction from the very start, and that the mystery is in the gradually evolving whole, not in its parts.
The initial [[apparatus]] of [[civilization]] was also constituted as a single [[whole]]. [born at a stroke].
[[GS171]]
...when iron came on the scene, the use of bronze or copper had spread like an oil stain from the Atlantic to China. The fact that the beginnings of [[metallurgy]] coincided with the first [[city]]s sis more than pure chance.
[[GS172]]
But the [[artisan]] is an enslaved [[demiurge]]... [he goes on]...
[[GS175]]
page worth revisiting, as are some prior and after.
At all periods of history, in America as well as in non-Mediterranean Europe or Black Africa, the same functional apparatus has come into being whenever a group with an already established agriculture crossed the [[threshold]] into the world of [[metallurgy]]. The city, enclosed within its defensive structures, built round its [[stock]]s of grain
and its treasure-house, is the hub of the mechanism, and the king or his representative, the military dignitaries, and the priests, served by a populace of domestics and
slaves, are its dynamic cells. Artisans form a series of generally endogamous cells
inside the urban mechanism. Their fortunes are linked with the ruling classes, but
their status is generally neither quite that of the slave nor that of one who has attained
full human dignity. The city and its [[organ]]s are connected to the countryside, which
supplies them with food and which they control through a network of stewards act
ing as intermediaries between the king and the generally enslaved peasantry (figure
76). Fairly early a further social element, the merchant-locally based or, more often,
itinerant--enters upon the scene at the same time as money, making the basic mechanism more complex but not altering its structure...
The [[develop]]ment was perfectly normal in that the [[social]] [[machine]], like a living [[organism]], had a head inside which the [[group]]s [[ideology]] was created, arms that forged its means of action, and an extensive [[system]] of [[acquisition]] and [[consumption]] to meet the group's requirements for maintenance and growth...
The development of the urbanized organism (a civilized organism in the etymological sense) leads inevitably to all the negative features of present-day society. Indeed the artificial organism cannot function effectively without accentuated social segregation, its particular form of the cellular specialization common to all animate beings: the [[landlord]], the [[peasant]], the [[prisoner]], are social categories whose effectiveness is directly proportional to the distance society sets between their functions. In agricultural societies, social injustice and human triumph over nature are two sides of the same coin.
Replace the idea of social categories with machinic categories. Define categories not by census, but in how they are taken up by the megamachine, census taking being one way they are taken up.
[[GS176]]
[[writing]] was born at the same time as [ [[metallurgy]] ].... This [[instrument]] ,as we know from numerous [[record]]s, first came into being as a [[reckon]]ing [[tool]] and [[develop]]ed very rapidly into an [[instrument]] of [[history]]cal [[memory]]... the means of keeping written [[account]]s [[emerge]]d at the precise moment when agrarian [[capitalism]] began to [[become]] established: the first [[genealogy]]s were written at the precise moment when [[social]] [[hierarchy]]zation began to [[affirm]] itself.
[[hand]] and [[face]], [[language]] and [[tool]], metallurgy and writing.
[[GS178]]
The first and foremost [[criterion]] [for [[humanity]] ] is erect [[posture]]... it was also the last to be accepted... All known [[fossil]]s, including the oddest among them such as [[Australopithecus]], show [[human]]s to have had erect posture. Two further [[criteria]] are corollaries of the first: They are a short [[face]] and a free [[hand]] during [[locomotion]]... [It only recently] became possible to [19] understand the [[connection]] [[between]] erect posture and a short face. [that's the subject of the third chapter].
[[GS9]]
[[metal]] is still the principle [[agent]] of [[progress]]...
[[metallurgy]]
[[GS179]]
[[pair]]s [[face]]/[[reading]] and [[hand]]/[[graphic]] [[sign]]... Two sources of [[expression]], that of [[verbal]] ([[rhythm]]ic) [[motricity]] and that of [[graphism]] swept along by the same rhythmic [[process]].... graphism did not being with naive [[representation]]s of [[reality]] but with [[abstraction]].... [189] representations relating to a verbal and gestural context... may be completely lacking in a realistic figurative context.
[[GS183]]
[[facial]] proportions are reflected in the characteristics of the teeth...
Freedom of the [[hand]] almost necessarily implies a [[technical]] [[activity]] different from that of apes, and a hand that is free during [[locomotion]], together with a short [[face]] and the absence of fangs, commands the use of [[artificial]] [[organ]]s, that is, of [[implement]]s. Erect [[posture]], short face, free hand during locomotion, and possession of movable [[implement]]s-those are truly the fundamental [[criteria]] of [[humanity]]. The list includes none of the characteristics peculiar to monkeys and makes the midway [[form]] of the [[human]], so dear to pre-1950 theoriticians, completely unthinkable...
The fact that my list does not include a large [[brain]] may be thought surprising... I believe that there can be no doubt that to some extent cerebral development is a secondary criterion. Once humanity has been achieved, the brain plays a decisive role in the development of human [[scoiety]]s. In terms of strict [[evolution]] it is undoubtedly a correlative of erect posture, and not, as was thought for a long time, [[primordial]].
The situation of the human thus appreas to be conditioned by erect posture. The phenomenon would seem incomprehensible were it not one of the solutions to a biological problem as old as the vertebrates themselves, that of the relationship between the face sa bearer of organs of nourishment and the forelimb as organ not only of locomotion but also of [[prehension]]. Backbone, face, and hand (even in the form of a fin) were indissolubly linked from the very beginning...
as soon as erect posture was established there was no more monkey in humans and, consequently, no half-human. The conditions created by erect posture had consequences in terms of [[neuro]]psychological development; this meant that the development of the human brain was something [20] other than just an increase in volume. In the development of the brain the relationship between the face and the hand remained as close as ever: [[tool]]s for teh hand, [[language]] for the face, are twin [[pole]]s of the same [[apparatus]]. [Chapter 3 topics]
[[GS18]]
...[[graphism]] certainly did not start by reproducing [[reality]]... we see it [[develop]] over the [[space]] of some ten thousand years from [[sign]]s which, it would appear, initially [[express]]ed [[rhythm]]s rather than [[form]]s. The first forms... did not appear until around 30,000 BC... in its origins, [[figure]]ative [[art]] was directly linked with [[language]] and was much closer to [[writing]] (in the broadest) [[sense]]) that to what we understand by a work of art. It was [[symbolic]] [[transpose]]ition.... in other words, the [[distance]] that lies between a [[draw]]ing in which a group agrees to recognize a bison and the bison itself is the same distance between a [[word]] and a [[tool]]. In both [[sign]]s and [[word]]s, [[abstract]]ion reflects a gradual adaptation of the [[motor]] system of [[expression]] to more and more subtly differentiated promptings of the [[brain]]. the earliest known [[painting]]s... are [[graphic]] building blocks without any descriptive [[binder]], the support [[milieu]] of an irretrievably lost [[oral]] context.
[[GS188]]
[[abstract]]ion is indeed the source of [[graphic]] [[expression]]... the search for pure [[rhythm]]icity, for the [[nonfigurative]] in [[modern]] [[art]] and [[poetry]]... represents a regressive [[escape]] into the haven of [[primitive]] reactions as much as it does a new [[departure]]...
[[figurative]] art is inseparable from [[language]] and proceeds from the [[pair]]ing of [[phonation]] with graphic expression...
Furthermore the origins of [[writing]] have often been linked to the [[memorize]]ation of [[numeric]]al values (regular notches, knotted ropes, etc.). While alphabetic linearization may indeed have been related from the start to [[number]]ing devices which of necessity were linear[195], the same is not true of the earliest figurative [[symbol]]ism. That is why I am inclined to consider pictography as something other than writing in its "infancy."
[[GS190]]
[[homo sapiens]] represents the last known [[stage]] of [[hominid]] [[evolution]] and also the first in which the constraints of [[zoological]] evolution had been overcome and left immeasurably far behind.
[[GS19]]
Thus the reason why [[art]] is so [[close]]ly [[connect]]ed with [[religion]] is that [[graphic]] [[expression]] restores to [[language]] the [[dimension]] of the [[inexpressible]]-the [[possible]]ty of multiplying the [[dimension]] of a fact in instantly accessible [[visual]] [[symbol]]s. The basic link between art and religion is [[emotion]]al, yet not in a vague [[sense]]. It has to do with mastering a [[mode]] of [[expression]] that restores [[human]]s to their true place in a [[cosmos]] whose [[center]] they occupy without trying to pierce it by an intellectual [[process]] which [[letter]]s have strung out in a needle-sharp, but also needle-thin, line...
There is in fact no known [[pictograph]]ic evidence of the [[origin]]s of [[writing]]. From [[group]]s of mytho-graphic figures-simple 'rock paintings' or decorations on objects-we go straight to linearized [[symbol]]s already fully set upon the [[process]] of [[phonetization]]... writing did not happen in a void anymore than did [[agriculture]]. The stages that precede both have to be taken into account. At a certain moment in time, which was not the same moment in different parts of the world, the system of organized representation of mythical symbols appears to have combined with the system of elementary bookkeeping (figure 100), the result being the primitive Sumerian or Chinese writing in which images borrowed from the regular repertory of figurative representation were drastically simplified and arranged to form a sequence. The procedure did not yet [[produce]] any actual [[text]]s but helped to keep count of [[animal]]s or [[object]]s.
The simplification of the figures, necessitated by the nonmonumental, provisional nature of the records, was responsible for their gradually becoming [[detach]]ed from the initial [[material]] context. From being [[symbol]]s with extensible implications, they [[develop]]ed into [[sign]]s, genuine [[tool]]s in the service of [[memory]], on the one hand, and bookkeeping, on the other. Preparation of written bookkeeping or genealogical accounts is foreign to the primitive social apparatus. Not until the consolidation of urbanized agricultural societies did social complexity begin to be reflected in documents whose authenticity was attested by humans or by [[god]]s.
[[nonlinear]] [[linear]] [[phonetic]] [[alphabet]] [[abcedary]] [[writing]] [[account]]
[[GS192]]
...the earliest [[form]]s of Mediterranean, Far Eastern, and American [[writing]] begin with [[numeric]]al or [[calendar]] [[notation]]s, and, at the same time, with notations of the [[name]]s of [[god]]s or of [[distinguish]]ed individuals in the form of [[figure]]s assembled in small groups after the fashion of successive mythograms.
[[number]]
[[GS200]]
dying off of [[evolution]]ary [[phyletic]] [[line]]s of [[writing]] [[form]]s that done [[develop]] 'into fully elaborated phonetic systems...'
[[phylum]]
[[GS202]]
But how, without invoking [[paleontology]] and [[language]], [[technic]]s and [[art]], was one to show that our uniquely [[organize]]d [[mammalian]] [[body]]] is enclosed and extended by a [[social]] body whose [[property]]s are such that [[zoology]] no longer plays any part in its [[material]] [[development]]?..
Tarzan, the ideal [[primitive]] man, handsome like the ancestor dreamed up by Boucher de Perthes but freed from the [[connotation]]s of an apelike nature by the presence of his friend the [[chimpanzee]]...
[[GS20]]
At the [[linear]] [[graphism]] [[stage]] that characterizes [[writing]], the relationship between the two [[field]]s [ [[face]] and [[hand]] ] undergoes yet another [[develop]]ment: written [[language]], [[phonetic]]ized and [[linear]] in [[space]], becomes completely subordinated to spoken language, which is phonetic and linear in time. The dualism between graphic and [[verbal]] disappears, and the whole of human linguistic [[apparatus]] becomes a single instrument for [[express]]ing and preserving [[thought]]-which itself is channeled increasingly toward [[reason]]ing.
The transition from [[myth]]ological to [[ration]]al thinking was a very gradual shift exactly [[synchronous]] with the development of [[urban]] concentrations and of [[metallurgy]].
[[GS204]]
This gradual triumph of [[tool]]s is inseparable from that of [[language]]-indeed the two [[phenomena]] are but one, just as [[technic]]s and [[society]] [[form]] but one subject. As soon as [[writing]] became exclusively a means of [[phonetic]] [[record]]ing of [[speech]], language was placed on the same [[level]] as [[technic]]s, and the technical efficacy of language today [212] is proportional to the extent to which it has rid itself of the halo of associated images characteristic of archaic forms of writing. Writing thus tends towards the contriction of images, toward a stricter [[linear]]ization of [[symbol]]s
[[GS210]]
Curiously enough, the mechanical [[record]]ing of images has, in less than a century, covered the same ground as the recording of the spoken word did over several thousands of years.
This traditional state of affairs was not appreciably altered by the arrival of silent
films. The silent reel was supported by sound ideograms of an indeterminate nature supplied by a musical accompaniment that maintained a distance between the individual and the image imposed from the outside. A radical change occurred, however, with the coming of sound film and television, both of which address the faculties of Sight, motion, and hearing at the same time and so induce the whole field of [[perception]] to participate passively. The margin for individual interpretation is drastically reduced because the symbol and its contents are almost completely merged into one and because the spectator has absolutely no possibility of intervening actively in the "real" situation thus recreated. The spectator's experience is different from a Neanderthalian's in that it is purely passive, and different from a reader's in that it is totally lived through both sight and hearing. From this dual [[point of view]], audiovisual techniques really seem to represent a new stage of human development-a stage that has direct bearing on our most distinctive possession, that of reflective thought
[[GS211/212]] [[mass media]] [[film]]
[[symbolic misery]], [[mass media]] [[film]], [[stupidity]], [[art]] [[film]] [[image]]s the [[sensible]] and all are discussed in a [[critical]] lens [[Baudrillard]]
[[GS213]]
...we must accept that [[human]] [[language]] was from the very outset different in nature from the language of [[animal]]s-that it was the product of reflection between the two [[mirror]]s of [[technical]] [[gesture]] and [[phonic]] [[symbol]]ism.This hypothesis concerning humans who existed before [[homo sapiens]]... becomes a certainty when we discover the close synchronism between the [[evolution]] of [[technique]]s and that of [[language]]. This certainty is confirmed when we see how closely, even for the very purpose of [[express]]ing [[thought]], [[hand]] and [[voice]] remain linked.
[[GS214/215]]
[[summary]]
The parallelism continued at every stage: When agricultural sedentarization
gave rise to a hierarchical and specialized social system, a fresh impetus was
imparted Simultaneously to technics and language. If the topographical structure of
the cerebral cortex of primitive anthropoids accommodated the joint development
of the material and the verbal, the topographical structure of the urban superorganism reflected the same contiguousness. When the economic system became transformed into capitalism based on metallurgy and grain, the transformation engendered both science and writing. When techniques within the city walls began to prepare the ground for the world of today, when space and time became organized within a geometrical network that captured both the earth and the heavens, then rationalizing thought began to overtake mythical thought Symbols were linearized and gradually adapted to the flow of verbal language until graphic phonetization finally culminated in the alphabet. From the beginning of written history, as in still earlier times, there has been a complete reciprocal linkage between technics and language, and the whole of human development depends upon this fact. The expression of thought through language found an instrument with infinite possibilities in the use of alphabets, which totally subordinated the graphic to the phonetic. All previous forms remain alive, however, although to varying degrees. Further on in this book we shall try to demonstrate that a significant portion of our thought diverges from linearized language in the effort to grasp that which does not lend itself to strict notation.
Although the interplay between the two poles of figurative representation between the auditive and the visual-changed considerably with the adoption of phonetic scripts, the individual's capacity to visualize the verbal and the graphic remained intact. The present stage is characterized simultaneously by the merging together of the auditive and the visual, leading to the loss of many possibilities of individual interpretation, and by a social separation between the functions of symbol making and of image receiving. Here again the parallelism between technics and language is clearly apparent. Tools detached themselves from the human hand, eventually to bring forth the machine: In this latest stage speech and sight are undergoing the same process, thanks to the development of technics. language, which had separated itself from the human through art and writing, is consummating the final divorce by entrusting the intimate functions of phonation and Sight to wax, film, and magnetic tape.
[[GS215]]
If it is true to say that the [[species]] is the characteristic [[form]] of animal [[group]]ing and the [[ethnic]] group [is the characteristic form of] of [[human]] grouping, then a particular form of [[memory]] must correspond to each body of [[tradition]]s...
Neither [[instinct]] nor [[intelligence]] can be regarded as [[cause]]s: they are [[effect]]s. Instinct does not explain instinctive behavior; rather, philosophically speaking, it characterizes the accomplishment of certain complex [[process]]es of different origin. In the case of an individual, instinct may be said to be located at the intersection of the means specific to that individual and the external causes for deploying those means in [[action sequence]]s. The external causes may be provided by [[education]] as well as by [[stimulation]].
...the [[nervous system]] is not an [[instinct]]-producing [[machine]] but one that responds to internal and external demands by designing [[program]]s.
[[GS216]]
...as one generation succeeds another the same [[sequence]]s-or very similar ones-are [[reproduce]]d from individual to individual. [[instinct]] expressed as [[species]]-related [[memory]] is a reality only inasmuch as the resulting [[action sequence]]s are [[constant]] in [[nature]]. Hence what is at issue is not the contrast between instinct and [[intelligence]], but the opposition of two [[mode]]s of [[program]]ming... the [[insect mode]]-involves a maximum of [[genetic]] predetermination, and the the other-the [[human]] mode-apparently none at all.
[[GS221]]
...in the third [[stage]] [ [[industrial]] ], the [[program]]ming of [[movement]]s is reconstituted through the creation of an [[artificial]] and rudimentary [[nervous system]] [, the [[machine]]s of industry ]
[244] theory of why we have tools and monkeys don't
[[GS222]]
[245] [[indirect motor function]], ie the function of the hand becomes new, "finding new freedom in the hand-operated [[machine]]," rather than a simple tool, this takes the hand and "extends or transforms it." Ex. hooked stick for spear throwing.
Actions of the teeth shifted to the hand [we are no longer monkeys], which hand;es the portable [[tool]]; then the tool shifts still further away, and a part of the [[gesture]] [biting, cutting] is transferred from the arm to the hand-operated [[machine]].
The [[evolution]] continued with the muscular impetus itself [[becoming]] separated from the human [[body]] through the harnesseing of the motor functions of [[animal]]s and wind and water. It is a [[singular]] property of the human species that by confining itself to engendering action, it periodically eludes the organic specialization that [246 would definitively tie it down.
[[GS243]]
If the [[hand]] of the earliest anthropoid had become a [[tool]] by [[adapt]]ation... It would not have been the [[human]] being. Our significant [[genetic]] [[trait]] is precisely physical (and mental) nonadaptation; A tortoise when we retire beneath a roof, a crab when we hold out a pair of pliers, a horse when we bestride a mount. We are again and again available for noe [[form]]s of [[action]] our [[memory]] transferred to [[book]]s, our strength multiplied int he ox, our fist improved in the hammer.
The freeing of motor function is the decisive stage, perhaps not for the individual but for human [[society]] [[collective]]ly in possession of each member's means of action. The phenomenon is a very recent one. The adoption of animal traction and of machines activated by water or wind are reported in ancient history; moreover it was confined to a few Eurasian civilizations whose techno economic supremacy continued to be founded upon it until the eighteenth century. Generally regarded as historical phenomena of technical significance, the invention of the four-wheeled carriage, the plough, the windmill, the sailing ship, must also be viewed as [[biology]]cal ones-as mutations of that external organism which, in the human, substitutes itself for the physiological body....
The conquest of water and wind was accomplished in antiquity-early in historic time-but for many centuries they remained the only sources of automotive power. Not until the nineteenth century was the decisive step taken with the harnessing of steam pressure.
The momentous nature of the change in scale of the relations between the human and the natural world was clearly perceived at once. The initial conquest of metals had been a triumph of the hand: the conquest of steam definitively confirmed the exteriorization of muscle power.
[[GS245]]
Although peculiar to [[human]]s, the changes that affect the entire [[structure]] of our [[collective]] [[organism]] hang together in much the same way as changes that affect all the individuals in a group of animals. From the moment when the [[exteriorization]] of motive force became unlimited, social [[relation]]s assumed a new character; a nonhuman observer unfamiliar with the explanations to which [[philosophy]] and [[history]] have accustomed us would separate the eighteenth-century human from the human of the tenth century as we separate the lion from the tiger or the wolf from the dog.
What follows is a more poetic/polemical extension of this idea
[[GS246]]
A biologist will find it hard to resist comparing the [[mechanism]]s of animals whose [[evolution]] is already completed with these organisms [contemporary technics] in which, in the last analysis, constitute a parallel living [[world]].
It is already clear at the paleontological stage that erect posture and the general osteomuscular structure, once they have achieved human form in the Australanthrope, are no longer decisive. The hand, already formed in the monkey, stops changing (except for purposes of neuromotor adaptation) from the moment it begins to hold a tool. The decisive evolution of primitive anthropoids lies in the neuromotor equipment of the manual and facial cortex. From the osteomuscular point of view, nothing more takes place except adaptation accompanied by minor variations. The main thrust of evolution is massively oriented toward tools.
The actions performed by tools are relatively simple and few in number. The gestures of h amm ering, cutting, and piercing, which remain the stock-in-trade of hand manufacturing to this day, are qUickly acquired. Evolution therefore became focused entirely on materials and forms of motion. The [[evolution]] of [[motion]] determined the freeing of motor function. Ever since the earliest agricultural SOCieties, the [252] conquest of force-together with the conquest of new materials--has been the dominant pursuit: conversion of [[rectilinear]] into circular motion, conversion of force through transmission, transfer of driving force from human to animal and, later, to the motor. The orientation toward new materials affected both the tool itself and the force that actuates it Initially confined to metals, over the course of history it gradually created the problem of fuels directly or indirectly employed to drive machinery. Between the Bronze Age and the eighteenth century, advanced techniques evolved very slowly and with great difficulty, confronted with the problem of imparting more powerful motion to tpols made of more resistant materials. With the solution offered by iron founding, motion and materials merged into a single cycle and everything became a matter of coal and steam. The prodigious leap forward of the nineteenth century was due to the fact that coal not only meets the requirements of iron founding and steelmaking but also provides the motive energy needed for mining and for operating machine tools. It thus fulfilled the conditions for a tremendous advance toward the freeing of force
[[GS247]]
The adjustment of [[human]] individuals, whose [[brain]] and physical frame are still those of Cro-Magnon man, to the new conditions has involved an ever-increasing degree of distortion.... The conclusion to be [[drawn]] may be that [[progress]] is beneficial only to [[society]], while the individual [[human]] being is already an outdated [[organism]], useful like the [[cerebellum]] of the [[rhinencephalon]], like the [[foot]] and the [[hand]], but already receding into the background to [[become]] the mere [[infrastructure]] of humankind in which "[[evolution]]" will henceforth be more interested than in the individual [252] human being. Indeed, that would only confirm the [[identity]] of the human species with [[animal]] [[species]], whose [[progress]] as a species alone is worthy of consideration.
[[GS251]]
With the passage to [[industrial]] motor [[function]], the situation changed thoroughly. The purpose of operational sequences was now to fill the gaps-still very wide-in the behavior of the [[machine]]. The worker was required to perform parts of sequences measured at the [[rhythm]] of the machine, series of gestures that excluded the worker as an individual. Complete "technical deculturation" took place, while at the same time the individual ceased to belong to a [[group]] of marked personality and comfortable size.
Early industrialization was followed by a process whereby the [[work]]er was gradually adapted to the machine without the latter's losing any of its preeminence. The "Taylorization" of [[gesture]]s was accompanied by the standardization of tools and products, intensive [[adapt]]ation to continuous circular motion (of rotary tools, lathes, spindles), and undifferentiated processing of different materials. Then mechanical automatism gradually came in, the worker's activity becoming confined to supervising the input of feedstock, executing the [[program]], and delivering the finished product.
[[GS252]]
...the fundamental fact relating to [[human]] [[memory]]: like [[tool]]s, human memory is a [[product]] of [[exteriorization]], and it is stored within the [[ethnic]] group. This is what [[distinguish]]es it from [[animal]] memory...
[[GS253]]
The most pertinent [[form]]s in this [[sequence]] [of "liberation... of the whole body from the liquid element, that of the head from the ground, that of the hand from the requirements of locomotion, and finally that of the brain from the facial mask [25]]are those that, at each [[stage]] of the process achieve the most perfect balance-from the triple [[point of view]] of [[nutrition]], [[locomotion]], and the [[organ]]s of [[response]]veness-between [[mobility]] and [[capacity]] for survival, fundamental characteristics of species selected to demonstrate the progression of the living world... it is thus normal and scientifically sounds to observe to what a striking [[degree]] the urge to conquer [[time]] and [[space]], our dominant [[trait]], is also characteristic of all the witnesses selected to illustrate the ascent of the human being [through [[evolution]] ]...
It is possible to regard [[mobility]] as the significant feature of evolution toward the human state, Paleontologists have not been unaware of this. It came more spontaneously to them to characterize humans by their [[intelligence]] than by their mobility, and the first concern of their theories has been with the pre-eminence of the [[brain]]. This has often falsified their [[interpretation]] of [[fossil]]s, especially from the [[primate]]s onwards... air-breathing, the release from crawling, and the achievement of [[bipedal]]ism... the brain was not the cause of developments in locomotary adaptation but their beneficiary... locomotion will be considered here as the determining factor of biological evolution... it will be seen as the determining factor of modern social evolution
[[GS21]]
...it is not by chance that what was written down was not what is made or experienced in the normal course of [[event]]s but what constitutes the very bones of an [[urban]]ized [[society]] where the [[node]]al [[point]] of the [[autonomic]] [[system]] is the [[interchange]] between [[producer]]s-be they celestial or human-and rules. [[innovation]] was concerned with the upper end of the system and [[select]]ively encompassed financial and religious acts, dedications, genealogies, the [[calendar]]-all those things within the new [[structure]]s of the city that could not be completely consigned to [[memory]] either through [[gesture]] sequences or through [[product]]s.
As the i[[instrument]] for storing [[word]]s and [[phrase]]s in the [[memory]] of [[generation]]s became more efficient, the keeping of [[record]]s [[develop]]ed and spread to deeper [[strata]] of [[knowledge]].
[[GS258]]
beginning of discussion of the [[printing press]]
[[GS260]]
[starts on 26] [[animal]]s differ from [[plant]]s in that their nourishment involves the intake of [[food]] in [[unit]]s that must be mechanically processed before any assimilative chemical process takes place... nutrition in animals is to a considerably greater [27] [[degree]] than in [[plant]]s [[connect]]ed with the search for food and therefore involves the use of [[mobile]] [[capture]]ing [[organ]]s and of a [[detection]] [[mechanism]].
The design whereby the entire [[organism]] is placed behind the aperture for ingesting food is... the normal design of animal [[body]]s. The anterior polarity of the [[mouth]] and of the organs of [[prehension]] is so obvious... [[mobility]] implies that... organs ensure [[orient]]ation, adjustment of position, and the coordination of the organs of food capture with this of food preparation must also be situated in front of the body... [28] the general [[structure]] of an animal... has not changed. The polarization of certain organs has thus led to the [[form]]ation of the [[anterior field]] within which the complex [[operation]]s of animals with [[bilateral]] symmetry takes place.
[[GS26]]
...the [[concept]] of the beautiful cannot be restricted only to the auditive and visual emotivity of [[homo sapiens]]; instead, we must consult the whole gamut of our [[perception]]s in order to discover how a [[code]] of [[emotion]]s to which the [[ethnic]] [[individual]] owes much, if not all, of his or her [[affect]]ive [[integration]] in [[society]] came to be constituted in [[time]] and [[space]].
[[GS261]]
These different [[level]]s-physiological, technical, social, and figurative- will serve us to define the broad areas within which [[human]] [[sensation]]s are [[order]]ed.
[[GS271]]
...all the [[element]]s of the [[anterior field]]-[[organ]]s of [[prehension]], [[ingestion]], and [[response]]veness and the whole [[nervous]] [[apparatus]] that [[operate]]s them...
[[GS27]]
Who does not know the [[example]] of the shark, the ichthyosaurus, and the porpoise (A fish, a reptile, and a [[mammal]]), which, by adaptation to the aquatic [[milieu]], came to have the same external [[form]]? The facts of mechanical [[adaptation]] are normal, for example...there are many cases where animals.... have molars of similar mechanical [[structure]].
[[GS29]]
The second favorable [[condition]]... is the division of the [[anterior field]] of [[response]]veness into two complementary areas, one governed by [[action]]s of the [[head]] and the other by those of the [[forelimb]], respectively. The anterior field thus has a [[facial]] pole and a [[manual]] [[pole]], which act in close relationship to perform the most elaborate [[technical]] [[operation]]s.
[[GS30]]
the [[human]] has [[become]] the nly living [[species]] in which a far-reaching [[connection]] [[between]] the [[facial]] and [[manual]] [[pole]]s is [35] achieved without the forelimb intervening in [[locomotion]].
[[GS31]]
Absence of the [[hand]]'s [[intervention]] is in fact compensated by extremely [[varied]] [[facial]] specialization... very complex [[form]]s found in the dental [[organization]]... other facial [[organ]]s show considerable structural [[diversity]], which to some extent makes up for the forelimb's deficiency... extensible lips of the manatee, the trunk of many living or fossil species from the tapir to the elephant, the horns on the snout of... the rhinoceros...
[[GS34]]
Having acknowledged the leading role played in the development of [[vertebrate]]s by [[variation]]s in the balance between the two [[pole]]s of the [[anterior field]], we can proceed to a more detailed study of the [[form]]s taken by those [[animal]]s that achieved the highest [[level]]s of [[technical]] [[integration]] in the course of the whole history of living [[organism]]s... we can attempt to sketch out a [[function]]al [[paleontology]]. To do this, we must include within a single [[perspective]] the main functional [[element]]s of each of the [[type]]s that succeeded one another over the ages...the number... may be reduced to five.
The first pertains to the constraints of [[locomotion]]-to the [[mechanical]] [[organize]]ation of the vertebral [[column]] and the limbs. This element is indissociable from those that follow because the organs of [[motion]] are the driving gear of the way of [[life]].
The second element is the [[suspension]] of the [[skull]]. Because of the skulls [[topography]]cal [[location]], this is the most sensitive element of the functional [[apparatus]]...
The next element is [[dentition]], whose [[connection]] with the way of life can be readily understood if we take into account the role [37] played by the [[teeth]] in [[defense]] and in [[capture]]ing and [[prepare]]ing [[food]]
The fourth element is the [[hand]], or at any rate the extremity of th forelimb, and its possible [[integration]] with the [[technical]] [[field]].
Lastly, the fifth element is the [[brain]], whose role as [[coordinate]]r is obviously a [[primordial]] one but which functionally appears as the "tenant" of the rest of the [[body]]. This situation of the brain, which could be described as subordinate to the edifice as a whole, has been noted and recorded many times without its significance being wholly clarified. It is common knowledge that the skulls of the functional types that closely resemble one another... have housed increasingly developed brains, the earliest scarcely being larger than the [[spinal cord]]... there is no special relation between the [[evolution]] of the brain and that of the body which the brain [[control]]s.
We shall examine successively and in relation to the characteristics we have selected the major [[stage]]s of [[ichthymorphism]], [[amphibiomorphism]], [[sauromorphism]], [[thermomorphism]], [[pithecomorphism]], and [[anthropomorphism]], which correspond, respectively, to the stable way of life in an aquatic [[milieu]], the first liberation from that milieu, the freeing of the [[head]], the acquisition of [[erect]] quadrupedal [[locomotion]], the acquisition of seated [[posture]], and finally that of erect posture.
[[GS35]]
The [[transition]] from water to land involves new mechanical stresses because the [[head]] is no longer supported in a dense milieu...
Crawling on the ground imposes a curious constraint in that the mandible has not sufficient groom for [[grasp]]ing... [free the food tube from the ground] p45 discusses this freeing in detail of [[sauromorphism]].
[[GS36/37]]
We cannot cite a single example of a living [[animal]] whose nervous [[system]] preceded the [[evolution]] of the [[body]] but there are many fossils to demonstrate the brains step-by-step [[develop]]ment within a frame acquired long before.
Once again, the [ [[evolution]]ary ] advance was a step toward increased [[mobility]], the expansion of the [[operation]]al [[field]], and the occupation of greater [[space]]... the general [[tendency]] of all living species [is] to [[expand]] their sphere of activity [which] inevitably passes through the same [[stage]]s...
[[GS42]]
...[[anthropoid]] [[ape]]s freed their [[hand]] and achieved [[erect]] [[posture]] long before their [[brain]] reached the [[level]] of ours today.
[[GS47]]
If, leaving [[zoological]] [[systematic]]s aside, we consider only the [[dynamic]] [[behavior]] of [[mammal]]s, we observe two major trends: In some mammals the [[hand]] plays a part (which may be more or less important) in the [[operation]]s that take place in the [[anterior field]] of [[responsive]]ness, while in others the [[head]] is involved. This creates a division between mammals that are exclusively [[walker]]s and those that are, at least temporarily, [[grasper]]s... [this is] a separation into two [[world]]s bound for different destinations, or, to put it differently, two separate response to a fundamental choice.
Walking [[mammal]]s are... [[herbivore]]s...
Grasping mammals are [[omnivore]]s or [[carnivore]]s...with few exceptions...
[[GS50]]
Thus the study of [[mammal]]s raises from the outset the [[problem]]s of the [[hand]] and the [[face]] and of the [[posture]] when [[grasp]]ing. In [[real]]ity these problems [[form]] a single one, which has a bearing upon the design of the [[human]] [[body]].
[[GS51]]
In the [[grasper]]s, the [[complex]]ity is shared between the [[face]] and the [[hand]] [for [[walk]]ers its mainly in the skull design].
[[GS52]]
[[summary]] section, general thoughts on [[evolution]]
[60]
For each species a cycle is established between body development then brain, evolutionary development is greater the more the brain has a chance to adapt to the body. What does this mean for the image-body of the human, the body of technics, especially considering that mind/brain for the human is that of the other half, not the cage? A mind waiting in matter, an [[organized inorganic]] mind?
[[GS55]]
[[australanthropian]] is the name given to our [[tool]] using [[ancestor]]
[[GS58]]
...it all [ [[human]] [[[evolution]] began with the [[feet]]!
[[GS64]]
...the [[brain]] housed inside this [[cranium]] is no longer a [[monkey]]'s but that of a [[tool]]making [69] [[being]].
[[GS65]]
The first [[nervous system]]s of [[vertebrates]] are still very simple and, as we have seen, occupy but little space inside the [[skull]]. Their refinement (in the sense of an increasingly differentiated and conscious use of [[organ]]s) was the result of [[integrate]]ing [[device]]s being added to the existing [[system]] to synthesize and distribute [[image]]s and responses. From [[animal]] to [[human]]s the [[develop]]ment proceeded roughly as though one [[brain]] were added on top of another, each now [[form]]ation bringing about the increasingly subtle cohesion of all previous ones, which continued to perform their [[function]]s. The most recent formation... was the [[neocortex]]...
[[GS67]]
The number of [[nerve]] [[cell]]s cannot increase before the [[skull]] has been aenlarged. [[GS78]]
[previously] we defined fossil men as possessing [[erect]] [[posture]], a short [[face]], a free [[hand]], and [[tool]]s. The [[problem]] we need to resolve now is that of the [[organize]]ation of the [[cerebral]] [[apparatus]] which distinguishes the human from the monkey in the exercise of [[technique]]s. The discovery of [[zinjanthropus]] has taught us that [[technicity]] is present in even the most rudimentary of [[human]] [[form]]s.
[[GS81]]
Above all, that [[hand]] serves for making things, whereas the [[face]] is the [[instrument]] of [[phonation]] [[organization]] as [[language]].
[[GS83]]
...the [[develop]]ment of the [[human]] [[body]] had been completed by the end of the Tertiary period of the Cenozoic era, even if the development of the human [[mind]] had barely begun.
[[GS84]]
Faced with facts for which any previous [[reference]] is lacking, our [[mind]]s are helpless.
[[Gesture and Speech]]
[[tool]]s are readily recognizable as soon as they acquire a [[permanent]] [[form]] through [[secondary]] [[processing]].
[[GS89]]
...the [[concept]] of [[tool]]s as being a [[secretion]] of the [[anthropoid]]'s [[body]] and [[brain]]... it is logical that the [[standard]]s of natural [[organ]]s should be applied to such artificial organs. They must exhibit [[constant]]ly recurring [[form]]s, their [[nature]] must be fixed. The same [[rule]] in fact applies to all products of [[human]] [[industry]] in historic times: There exists a stereotype of the knife, the ax, the plough, or the aircraft that is not only the [[product]] of a [[coherent]] [[intelligence]] but is also [[integrate]]d in a [[substance]] and a [[function]].
[[GS90]]
[91] We can, indeed we must, think of the earliest [[anthropian]]s as having an [[intelligence]] [92] inferior to our own, but we have no right to imagine their intelligence to have been [[biology]]cally [[incoherent]].
[[GS91]]
...a good deal of foresight on the part of the [[individual]] performing the [[sequence]] of [[technical]] [[operation]]s. The [[Australanthropian]]... already had a mental [[picture]] of the finished [[tool]] because the pebble chosen had to be of suitable [[shape]]... Furthermore a second operation has to be performed to reduce the initial flake to a shape that must be pre-existent in the maker's [[mind]]. [cultural transmission-the other half of teh human-the Unorganism here?]
...Both [[fossil]] and [[tool]] finds strongly suggest that tools and [[skeleton]]s [[evolve]]d [[synchronous]]ly.
[[Proust and the Squid]]
[[GS92]]
[[human]] [[species]] closer to ours last for shorter times "a fact that is in line with the general [[acceleration]] to which human [[industry]]s testify.
first with species, now with the [[other half of the human]] [[Spinoza]] essay
[[GS97]]
tinkering with his [[machine]]s
But if you try to build the world as a [[trivial]] machine, you leave yourself out. That is, you’re not a part of that world. For me this description of a world without the people who describe it is boring. I’d much rather ask: How does that hap- pen? How could I build a world—if one does want to build it—in which I too have a place, in which Karl Müller and Albert Müller will also appear?
f I were to build houses out of chewing gum, the houses would look completely different. The building blocks that I use to build something influence very strongly what is built. A building is always going to be an expression of that from which it is constructed. And so I begin by leaving out the building blocks, because first of all I want to be a co-resident, a part-taker, a part-giver of the whole.
[[HE9]]
If the [[brain]] is seen as a [[sensorium]], then this sensorium proves infinitely richer than the sensorium for the outside [[world]]. From outside we hear almost nothing and see almost nothing. From within we hear and see constantly. Essentially we are listening, not to music, but to our own brains, our own heads. Normally we’re interested in the outer casing— ears, eyes, nose. But no: we should concentrate on the brain, which is almost infinitely richer and more diverse. You can imagine it like this: “Close your eyes! And then what are all the activities going on inside— bad conscience, good conscience, you are pleased, you are frightened, you imagine something, you don’t imagine anything, an incomparable inner waxworks. The cerebral orchestra turns out to be a gigantic ensemble compared to the little brass band that we see or hear on the outside.
[[HE98/99]]
This reminds me, incidentally, of that very funny saying: “Seeing is believing.” I, however, would reverse this saying—“Believing is seeing”— one only sees what one believes. If you know it’s all about this or that, only then can you see. Seeing alone wouldn’t be enough—first you have to believe what’s going on, then you see. Incidentally, here we’re deal- ing with a phenomenon important for sects, cults, and preachers’ flocks—if someone manages to make people believe, then the poor souls are lost.
This systemic [[connection]] between believing, [[feel]]ing and perceiving directs our attention to the following problem as well: In what [[condition]] was this gigantic [[network]] first exposed to a [[sensation]]? I can easily imagine that first [[experience]]s, first adventures, first feelings exercise a really decisive influence over [[operation]]s and [[perception]]s.
[[HE101]]
To get rid of such folk [[psychology]], a [[new]] [[form]] of [[thought]] is needed. Once again our problem of [[form]] appears. How can I talk about memory without pictures and metaphors of boxes, ware- houses, silos, chests, and other memory places? How can we talk about memory without making it seem like an isolated ability? How can memory be described as an observable function of a great flow of activities that one could call “[[cognition]]” or even “[[life]]”?
What do I mean by this? If I don’t want to peel out the [[localization]], the functional separation, but rather the great cognitive functions, then I need to have a [[language]] that pushes my [[attention]] in other [[direction]]s, toward other [[relation]]s and [[connection]]s.
[[theme]] of how memory is not isolatable
[[HE103]]
The disappearance of [[remember]]ing from the ability to tell is a problem that interests me greatly. What is happening for the other person, for my conversational partner, so that the idea of [[memory]] sudden van- ishes before our very eyes? And then why do I need memory for “Hansel and Gretel”? Let’s imagine that I don’t need memory for “Hansel and Gretel” either, instead I constantly reinvent this story. Or: If the Hansel- and-Gretel problem arises, I choose those grunts and sibilants that will lead another person to think, “Here comes ‘Hansel and Gretel.’” Let’s assume that this story gets told differently every time, unless the Grimms’ stream of grunts and sibilants has become such a habit for you that you are able to exactly reproduce the Grimms’ version of Hansel and Gretel here and now. But where does this ability lie? I’ll try to get another [[perspective]]: You yourself become Hansel and Gretel when you tell “Hansel and Gretel.” That means that you—your entirety, your whole being, you as a person—don’t just chew the meat, don’t just drink the wine, don’t just say to Annie, “The breakfast was excellent.”11 You’re also capable of “Hanseling and Greteling.” I’m trying to choose my [[language]] so that the problems of forgetting, of remembering no longer appears as a phenomenon of forgetting and remembering; instead, the linguistic shackles, which force us to think in terms of these separations, are loosened and kicked off. I haven’t yet been entirely successful on this point.
[[theme]] [[Difference and Repetition]] ch2 should be tied to this page, especially a part not copied into this zettlekasten. Ontological dimension of the [[past]] for [[Deleuze]]
[[HE105]]
I’d just like to stretch ad absurdum the idea of describing something that functions in a certain way as remembering. Surely we could also say that the car remembers that it is obliged to turn its motor over if the key is turned. Those are all lovely metaphors.
[[remember]] [[memory]] [[theme]] [[language]] we can always [[overcode]] problems into the language of memory; [[von Foerster]] is trying to prevent that from happening.
[[HE106]]
This [[problematic]] was repeatedly taken up by interesting people. Ross [[Ashby]], for example, formulated this question in another form: Can a mechanical chess player outplay his designer? Can an apparatus that was built with a limited wealth of information outplay the designer who designed the apparatus? Can it surpass him? And back then [[Quastler]] answered this question in the affirmative: “Of course, we can see it. If one calculates the proportions for a genetic [[program]] and then for a [[brain]]— essentially one just needs to count the synapses—then one hits on some really astonishing relations: The program that presumably defines the [[structure]] of the brain, comes up short of the required magnitude by a factor of about 10^10. That means that the genetic code, which determines much more than just the [[nervous system]], is not capable of [[programming]] a network of the magnitude of the brain.” Expressed differently, an architect, our dear designer-[[God]], can sketch a relatively simple ensemble that can develop in unbelievably complex ways after it is built.
int: A very important bridging principle in this context is the following command: “To create something complicated, produce something very simple, but produce many, many copies of it and—‘More means different’—make a ‘big [[machine]]’ out of them!”
[110]
Yes, but this big machine, the brain, for example, doesn’t consist simply of [[assemblage]]s that are copied over and over again. The important point is the interlinking of such elements. A form of interlinking develops in which every subsequent [[connection]] opens up and develops new possible combinations. We don’t have Copy A lying next to Copy B, but rather [[component]] A together with Component B—and vice versa. Gordon [[Pask]] would call this a “rule of [[superadditive]] composition.” That means that the rule of [[composition]]s covers not only A and B and C but also the combinations AB, AC, BC, ABC. The moment components are connected with each other in this way, an unbelievable number of [[new]] [[relation]]al [[structure]]s [[emerge]]. There can also be [[connection]]s, of course, in which components compensate for and suppress one another, which Pask would call a “[[subadditive]] composition.” Superadditive and subadditive compositions— all kinds of things arise from these. These [[observation]]s can even be used to draw conclusions about organizational and management theory, because here too cooperative or competitive schema can be represented or theoretically analyzed through rules association. Why am I putting so much stress on this problem of [[network]]ing? Because I see this as an absolutely fundamental problem for computers.
[[repetition]] [[produce]]s [[difference]] [[hook]] [[hook ontology]]
[[HE107]]
I cannot find any difference here because neither case provides a satisfactory solution to the problem: A [[thought]] [[machine]] must be in a position to talk about its own [[automatism]], to change it, and so on. The [[automaton]], whether classical or contemporary, [[operate]]s as something else. And this “as something else” represents a reduction of the necessary diversity. For the most part, our understanding of [[cognition]] and the models based on it are still working at the level of explanatory principles, a phrase that Gregory [[Bateson]] defined wonderfully in dialog with his daughter. As usual, the daughter started with her [[question]]s: “Daddy, what’s an [[instinct]]?” She immediately gets the answer, “Instinct, that’s an explanatory principle.” “But Daddy, what does this principle explain?” “Anything you want it to.” “But Dad, don’t be so silly. It won’t explain gravity.” Then Dad explains, “It’s not usually used that way, no, but if you wanted, then instinct could also explain [[gravity]]. One could say that the moon has an instinct whose strength varies inversely with the square of the distance of the Earth . . .” “Dad, that’s nonsense.” “Yes, yes,” he says, “I didn’t ask about instinct, you asked about instinct.” Memory, I would claim, is a Batesonian explana- tory principle. Memory could also be used to explain gravity: “The moon has a power of remembering whose strength varies inversely as the square of the distance of the earth . . .” “But don’t be so silly!” “Well, that’s how most people think about [[memory]].”
[[theme]]
[[HE109/110]]
[[language]] is a special system of [[communication]] that can talk about itself.
could be tied to [[indirect discourse]] here
[[HE113]]
I would suggest and strongly recommend that [[language]] be conceived of as a [[second order]] concept, namely, as a communicative system that can [[communicate]] about itself. For that reason the capacity for language also has a [[logic]]al [[structure]] that has to be represented, realized, or manifested organically. If problems in their logical structures prove to be separable, then maybe I can think about how the manifestation of such logical structures occurs.
[[HE116]]
observation is a very important element that cannot be eliminated: No [[question]], no [[answer]]. If you turn this proposition round, one must already have certain answers in order to pose questions or make [[observation]]s.
[[HE10]]
But as soon as I can say, “Now that was a friendly grunt,” or “Don’t hiss so mean,” then the sequences of grunts and hisses themselves can be talked about. Because I can talk about the grunts and hisses themselves, the sequences of grunts and hisses can be changed, modified or diversi- fied into French, German, or Turkish. We get an enormous extension of richness in our capacity for relations. If [[Bateson]]’s [[observation]] holds true— that in animal [[communication]]/[[gesture]], relations are created—then this phenomenon is all the more so in that [[human]], all too human, area, that is, the area of language.
If I can talk about [[language]] itself, that opens up the possibility for reflections on [[reference]]s and [[relation]]s, on the weaving of linguistic [[relation]]s, that means that I can modify references to [[reference]]s, and therein lies a very interesting possibility that multiplies the richness of [[possible]] references.
[[HE119]]
The first [[machine]] [[translation]]s worked fabulously, as if out of a fairy tale; you’d have dictionaries for language A and for Language B, and using an artificial editor turn a sentence in A piece by piece into language B. We got into this area more or less by chance and started to get interested in language. And that’s when I reached the point of no longer regarding language as a vehicle but as a co-player [ [[actant]] ] whose inclusion can lead to new insights about [[cognitive]] functions, about the [[nervous system]], and so on.
[[cognition]] [[Deleuze]] [[post-human]] [[Stiegler]] [[Latour]] [[important]] [[theme]]
[[HE120]]
He published a work that is very much worth reading in which he really elegantly developed the problems of calculations in [[semantic]] [[structure]]s of [[relation]]s. The sum of [[Weston]]’s work: Grammar can submit semantics to a structural re- striction, but it can also lead to semantic enrichment. [[grammar]] is a [[filter]] through which a rich semantic structure must pass in order to be able to manifest itself. [[face]] [[faciality]] [[abstract machine of faciality]]
You made an important analytical contribution in the seventies, which is stressed in “The Magic of Language,” which was that the problem of language became fully integrated into the [[magic]]al game of [[recursion]]s, and even [[object]] [[name]]s were taken into the realm of [[behavior]]al competencies and [[eigen]]values.
Naturally, it begins with a [[stable]] behavior in some given area, as we have already mentioned very briefly. If I encounter a restriction of my [[motor]] functions, something that blocks or stands against or objects to my actions—I try to stretch out my arm and can’t do it because something stands against it—then I call this objecting thing an object. I can work with or against this object and say, “Well, now how can I go further, how can I win back my freedom of [[movement]]? What should I do with this object that resists me so that I can develop a ‘better feel’ for it?” One begins to manipulate the objecting thing, to manipulate, to manipulate . . .
int: The [[hand]]s are back in the [[game]] again—mani-pulate . . .
And eventually I know exactly how I ought to [[operate]] with this object. I take the stone, lift it and role it up the hill. Then I put on my glasses and observe it rolling back down. And then I can begin the manipulation again from the beginning. It is through [[circular]] activities or [[recursive]] [[operation]]s that a stability is achieved with regard to this obstacle that blocks me—and I can also call this “competency.” If I know exactly what I have to do in order to “stone,” then I call this object with which I “stone” a “stone”; as soon as I know how “to glasses,” then I dub this object “glasses.” And this is the origin of the remark that the names of objects are actually [[name]]s and symbols for movement competencies—objects as [[sign]]s, [[symbol]]s, “[[token]]s” for [[eigenbehavior]]s.
[[article]] [125]
This reversal directs the view away from objects and toward behaviors. And people like Francisco [[Varela]] and others who concern them- selves with similar language problems considered this turn an original contribution. FN15: Varela paper Not everyone sees an object as just a symbol for a [[motor]] [[competency]]; instead, we are in the habit of looking at things the other way round. But if you take this point of view then it becomes clear that it is you yourself who is occupied with the stone—and that the others whose freedom of movement is hindered by this object are also hissing and grunting “stohn.”
int: If one has various symbols, the problem of arranging these symbols quickly arises, and it falls to something like a grammar or a syntax to join these symbols together.
hf: Well now, here I’d like to keep several areas apart. I don’t think that the building block metaphor that is hiding in the background of your question—“I’m busily gathering building blocks, oh no, now I have to put them in [[order]] or I’ll lose track!”—describes our issue very well. It is not the case that one starts by gathering up a lot of “stones,” “glasses,” or “books” as names for motor competencies—they all grow together like a tree.
[[rhizome]] [[emergence]] of grammar [[collective assemblage]] [[machinic assemblage]] the [[refrain]] [[operates]] similarly for D and G
[[HE109/110]]
I can only present the collected trinkets that, for me, represent the [[language]] [[problem]] and the [[form]] in which I would like to speak about it. That language is a collection of a [[society]]’s [[eigenbehavior]]s seems to me to be a plausible starting point. I like to think along the lines that our vocabulary, the way we speak, etc. are the eigenbehaviors of [[recursive]] systems, that through constant [[repetition]], repetition, repetition . . . this grinding down of [[language]] is produced. In this way I can easily understand that just a few kilometers further north or south the [[eigen]]behaviors are slightly shifted because they are always being polished by their users. The users polish and polish and polish—and so local and social differences of usage come about.
[grinding down vs [[differentiation]] or [[differenciation]] ]
int: You used the beautiful metaphor of language as tree: “And green the golden tree of speech.” If we look at various living trees, we can easily see that there are com- pletely different types. There are on the one hand languages in which the word endings are fixed, as in English for the most part—and then there are languages like Latin that inflect; there are language-trees with a fixed word [[order]], tree- groups with a free one . .
.
There’s a really lovely term from Gordon [[Pask]], “nucleation.” [[self-organization]] can develop very quickly if there is a [[nucleus]] around which an [[organization]] can develop. In my essay on self-organization, to a small extent, one can also find this idea—or rather, invent it within it: We have little wires with [[hook]]s on both sides, our hooked-universe from the second conversation.18 The hooks can take hold in different ways. If, however, I shake differently shaped hooks, then depending on their form completely different [[structure]]s [[emerge]]. [[The form]] of the elementary building blocks influences the possible forms of self-organization. And by analogy this also accounts for [[potential]] organizational nuclei in the process of nucleus for- mation itself. Which of the elements becomes the nucleus often depends on [[chance]], on an accidental constellation. I see the different developments of language analogously. Different nuclei create, in part, very different stabilities, different eigenbehaviors. To me this form of language dynamics and language differentiation seems very convincing.
[[Guattari]] [[Machinic Unconscious]] and his use of the [[nucleus]] of an [[assemblage]]
[[HE124/125]]
Listen up! Here we come to [[Foerster’s razor]]: “Explanatory principles can be eliminated without loss.” I can also throw the word “[[instinct]]” out the window because it is so successful and explains every [[behavior]]; I can escort the language organ, along with its [[organelle]]s, off the premises because it explains the creation of language in such grand style. It’s no critique from me; it’s just to do with our game box and its possibilities— and that is not my game. I play scat, I play bridge, but I do not play with organelles or [[language]] [[organ]]s.
[[theme]] [[important]] [[Bateson]]
[[HE126]]
For me, “[[I]]” is a [[fold]]ed up [[recursive]] [[operator]] of infinite depths, but one can operate with it, one can [[operate]] with it without any trouble.
In his very lovely and important book [[Laws of Form]], George Spencer [[Brown]] consistently developed the idea that [[paradox]]es create [[time]], a very amusing and clever formulation that I really like. But Ross [[Ashby]] had already grasped exactly this point because in [[paradox]]es a [[dynamic]] develops in which one [[condition]] creates the other and the other the one. From a dynamic view, the paradoxes of self-referentiality don’t represent any great problem, and the fear of falling into self-referentiality needn’t be met with an infinite series of steps and stairs. By letting ourselves in for paradoxes we find ourselves in a dy- namic game in which the one creates the other—and vice versa
[[self-reference]]
my version of I-[[recursion]] [I create] [I] [Create I] [Create] [I Create]....
[[HE127]]
Here [[language]] proves to be a fundamentally unknowable trap because it functions as a great interpreter of what happens in our enormous neural [[network]]—[[sensory]] and [[motor]].
[[sensorium]] [[motorium]]
[[HE133]]
int: ...an important point, namely [[Bateson]]’s “the [[pattern]] which [[connect]]s.”
This very important principle in Batesonian philosophy, the search for the pattern that connects or the command, “always mind [[potential]]ly connecting patterns,” runs all the way through the book [[Mind and Nature: A Necessary Unity]]. Right at the beginning Bateson writes that he’s offering a paraphrasing of his ideas: “the pattern which connects.”28 I once thought about a possible extension of the Batesonian connecting pattern. “Pattern” comes from “papa,” “pater”; it is the father whose stamp is printed across everything, always looks exactly the same—that is the pattern. This I would like to compare with a mother, a matrix—“the matrix that embeds.” In this way I’ve gained parents, the papa, the pattern that connects, and the mama, the [[matrix]] that [[embed]]s. The papa is responsible for the pattern, and the mama makes sure that the pattern falls on fruitful ground in which it can blossom, thrive, and spread itself. The pattern needs a breeding ground, one might say, that is maintained through the [[womb]], the matrix, the mater, the mama. I feel these two poles belong together, the Batesonian pattern and the Foersterian matrix—I’m always thinking about women, aren’t I?
[[family therapy]] is discussed briefly [[HE134]]
The [[Piaget]]-[[Chomsky]] conference is an example of a [[recursive]] [[production]] in which, however, no [[eigenbehavior]]s, no consensual domains peel themselves out. You already mentioned some of the reasons why that happened—the arrogance of some participants, the claims of some top dogs. What are the possibilities that a recursive [[event]] won’t move from the spot?
[[HE135]]
My interpretation of the theorem is as follows: If, to put it in my [[language]], one [[element]] of a process of consensus building or even in our [[dialogue]].
Fritjof [[Capra]] and [[Kuhn]] are mentioned, [[paradigm]] shifts are discussed
[[HE138]]
In our conversations about the [[magic]] of [[recursion]], we encountered two types of operators: operators of the first order and [[operator]]s of the [[second order]], which send the first-order operators out on journeys.
[[functor]] [[eigen]] [[eigenbehavior]]
[[HE139]]
I enthusiasti- cally perform this kind of inversion again and again. If a proposition goes ABCD, then I’m interested in DCBA. I think that theories of humor claim that such reversals—especially when they happen unexpectedly—form the foundation, the core, the point of jokes and humor. If you like you can say that my central theme is—the joke.
int: One very instructive experiment in inversion comes from your Viennese days— you turned around the propositions of the [[Tractatus]].
I did have certain difficulties in selling [[Wittgenstein]] to my [[constructivist]] friends, or at least bringing him a little closer. Why? There are some propositions in Tractatus that absolutely cannot be interpreted in a constructivist manner; in a way they’re a boxing around the ears for constructivists. Take for example [[Wittgenstein]]’s “picture theorem,” the famous proposition 2.12:
“A [[picture]] is a [[model]] of [[reality]].”
Ernst von [[Glaserfeld]] once said to me, “When I got to this point I put
the book down—and didn’t read any further. Total nonsense to me—first the world is postulated, and then the picture comes afterwards. We’re not taking pictures!”
Good, now here comes Heinz [[von Foerster]] starting his “[[inversion]] game”:
“[[Reality]] is a [[model]] of a [[picture]].”
Here the picture becomes the cause and the “world,” our “reality,”
the consequence, not the other way round. And naturally the [[constructivist]]s are very happy with this [[inversion]] because this is how they see this connection as well.
Does this inversion bring you into contradiction with other [[Wittgenstein]] “theorems,” that is, do you stumble? No, I’d claim that one can— unless one forgets to invert the relevant sub-propositions—develop a totally consistent philosophical picture if you invert his “world-picture postulate”—and build it up as the “picture-world postulate.”
[[HE139]]
Yes, we developed a [[constructive]] [[circle]] or a [[creative]] circle rather than a vicious circle. These kinds of inversions come up again and again, they are perhaps, if you wish, actually a piece of “Heinz methodology.” If you have a relation that shows asymmetries—“That is primary, the other is secondary and follows from it”—then I immediately turn the tables and look to see which new pictures emerge. As we’ve already said, this op- eration seems to be the foundation of humor, the point of jokes. On the one side stands a fundamental statement, for example the one from Korzybski—“The [[world]] is not a [[map]].” And then comes Heinz von Foer- ster: “Bam, the world is a map.” Suddenly the fundamental statement is a joke, people laugh—and can build new insights on this basis. I think that it represents essential progress if our “fundamentals” are turned around as jokes and, therefore, become entertaining rather than overwhelming.
[[Derrida]] [[Baudrillard]]
[[HE147]]
The [[element]]s don’t matter to me; the only thing that matters to me is the [[connection]]s; they’ve got me under their spell. The problems are the same everywhere; it’s just the elements that move around. Usually you can’t find these kinds of connections on the same [[level]]s, if I may say it like that; as a rule you have to go down a floor—“Ah, the same thing is going on here; let’s move down again!” Working in this way, it might be that to make the connections I need elements that I first have to [[invent]]—and so the different floors and stages come about. Thus, if you ask me why I slip into these different levels, I’d answer that there are no surfaces; everything is equally deep. You just have to know how deep the connections are that explain or describe these phenomena.
That’s a witty variation on an important proposition from the manifesto of the Vienna Circle—“In science there are no ‘[[depth]]s’; there is [[surface]] everywhere.”
Good, yes, splendid! Then we’ve just invented the Foersterian complementary proposition to the Vienna Circle manifesto.
[[HE150/151]]
tint: he Foersterian corollary number 1—goes, “Everything said is said to someone.”9 That means that the [[observer]] and the reader, the writer and the reader, the speaker and the listener, they form a dynamic unit—for all of them, it’s an invitation to dance, to play.
Exactly, that is the idea, that was my [[supplement]] to the deep meaning of “Anything said is said by an observer”—“to an observer.” Otherwise the reference to observers and speakers loses its meaning, because for me the decisive point is always the being-together, the dynamics.
[[description]] [[second order]]
[[HE156]]
now I take an operator that, once it has carried out an operation, changes its own operation—we might also say, that changes its inner condition. After a multiplication by 2 it becomes a multiplier by 3. And if it was with 3, it goes on to multiplying by 5 or something simi- lar. And now you let this operator “run” and ask a friend, “Could you find out for me how this [[machine]] functions?” We seem to be dealing with a simple analytical problem—and yet it turns out that even with the most elementary [[nontrivial]] [[operator]]s these analytical problems are unsolvable.
[[HE12]]
Instead of lecture titles like “Science and Explanation” or “Objective Knowledge,” I’d rather have a dialog on the theme “[[Understanding Understanding]].” I’m drawn to thinking about under- standing as an independent dynamic. I would actually like to be constantly active, and therefore at the center I see activities, producing the new, the new, the [[new]].
[[HE158]]
int: Such ideas cropped up in the 1980s in the form of “quality circles” and “autono- mous working groups.” If you were to appear today as a consultant for business or large companies, what would your pattern solution be?
Great question. Yes, I’d have to think about that—so I don’t have an im- mediate answer. I could well imagine, however, that for a single company I would get the ideas of “[[feedback]]” and “[[recursive]] [[coupling]]” anchored within the organization. DuPont is one of the gigantic corporate [[machine]]s—and two leading managers of DuPont came here and sat right where we’re sitting and talking now. The two of them picked my brain pretty thoroughly, and one piece of advice that I gave at the time proved to be constructive and useful. I said to them something like, “Lis- ten, you’re constantly stewing in your own juices there; no one knows whether they should believe this one or that one, what someone does or doesn’t want to hear, who commands whom in the factory, etc. Attach a separate division with about twenty people to this big system; you could call it the ‘industrial research division’ if you like. This division should sit ‘outside,’ so to say, should investigate you and observe what you’re doing. And if you listen to the suggestions and ideas this new division develops then an interesting interplay could develop out of that.” The reaction of the two DuPont managers was skeptical at first: “We couldn’t get a division like that through in the company!” A year later the two managers got in touch again: “We’ve actually built this new division— and the idea has worked unbelievably well. At first there were some personnel problems, then we searched specifically for some suitable colleagues—and since then the interplay between the outside observation division and the inner life of the large corporation proved to be perfect.”
int: Did you know by any chance what concrete tasks this observation division had to perform?
I think, to a large degree, the taxonomy of system divisions and how one gets away from old routines—here the office employees, there the mechanics, over there the foreman in the engine room, the coach build- ers, and so on. And slowly they seemed to overcome that so that each competence glided into every other competence, allowing a superaddi- tive composition to emerge, as Gordon Pask would put it, in which work could flow in a creative and mutually supportive way.
int: That implicitly enables an interesting change of subject. And since we’ve achieved an initial overview of the first-level operators, we should turn to the probably more difficult question of their parents, the second-level operators. An important operator of this kind, which has come up day after day in our conversations, or rather in your answers, could be called a Foersterian [[form]] operator, which in its turn sets in motion first-level operators—inversions, etymologies, and so on. [[second order]]
It’s true that I always get up on my form hobbyhorse with every [[problem]]. “What is a question’s form?” “What form of answer do you want?” “What is the form of this and that?”—the formal aspect of watching and [[observing]]
[[recursive coupling]]
[[HE160]]
I am always seeing [[form]] as a structure of relations that can also have different [[structure]]s of [[relation]]s than their [[element]]s
[[form]] as [[second-order]]? [[medium]]
an [[example]] follows wherein the element is what knowledge its, form is either dictionary term or etymology of German
[[HE163]]
int Now we come to another [[second-order]] [[operator]], which switched itself on right at the beginning of our conversations, probably not by chance. I would like to call this operator “here and now,” ambiguously speaking. This operator transforms the apparently distant past or far future within a conversation—“here and now.”
[discussion makes the past his et nunc]
My grandmother had a great influence on me through her sayings. As a child one must constantly overcome terrible disappointments—you lose something, you break a little toy, you cry, you’re sad. “Now why are you crying?” “I just broke this little knight. The horse’s feet broke off . . .” “Listen to me,” my grandmother would console me, “everything is here and now. You think there used to be a horse. But the horse is here and now, it is here now—there is nothing that has been.” This “Every- thing is here and now” became a [[mantra]] for me.
[[precept]]
[[HE166]]
int: A very important point, which is also already our fourth [[second-order]] [[operator]], is represented by second-order [[operation]]s. You very much like to build the [[form]] of your [[problem]]s into a second-order problem—and you form them so that what you’re talking about becomes part of the processing and, so to say, contains itself.
[170] Perhaps I should emphasize why I hold these second-order concepts to be so important: As soon as you with- draw to the area of the second-order—the understanding of understanding, the knowledge of knowledge—the first-order problems are suddenly illuminated in ways that you can’t perceive on the first level.
The purpose of [[purpose]] is the determination of [[goal]]s without having to consider the ways, routes, and trajectories right away. And that also hits on the point that Norbert [[Wiener]] and the early [[cybernetic]]ists recognized very decisively: What does the navigator who wants to get into the harbor do? In a purely physical way I can never determine what course the ship will take to get into the harbor. The wind is roaring from the left or right, obstacles sud- denly tower before you, other ships are crossing. Laying it out like this just isn’t possible. But as a rule the navigator manages to get the ship safely to harbor because he constantly sees the divergences from the course and can correct the steering—and in this way finally lands in the harbor. And that’s why the introduction of purpose makes cybernetic [171] and physical sense: It’s purposeful. It relieves me of the burden of having to constantly deal with the next step.
[purpose as [[continuous]] not [[discrete]] ]
[[HE167]]
My position is as follows: emergence is a culture-bound [[cognitive]] process. I live in a certain culture in which I can see that certain phenomena “emerge” and others do not. We find emergence where some- thing new comes into being, where one or some or many people or we ourselves suddenly see something differently. The moment I see some- thing differently, something [[new]] is there. You can call this “emergence” and thereby remain generally understood. However one could also bring the perspective of [[self-organization]] into play: This self-organizing system has swung into new [[eigen]]values that it did not previously pos- sess. And with this there are new insights to observe, something has “emerged.” But not there—no, here, inside of me something is newly configured, and I see it as a new understanding. [[emergence]] is my ability to see [[new]]ly.
[[cognition]]
[[HE16]]
That would be all my love affairs with my environment. It’s probably always the case that I enter into loving relationships with others and therefore try to dance with others. And because I probably wouldn’t want to dance with a stranger, with someone I didn’t like, I always immediately see my partners as loveable and dance-loving people. That astonishes a lot of people. I go into a store and see someone who’s crying. I ask, “Ah, what’s the matter?” “My grandmother has died.” I would try to comfort them.
[[HE169/170]]
[20] All the elementary parti- cles of which these systems are constructed are [[nontrivial]] in nature [21] meaning that once carried out, an [[operation]] changes the [[operate]]ing style, the operating [[form]] of the [[machine]]
[[HE17]]
the operation has changed the inner condition, the [[threshold]] is higher now. In McCulloch-Pitts nets the threshold stays the same. The only way the threshold is changed is by accepting an inhibitory im- pulse. That means that I can now [[inhibit]] the cell through another loop so that if the impulse comes the cell does fire. But then word comes from elsewhere: “Be the sort of cell that won’t fire anymore.” Conversely, the [22] [[von Foerster]] cell raises the threshold itself, and in such a way that I cannot determine it, so that the cell remains for me unexplored and unexplor- able, a [[nontrivial]] cell. Pitts-McCulloch cells, on the other hand, are all [[trivial]] cells that are [[regulate]]d from the outside.
My daemon works completely differently. The beauty of the [[nontrivial]] system is that you can get it to run recursively. If a nontrivial system [[operate]]s in a closed unit, it gets to [[emergence]], [[eigen]]behaviors occur. As soon as you have this kind of [[recursive]] involvement, [[process]]es become partly predictable, although you don’t know why it’s happening. That’s life... You know that every time this [[demon]] is active you get one. You want to know how it works? You don’t know how it works! And if something claims he can find out, I reply, “How kind, now at last I know something about you!”
...now [[emergence]] gets into the game. You let it run, give it time, and out it comes. For example, Karl Müller, he just comes out.
[[HE21]]
interviewer: If we slowly summarize the [[game]] of [[beginning]]s, then we see we’ve exhausted two areas. One is that it is not meaningful to get involved in the small-buildings industry and that there are attractive alternatives in the [[order]] industry. With regards to the theme of [[emergence]] and the [[limit]]s of explanation, the other impor- tant message for the beginning is that we are able to predict and know far less than we normally think.
VF: May I [[draw]] another [[distinction]] there. Explaining and predicting are two different areas. If you drift into an [[eigen]]value situation and attain stabil- ity, you can of course always make predictions. Some [[operator]]s converge very quickly, some very slowly—these then are specific questions about the operators—and this problem doesn’t seem very pressing to me. Here predictability is important: If I am in the phase where the eigenvalues have calculated themselves, I can make [[prediction]]s—but I don’t know [24] why. That’s the [[problem]] with “why.” Therein lies an unfillable empti- ness. You know that something is unexplainable. I can only ever watch what happens when I ask others for an explanation. That sheds some light on those people but not so much on the [[explanation]]. Predictability and explainability should be kept distinct. Explainability has nothing to do with predictability; predictions of [[nontrivial]] systems are possible, explanations are not. [[eigen]]
Many say, if I have a model, I can predict as well as explain—except that [when] you have a [[model]] that shows that one cannot make predictions if you are dealing with a system whose essential characteristic is nontriviality. That is, a model that deals with [[operator]]s whose operations change them- selves with every operation. Then I can no longer explain, even though I build this operator and know how I have constructed it. But analytically I cannot explain it
[[HE22]]
No, the students could not have prognosticated this apparatus. Someone could have prognosticated it, however, if they had translated the out- put into the switch position on a symbolic basis, if he had found—or invented—a relationship between the lights and the switches. Whenever they had hit on such a pattern, they could enter it with the switches and after five or ten operations the system would run stably. And the funny thing about it is that sometimes they had the right feeling and thought, “We’re already there.” But one false step, a step off to the side—and soon it all fell apart again. That’s the terrible thing with a [[machine]] like the [[Ashby]] Box. You think you know it, but even the person who constructed it can’t predict its [[behavior]], even though he knows how he has arrived at this step. However, if you can manage to introduce [[recursion]]s into such a system in a conspiratorial manner or by a hidden path, so that the input/ output correlation increases, then the system runs [[recursive]]ly and be- comes predictable.
The “[[drift]]” in recursion enables prognoses in [[nontrivial]] systems. And in a weak sense it also explains why there are particular behaviors, particular [[limit]]s or [[eigen]]values.
Naturally, as far as one can describe it. If someone gives me a rule then he is only telling me the rules of representation but not how the machine functions. Ultimately, the machine remains unexplorable. That is not a mythology but textbook knowledge, simply applied to situations that we experience all the time. That is the difference between analytic and synthetic problems. The synthetic problem consists in building a model. The analytic problem lies in peeling out a model as a part of the world and then finding out how it works
There are different methods to find that out. For example, if you can manage to bring a recursion into this model, to experience it or to live it yourself, then the role I’ve played has worked. I would say that [[language]] is just such an eigenvalue, an eigenbehavior. We speak—and it works... But there are *many* eigensolutions... That is caused by the social context that enables these recursions. And recursions are constantly sought after because I can move around in them and feel good in them. Of course there are always disappointments, but these are in the nature of recursions. If I swim, then I swim along in an eigenbehavior, and I think that I have achieved triviality and security. Beneath it, however, lurk the depths of nontriviality.
[[HE23]]
int: Let’s have a go at another [[paradox]]ical endpoint at the end of our beginning. We began with, among other things, this proposition: The world contains no infor- mation; the world is as it is. One of the points of our last statements was that it is meaningful to get involved in this recursive game because it leads to equilibri- ums, to [[eigen]]values. Now one could summarize this in a different form and say: The world contains information. The second part I cannot negate; that would be a contradiction. But one could say it becomes informative to get involved in this [[recursive]] [[game]] because then the [[world]] contains [[information]].
I would play the [[game]] like this: I would say that I am capable—through the attempt at [[closure]] of an operative [[unit]] or the peeling-out of an opera- tive unit through closure—of reaching [[stable]] eigenvalues, eigenbehav- iors, so that I allow information to [[emerge]] for me out of this situation. The information was not in the game to begin with; the results were only won once stabilities were able to develop.
Information only comes into being, emerges, grows out of this game, in which I feel, recog- nize or even experience stability.
int: So the more fitting variation would be: The world contains no information; the world is playable
.
Good, the world is a casino. The world is created because I have played it and continue to play it
.
int: That leads us to one of the initial Foerster quotes for the day: At every moment I can decide who I am.
[[HE25]]
As soon as I get to that point, I can apply the Second Law of Thermodynamics with complete success because I am dealing with an energetically closed system. And this way one can use it to make all kinds of predictions—one can therefore use thermodynamics to say that [[order]], that relations between elements in the system, cannot exist in such a way that elements drop out or disappear, but that the order I observe will increasingly slip away from me. How did Boltzmann see order? He very rightly regarded order as the difference between two objects. As soon as I say, “That is an ashtray,” and, “That is a tape recorder,” I have given the world a certain order: the ashtray is an ashtray—and likewise the tape recorder is a tape recorder.
But if, while we’re sitting here, the ashtray suddenly starts to look more and more like a tape recorder and the tape recorder more and more like an ashtray till in the end all I have before me is a grey, black, silver mass, then I would say, “Oh, no, all order has been lost.”
[[HE27/28]]
Some time ago, I often used to think with friends, one of whom was Gordon [[Pask]], about the idea of [[self-organization]]. And of course self- organization comes into play at once when one considers the [[Bertalanffy]] interpretation of thermodynamically [[open system]]s. Because then one asks, “What can energy do if it’s pumped through this system?” And there the most diverse aspects can be demonstrated. First I’ll give you the “[[von Foerster]] aspect,” which in my opinion is the simplest. The Foerster aspect claims the following: “If in a system there exist building blocks or elements that can enter into certain relations, thus showing a [[potential]] [[structure]] of [[relation]]s, then they need [[energy]] in order for these structures to be realized.” If I have some components—for example, balls and bowls—and I pump in energy by shaking them, then the balls will go into the bowls. Or: If I have little [[hook]]s and I shake this system, then I’ll get a chain. And if for example you work in a garden, you will also, to your great annoyance, come across self-organization; there’s nothing you can do about it. You constantly see self-organization: You walk with a dog on a leash and soon you’ll get caught on a root or a branch.
I would, by the way, make the following recommendation to nuclear physicists: Don’t think about little balls that won’t have anything to do with one another; think about little hooks, the whole universe is made of little hooks. And if you shake them, then the hooks join together, especially if they’re those fishhooks that are bent at both ends. You’ve got to give it a little shake. Everyone can try this out in his or her room. Put fishhooks in a pot and shake it. Then take them out. They’re all connected. Marvelous self-organization. All I need to do is shake. And nothing else. That means that if I let energy flow through a thermody- namically open system then the structures, potential structures that exist, will be realized. And in many different ways. I cannot predict how this hook system will look in the end. I can only say: I can pull it out at the end. But how A will be connected with C or M, I cannot know; that means that I can’t tell whether an elephant, a frog or a goat will come out.
[[actualization]] [[order]] [[ontology]] [[hook ontology]]
[[HE31]]
“The [[chaos]] there is quite terrible”—he sees, or better, he projects what he sees onto something that he can deem to be a disorganization-structure. Another observer doesn’t get that; he does not “see” these [[order]]s and disorders, for the time being he does not have the metaphorical wit, the [[power]], to see these structures of [[relation]]s. That’s why I’m so proud that from the earliest days I proposed to measure [[organization]] by putting an [[observer]] there and instructing him: “Measure the structures of relations that you can recognize and order.” In [[information theory]] there is a lovely expression that is called [[redundancy]]: If right from the start I de- scribe one and the same object as so and so and so, then every further description becomes superfluous.
Redundancy represents a measure of order, and information theory has developed measured [[value]]s for redundancy. For this one must count the structures of relations. If their numbers increase then redundancy becomes greater, then order increases more and more. Order is perfect if I can use one proposition, one point, and through that all the rest of the structure is explained. With that I am also able to make perfect fore- casts. If I say, “That is a cubic structure,” then with the length of one side...
similar to his one essay
[[Shannon]]
[[HE33]]
[[order]] is a [[problem]] ofåç description. If we claim that this is better organized than that, then the descriptions must “show” this. In the initial discussions of [[problem]]s of [[self-organization]], [[description]]s weren’t touched on at all.
[[HE35]]
The [[information]] in a description depends on the [[observer]]’s ability to draw conclusions from this [[description]].
[[HE37]]
int: [[information]] in this sense is double-sided: It relates to a single [[description]] but also to the resource-language as a whole.
HF: Exactly. Those were also my short remarks on [[self-organization]]. And in my opinion the decisive step—the Löfgren step—consists of shifting the problem to description and [[language]]. The fun lies partly in the conse- quences of this step. People quarrel about the value of the order, blah- blah: “Tell me what language you’re using? This or that? Fortran? Or another computer language?” It immediately changes the situation. In my little paper “Disorder/Order—Discovery or Invention,” I have tried to describe this issue as clearly as possible In it I incorporated [[Lofgren]] as the key to this whole problematic.[[HE38]]
The question of the [[beginning]] is one of the fundamentally unanswerable, undecidable questions, and from the way it is answered all I can learn is to which cultural milieu, which [[language]] [[milieu]], which personal milieu, which belief milieu the person with whom I am discussing the [[question]] belongs. Having said that, it’s clear that I am speaking about myself and only about myself
I have decided to ask my friends how they see the beginning and to get to know how they react to this. I know it is an unanswerable question. I don’t need an answer. And so I ask my friends. And this is how they answer the question: “Who are you?” I move the creation-of-the-world question onto the who-are-you question, which is answered in the answering of the world-question
[[default]] [[default of origin]]
[[HExxi]]
I’ll introduce a new word; I won’t use [[complexity]] for [[order]]. I will use two [[expression]]s: one is order, the other complexity.
I see it like this: If something is [[organize]]d, it is therefore easier to move from one [[point]] in a system to another because I know that this point is there. If I know of this pen that—if I open it—I can write with it, then that’s an advantage over a situation in which I don’t know that. If an object is or- ganized so that it’s packed with [[redundancy]], it can have advantages. I know that if I pull here it will open. I know that if I write the letters will be black. All these things are because of a certain [[order]] that exists or, I should say, is known. This pen is ordered in the sense that I already know how it writes. Of course, that depends—this is [[Lofgren]]’s step—on my having a general knowledge of how one can describe a pen. If I could only describe it as a little rod, a black little rod, a straight little rod, and so forth, then I haven’t understood the possible uses of a pen at all.
[[HE39]]
Why the word “self”? There are two problems. One is called [[self-organization]]; the other is called [[organization]]. Organization lies in my being able to look at a thing and say, “I can go from there to there be- cause I know how I’m going; it fits the [[description]]s and the [[redundancy]].” The second [[problem]] consists of how the redundancy got there. What was the starting point for the uniformity that I now see in this organiza- tion? And then the question is, “Was there someone else at work? Has that someone hammered, nailed, and screwed this organization in with a screwdriver, hammer, and so on?” Then someone else would have organized it this way. Now I can pose the second question: “Those people with hammers and screwdrivers, were they also organized from the outside?” No, they had their buttered bread and their beer and banged and hammered and nailed this machine together. “Aha, these people there- fore make up a self-[[organizing]] system. There was no one from the out- side telling the men what to do; the only thing added was [[energy]], namely, buttered bread and beer and other things.” Only now does the world “self ” come in—[[self-organizing]] and self-organization.
One represents a [[process]], the other a description of a situation. So: process and situation, that’s what I distinguish between. Now, what can a process refer to? As soon as you say “self,” you’re dealing with a process; as soon as you say “organization,” you’re talking about a condition, or rather, the description of a [[condition]]. If you’re thinking, “If I see such and such, then it’s a self-organization,” you actually cannot say that yet. You don’t know from where this system has [[emerge]]d. Perhaps it’s a self-disorganizing system, so that unfortunately it only looks how it looks. I don’t know if I’ve made myself clear—I’m talking only about vocabulary, nothing but vocabulary.
[42]
How can one keep track of the differences between organization and self-organization?
I’m talking about two different problems. In one I’m talking about a condition, about something that is there. In the other I’m talking about a becoming, an emergence, a process. With a process, the word “time” comes in as well. In the other case the word “time” doesn’t come into it at all. As soon as I have the word “self-organizing,” I’m talking about how the process developed so that this organization emerged, regardless of whether it was produced from the outside or whether it was created through one—and only one—jolt of energy.
Perhaps we have to introduce the terms “auto-organization” and “hetero-organization.” In the case of hetero-organization, some mechanisms from the outside increase the redundancy of the system: If you screw in a screw, then these parts won’t fall apart anymore; if you ham- mer in a nail, it will hold together, and so on. Is this nail, is this screw brought into the system by someone outside the system? Or were the nail and the screw already there in the system? Did someone shake this sys- tem—so the screws screwed themselves in and the nails bored into the wood? In this case I would speak of “self” and also of auto-organization.
[[HE40]]
Let’s move on to the second big subject area. If one engages with a self- organizing system, then there are—as you pointed out—two principles for how [[self-organization]] comes about: “disturbance from outside” and “self-organization from within.” Could you say something about both of these principles of order?
I’ve made these remarks vis-à-vis other conclusions. They are therefore not out of context. The context comes from a splendid book by Erwin [[Schrodinger]], What Is Life? That book impresses me greatly because in it he lays out principles of [[order]] using clear steps, in which he distinguishes between statistical and natural-law structures. Among other things, he has introduced the idea that [[life]] and its dear [[complexity]] [[emerge]]s because order is imported from the environment into the system. The metaphor that Schrödinger uses is the “food-order” of the universe—and the an- swering question is, “How does one eat up order from the [[environment]]— and what kind of stomach does one need to digest order?”
This metaphor is outstanding, quite enlightening. You eat some spin- ach, for example, which already contains all sorts of things, you use them here or here or here to build [[molecule]]s—and already you have made your life much easier. What I stress in my definition of self- organization or organization is that it lies in the extant [[potential]] structures of relations. You have, as in the example of the [[hook]]s, a structure of [[relation]]s in which hooks connect to form a chain, that’s the simplest case. Now I’m going to connect the word “potential” to my structure— the physical expression “potential” refers to a possible action of to a pos- sible distribution of energy. I’ll bring this concept of potential into the inner structure, where I can speak of “potential structures of relations”— two hooks, three hooks, or much more complicated chains. Now I no longer need to import order from the outside; in the given case, my sys- tem does not have to take in more order from the outside.
Schrödinger’s image is a lovely metaphor—“Order from order”—order emerges from order. I, however, would say that it does not have to be that way. Order can emerge from disorder. And in engineering the expression for disorder is Rauschen in German and “[[noise]]” in English. I hope that it’s possible to see that I can also create order from disordered noise—noise also leads to energy. This principle is called “order from noise.” I’ve explained it further in an article, and this idea was seized on with great delight by many people.15 In the case of “order from noise,” I don’t have to import order so long as potentials and potential structures of relations exist in a system through which energy is flowing.
What would be some concrete examples for the metaphor of hooks—and their chain-formation?
Everything, everything, everything—we’re constantly finding these hooks. There’s a bowl in front of you; it’s a “preorganized” object with a specific structure. You throw cigarettes in there—and they stay mashed up together there. You could, of course, throw them somewhere else in- stead. But there’s this “key structure” here, which allows you to create a redundancy so that these cigarettes lie very close together. You could, of course, have thrown them all over the place so that no one would know how these butts were distributed. Through this ashtray a potential orga- nization exists that you are more or less happy to use so that disorder is not increased but rather decreased.
These hooks are found everywhere, everywhere, everywhere. This book here has a bookmark, which you use like a little hook because the pages prove “potentially turnable” and you can shove a little hook into them. Thus a “prestructure” exists that you can use to find the place again, which you would not have found so easily without your book- mark, without your prestructure. In the case of the bookmark and the book, the [[redundancy]] lies in your being able to dramatically reduce your search [[operation]] in this way. When you tag a page with a bookmark, with a little hook, you know you’ll “automatically” get the last page you read. There’s no need to leaf through the whole book, one page after another, because there’s this bookmark stuck in there: I know where I have to look
[[hook ontology]]
[[HE41/42]]
As soon as some realizable [[structure]]s exist, the [[system]] [[organize]]s itself, as long as there is no external “great organizer” keeping this structuring going
[[strata]] [[stratification]] [[self-organization]] [[emergence]] [[order]] [[abstract machine]]
[[HE43]]
My intention, on the other hand, was not to write so that it begins here and ends there, but rather so that the end here leads back to the beginning here— and the whole thing stays as a circularity of here.
In essence I always hoped: If I talk about [[life]], the life should become something that is describing, something that can describe itself
The moment I refer to [[second order]] [[problem]]s, I also point out that the [[world]], the [[description]]- world, changes as soon as I draw attention to the fact that we describe the world that we [[describe]].
[[circle]]
[[HE44]]
For the [[self-organization]] of living systems—and also for our conversation—it is vitally important that something new should [[emerge]] from time to time
[[life]]
[[HE46]]
That means that in the matter of [[beginning]]s, the unanswerable is a [[question]] of which [[game]] I should [[play]]
[[HE4]]
But it’s precisely this point, the [[semantic]] tentacles of expressions, even of apparently meaningless words, that is so essential for me. During conversation, a peculiar dynamic arises through these mutual tentacular linkages. It goes “boom,” the thing touches me; “Wow,” on the other side. . . . Many people manage to stun these pseudopods. Education, work, a trivialization of everyday language all play their part—and soon people just can’t turn somersaults in their own semantic spaces. My educational principle would be as follows: “Let them cut capers in these spaces so that they are constantly touching other [[relation]]s.”
[[hook ontology]] [[emergence]]
[[HE49]]
What can this proposition mean, from the hundreds of possibilities, that life writes its laws itself ?
For that I must return once more to this fascinating phenomenon of eigenvalues and [[eigen]]behaviors. What’s astonishing about it—since we are in the field of language—is that laws can be turned out in such a way that they write themselves and in the end we are able to talk about the [60] “laws of life.” Through such [[recursive]] operations it becomes possible for [[eigenbehavior]]s to peel themselves out of infinitely many possible repre- sentations. That means the problem of talking about life becomes an [[eigenproblem]]. But how can I find a proposition that finds itself? It is in precisely this form that I see the problematic of talking about life. And that’s the joke, saying that the laws of life, the laws of biology, must write themselves. Now of course the next question is, “How do you write such laws?” And, “How can you write them?” In this way we set off on the search for a description that describes itself. The problem of life does not primarily consist of fixing criteria for determining, “There is life, that is a living organization.” For me it is incomparably more urgent to find a description that finds itself, or a [[description]] that writes itself. And so not, “There is the law ABC,” but rather, “Here is the law that has set itself.” And if now I ought to conjure up this law—“Heinz, produce this life-law that writes itself”—then I answer, “I still haven’t found it.”
[[HE58]]
...negative numbers are no discovery; they’re pure invention. It’s a discovery if there are positive numbers: two times two is four. I didn’t know that before—but it was always already there. We want to discover: what is two times two? Hocus-pocus, I draw back the curtain and there stands four and not three. Three minus five I can’t [[discover]]. That’s not provided for within my [[rule]]s—therefore I must [[invent]] something. If the framework, the rules of the [[game]] are in place, then everything else is properly a discovery. But if I come across some- thing unsolvable and I still find a [[solution]], then it was just an [[invention]]
[[HE5]]
My invitation in the proposition “The laws of biology must write themselves” is, however, “Couldn’t we and shouldn’t we find an eigen[[description]] that is structured so that it describes itself ?” That is the [[eigen]]value [[problem]] of life.
[[HE59/60]]
At this point I did not yet possess a computer. At the time not everybody owned a little pocket calculator or a PC. I did these calculations with slide rule and fingers but didn’t get very far because the precision of the slide rule simply wasn’t sufficient. You could see out to the second decimal place but not the third. And suddenly I got my first calculator— that must have been 1968 or 1969—a Hewlett Packard, a tiny apparatus, a magical machine. I took this calculator and said, “Well, brilliant! Now I can write the program, ‘one, two, three,’ and now I can finally get the whole twenty or a hundred decimal places.” And actually, I got astonishing results; the [[recursion]]s converged. For the first time I saw the pheno- menon of “[[eigenbehavior]].” Then I came back to the great mathematical formulas of David Hilbert.3 If the derivation of a function results in this function again and one might say it describes itself—in 1895, Hilbert called that the [[eigen]]value of a function.
[[HE61]]
Expressed differently, one needn’t perform infinitely long calculations because the infinite calculations are represented through their [[eigen]]values. If one sees that, then of course it just gets more and more fun. Infinite [[recursion]]s are thus not unsolvable and the “end of history” as we believed earlier; [[infinite]] recursions lead to a stability or to several stabilities—that, of course, is earth-shaking.
What do such [[eigenoperation]]s mean, however they might be built? Perhaps that we shake hands with each other or that we say “Good morning” to each other? They mean that a stability has peeled itself out, because “Good morning” represents an equilibrium between the two of us. I say “Good morning”; you answer, “Good morning.” We both know what is meant by “Good morning.” Or, better yet: We don’t need to know what is meant by it. We know that “Good morning” functions like that. It creates itself. I came upon all these new phenomena through this little pocket calculator. I owe it the intuition of recursions. The physicist and mathematician Feigenbaum also describes a similar calculator expe- rience. With the program that he entered into his little calculator, he could suddenly gain insights that had previously been closed to him. The [[trivial]] calculators of those days proved to be invaluable teaching materials.
[[eigenbehavior]]s
[[HE64]]
[[recursive]] [[description]]s can be used in the whole casino of the world, from plants to animals and social [[behavior]]s right up to our conversation
[[Ashby]] is mentioned on this page.
[[eigen]]
[[HE65]]
We’re already much too far ahead. Let’s take a step back. First, we need to pose the [[question]], “Why can we use the word ‘plant’ at all? Why do you understand if I say ‘ierhg,’ not ‘hufg’ or ‘klar.txt’? There we’ve got the first problem. If we manage to come to terms with that, then the next one comes up at once: Why should I use precisely the expression ‘plants’? Why not ‘dance,’ ‘chance,’ ‘romance,’ or something similar?” There are cascades and cascades of problems that—and now [[recursive]] formalism gets into the game—come down to this: Whatever I claim, whatever emerges as stability in these speech-cascades—that “plants” means something to both of us so that we could both come up with a suitable example or point to a relevant object—that is based in our special social modes of behavior. In our social [[behavior]], the dialogic is organized as a recursive [[process]] in which we don’t know what we’re talking about as long as an eigenvalue or [[stability]] hasn’t emerged from this recursion and settled itself. Only after some time, when these stabilities have estab- lished themselves in a society, do we know what is meant by the funny sounds that produce the word “plant” and with which actions, operations, or doings they can be connected or woven. In our constant life- with-each-other, a [[recursivity]] of being-together emerges: A talks to B, B to A, A to C, C to B, D to A. In this recursivity a common [[language]] [[emerge]]s.
Then semantics owes itself to such recursive practices?
Yes.
Let’s talk once more about this recursive formalism and its characteristics. I think an important point for commentary is that by this time with regards to terminology there exist the most various expressions for these phenomena, coexisting peacefully, or less peacefully. One variant is “[[attractor]]s,” another is “states of [[equilibrium]].” Attractors take on different forms, point attractors, threshold cycles, turn themselves into strange attractors, and so on.6 Can you explain what in this area is equivalent to the terminology of eigenvalues?
For me, of course, it’s ridiculously funny that the people who are dealing with recursive functions, with eigenvalues, which have been called “[[eigen]]values” for a hundred years, have renamed them. I don’t know whether they have any idea that these games were already being played at the end of the nineteenth century...
[[HE66]]
Interestingly, this attractor-nomenclature is composed of strict anti-[[cybernetic]]ians. They held [[cybernetician]]s to be teleologists and alleged that they were always asking about the “where to,” about the “target.” That precisely these people let teleology in again through the back door in the form of “attractors” will always baffle me. I doubled up with laugh- ter: Now here comes the “chaos nomenclature” with an “[[attractor]]” that pulls—why not with a “pushor” that pushes? That would be the more correct formulation. Nothing is attracted or pulled; it’s constant pushing and shoving. But this is the material from which the paradoxical history of science will be built. I have, however, concluded: My young colleagues have reinvented what Mr. [[Koch]] had already seen in 1895. If one divides certain configurations over and over again, then something peculiar comes out of it.
[[hook ontology]]
[[eigen]]
[[recursion]]
[[eigenbehavior]]s
[[HE67]]
If we turn back to our [[recursion]]s, then there is a very interesting and important point: On one side there are [[operator]]s that [[diverge]], move apart, explode; on the other side are those that converge. Don’t [[converge]]nt operators have an [[evolution]]ary advantage over the divergent ones?
It’s not just an advantage. Divergent operators disappear; they cancel themselves out. This form simply cannot be sustained. They run for some time—till they vanish. Of course now one might think: Is the operator itself the result of a [[recursive]] meta-operation? And I claim that actually is the case. The stable operators, the stable [[eigen]]values are themselves [[eigenoperator]]s of greater “meta-operators,” and probably one could stop and dwell here on this second plane.
[eigenoperators-operators that are produced by/as Eigen?]
Main subject: “world as a casino.” If one takes a simple calculator, there are two points of interaction concerning this game with the world; the first lies between the input—what comes into the machine from outside—and its inner conditions, and the second between the internal conditions and the output.
[[HE68]]
This idea of maximizations, minimizations, and optimizations of [[system]]s is a way of thinking that is constructed differently from the building-blocks form. Here building blocks do not appear.
What I’m saying with this is that there are forms of thinking that don’t require the concept of building blocks. If, however, you are in the business of small and smallest building blocks, then you are constantly searching for new tiny building blocks, even tinier building blocks, the tiniest of tiny building blocks
[[cybernetic]]s [[order]] [[self-organization]] [[order]] key concept up above for [[von Foerster]]
[[HE6]]
Assuming that right now we’re not interested in how something like that comes to be, rather we’re just saying, “Good, I believe you, Heinz, I believe you, Karl, I believe you, Albert, that one can invent something that can [[draw]] such [[distinction]]s.” We’re postulating the existence of such a great [[distinguish]]er—and we’re able to begin speaking about a [[unit]] and its surroundings. But we’re also put in a position to pose further [[question]]s: “What are the interplays like between this unit and its surroundings?” If I want to write or say something about that then it turns out like this: We’re not confronted with the operation of distinguishing but rather with the results of the operation of distinguishing. That means what I want to direct attention toward is the issue that it is not the distinction itself but always the result of a distinction, that which I at first, rather unfortunately, called a “[[representation]]"
[[writing]]
[distinguish representation from distinction]
[[HE69]]
This game plan leads directly to today’s quote from the Foersterian fundus: “([[Movement]]) → (Change in sensation), but not necessarily, (Change in [[sensation]]) → (Movement).”12 The big sheet that says “World” also makes it possible for us not to have to visit Florida; we could also stay here and now . . [[motorium]] [[sensorium]] [[world]]
[[HE71]]
With [[nontrivial]] [[learn]]ing and teaching tools an ingenious idea comes to my aid: Let us, [[machine]] and man, form an informative as well as operational closed system so that the machine and I are moving in the same area. And suddenly we’re able to start moving into an [[eigenbehavior]], into [[eigen]]values that are also so kind as to remain stable. The conse- quences for our machine learning are naturally enormous. With [[nontrivial]] machines you should say to your son, “Dear boy, if you want to find out how the machine works, then you’ll have to study from the beginning to the end of the universe. And when the end of the world comes, you still won’t have found the solution. Enjoy the possession of this machine; play with it as long as you have it.” You yourself know only that if this machine gets into a circle it will stay in this circle. That is the only thing that you can know about this machine. If it gets into the [[circle]]—seven, three, one, four—seven, three, one, four—then you can impress your boy: “Now it’s on seven, just watch, the next number will be three, beep, three appears.” And if the little one stubbornly keeps asking, “But Daddy, why?” then you’ll give him a smack.
[[closure]]
[[HE73]]
The fundamental theorem of the composition of [[nontrivial]] [[machine]]s shows: A [[composition]] of nontrivial machines is to be treated as a non- trivial machine. You can thus sit down at any point in the network of nontrivial machines, cut through it, anchor yourself into this net and can treat the whole system as a single nontrivial system. Of course, these kinds of ensembles become complicated, more complicated, and yet more complicated, but that doesn’t mean that it becomes more difficult for you to figure out its way of moving. It will be as difficult—or impossible—for you as in the case of elementary systems. It’s just that the assessments in the area of circularities won’t be so easy to make any longer—seven, three, one, four—seven, three, one, four. In such configurations, so many addi- tional factors play a role
[[HE75]]
Therein lies a second area that we briefly touched on earlier. Let’s take an [[operator]] that sets certain actions, and let’s imagine that it is also an operator that is kind enough to produce [[eigen]]values and therefore runs into one or more [[stable]] [[mode]]s of [[behavior]]. The [[question]] then is, “Where does this operator come from?” Could we think up something whereby this operator itself becomes the result of a recursive meta-[[operator]]?
And indeed—and therein lies an important suggestion of mine to all psycho-, physio-, and socio-therapists—it’s not just about eigenvalues; [[function]]s can also be brought into consideration. How should we under- stand that an operator represents an eigenoperator and that its results are subject to another higher operation? Well, the mathematical theory that lies at the bottom of this issue is called “functional calculus.” The problems that one wants to solve lie in the functions, and the [[unit]]s being sought are called [[functor]]s. A functor calculates functions or changes them. For example, one could explain to mathematically educated people: So-called differential calculus is a functor. Why? It assigns a certain func- tion, let’s say y = x2, a second function that comes from the differentia- tion of x2. And one learns nicely at school: A derivation can be written in form dx2/dx; its result is 2x; you just need to take the two from its posi- tion as an exponent and turn it into a coefficient. The differential opera- tor transforms the function xn to nxn−1. The classification of these two functions xn and nxn−1 is called a functor, and in our particular example this functor is just called the differential operator. One could, of course, imagine functors with much simpler dispositions—for example, the functor that multiplies by two. Here we’re dealing with a functor into which one can stick any function, and on the other side out comes the same function—multiplied by two.
[[HE75/76]]
I recommend the following strategy for the study of those [[function]]s with which we’re currently dealing: “Let’s study the qualities of [[functor]]s, since they are the results of that which we see happening before us.” In one case I operate with a function, and its results lead to stable [[eigen]]values; in another case a functor operates on a certain function, and the results represent [[eigenfunction]]s. In this manner, one transfers the problem into those areas, [[psychology]], sociology—the social sciences— that in my opinion oppose it at first. One needn’t always think about [[number]]s or functions. One can also talk about [[language]]; we can consider [[semantic]] [[operator]]s; we can understand semantics as a functor that after a fashion establishes [[stable]] functions of reactions in us; and so on. For me as a describer, this means that I can talk about a semantic struc- ture as if it were a functor that calculates, works out, and develops its operative [[stable]] functions and produces them through [[recursive]] func- tions so that I can reliably treat certain statements, claims, poems, and the like as stable functions. Thus, it doesn’t move on the comparatively lower level of eigenvalues or eigenstatements or eigenwords, but on the next-higher level of eigenfunctions, eigeninterpretations, eigenrepresentations, eigenpresentations.
[[collective assemblage]]s and [[machinic assemblage]]s as [[functor]]s attempting to calculate eigenfunctions? these then produce (perhaps [[individuate]] is a better word than produce?) eigenvalues?
And this game may be played out even further with the construction kits?
The question is: “Do we need higher levels?” And I suspect that we don’t need such things. I think that the functors can be positioned so that it is as if they produced themselves. I would like to develop this point some- what more closely: For at this point the self-organization possesses the possibility of postulating an ensemble of self-operative functors because both the level of operative possibilities is so high and their richness is so great. In my little paper on the epistemology of living things, I have, by the way, already pointed out such a possibility.
[[HE76]]
int: If we’re dealing with elementary [[form]]s of [[movement]], then we must touch on a further point. In order to get these apparatuses that we find in our game box moving at all, we require [[energy]].
HF: If we’re conducting these abstract discussions with units or systems or [[machine]]s, then it is always already going to be the result of, as we emphasized yesterday, a “[[self-organization]].” And that is only possible if [[energy]] [78] is already existent—otherwise nothing at all would happen: “Nothing comes from nothing,” that’s the first thermodynamic principle for our game box. Only the flow of energy allows the [[emergence]] of such units. And if this energy is pumped through the system, then very early on the possibility emerges for a system to change its surface. If the [[surface]] changes, then movement emerges. And on the basis of this abstract idea—movement corresponds to a change in the surface of a system— one can now actually take big jumps, little jumps, turn around in a [[circle]], and so on. I will first take—so that you’ll see why one should be care- ful—a big jump. If you remember the “[[Epistemology of Living Things]],” then a crucial point in that was that the change in the surface of a system first takes place linguistically as a change in the [[description]] of what has happened to a system.
[[example]] follows
[[HE77]]
It represented such a surprising insight for me when [[Piaget]] stressed that children control their [[reality]] by constantly [[play]]ing with objects, and the objects with which they busy themselves change and keep moving. Suddenly I noticed the many linguistic meta- phors like “to grasp,” “to catch on,” “to get it,” and all kinds of others. [[comprehension]] is also a [[motor]] activity—in French comprendre, in Latin comprehendere. Clearly [[language]] is whispering to us, “If you want to grasp something, then you’ve got to grasp it!” That is also expressed in the word “object.” An object is something that “objects” to me; I cannot make a movement, a [[gesture]] because something “objects” to me, and this obstacle is called an “object.” These verbal hints and clues that lan- guage constantly and freely suggests are, however, for the most part overlooked, but for the first time Piaget brought me up against it: “Heinz, ‘grasp,’ ‘catch on,’ ‘get it,’ ‘object,’ ‘get a handle on it,’ do you understand that?” And I understood.
That fits with a Foersterian proposition: Movement → Change in sensation. [[motorium]] [[sensorium]]
Yes, yes, exactly. I’ve asked myself how such insights could be deepened and generalized. And when I wrote my “[[Epistemology of Living Things]],” then I saw for the first time an analogy between movement and [[logic]].
[[HE77/78]]
[[Konorski]] and the [[Pavlov]] [[experiment]]
[[HE79]]
In all these lovely scientific tales there is quite a good dose of mythology, so we might imagine our case as fol- lows: [[Poincare]] began to shaking his head over how anyone could fall for such a contradictory theory. And as he moved his head rapidly back and forth, he suddenly saw that his pictures were immediately changing: “Aha, I have to change my [[perception]], then I can conclude from the change in perception of what I’ve just seen because then I’m sure that I’m seeing the same thing, just from another angle!”
Poincaré introduced this new idea, namely the change in perception through body [[movement]] and with it created a “depth sense” from motoric movements. If I change the surface of a body, the consequences of this changing for the [[surface]] of my [[body]] and the change in [[perception]]s connected with it allow me to reach conclusions about the three- dimensional arrangements of my surroundings. This insight, that the [[motorium]], as I call it, feeds back into the [[sensorium]] and that the inter- pretation of the sensorium by the motorium interprets the movement of the motorium, leads to a cycle of mutual interpretation of the activity of the sensorium and the motorium—and to a unified representation of [[perception]]. We achieve the integration of perception through the moto- rium and the unification of movement through perception—and the importance of this double [[coupling]] is brought to bear most beautifully by [[Piaget]]. In this sense movement is a prerequisite for perception—and perception a prerequisite for movement. The two are so intensively cou- pled to one another that if you cut the two cycles only blindness and stiffness remain.
[[HE80/81]]
...one can generally conclude, “A [[nontrivial]] [[machine]] can change its [[operation]]s internally so that its [[drift]] results in an [[extension]] of [[diversity]].”
[[HE82]]
[[cognition]] → [[compute]]ing a [[reality]]
In our fourth conversation, new possibilities should arise for us, of distinctions, possibilities of orientation, of remembering—and of forgetting. So far we have been operating with something that we could call an “MS system.” In our game box we found recursively coupled [[motorium]]-[[sensorium]] systems, MS systems. A fur- ther type in the box is the MBS system—a [[brain]] interpolates itself between the motorium and the sensorium . . .
[[HE86]]
Again, it comes back to how you, as a human being, want to represent things, in order to make something of yourself or the world or others. And that is left up to each of us, each in our own way. The anthropic principle cannot be proven because it is always already proven, we hu- mans are already here
[[HE7]]
Everything that I explain now about [[cognition]], [[motor]] and [[sensory]] functions, the [[brain]] and nerves, is already anticipated because we not only possess the aforementioned abilities but have also learned to work with them successfully.
I repeat Wittgenstein: “What is a question?” “What is language?” If you ask, then you already know how [[language]] operates. How can you ask me? You know it, I know it, you can do it, I can do it. But if I can do something, I still don’t know how I can do it. If I have before me a [[nontrivial]] system in equilibrium, with an [[eigen]]value, I can only say, “This eigenvalue has developed itself—who knows why.”
I would even say, “If you use the [[world]] perspective, then it’s about the [[problem]] of perspective, about the [[perspective]] of perspective—the perspective puts itself in perspective, as it were.” Because my hobbyhorse, the eigenbehaviors of closed systems, the operations of which we can- not, however, identify, also gets into the game. We can only identify that there are [[eigenbehavior]]s and stabilities, that I can say the word “per- spective” and others know what I’m talking about. I also see our conversation as a kind of research-support program, much as you, Albert, have also seen it.
[[HE89]]
We encounter the same illogic or defective logic in the case of memory. It starts with the seductive [[language]] that invites us to separate functions that, operatively, can- not be separated at all. We speak of “[[memory]]”—and already one thinks, “There must be a warehouse in which all the contents of memory are stored in chronological or alphabetical order.” Or we read about “depth psychology,” ah, under the surface there must be a “secret safe” in the depths that would reveal all our secrets if only we drill deep enough and are able to open it. Language invites us, in a very charming, seductive manner, to draw distinctions that, in conversation, are understood very well—“He doesn’t look deep enough,” “This person has a good mem- ory,” “It seems that he’s lost his memory!” But it proves nonsensical and misleading to identify specific containers or areas of the brain that create exactly these functions.
I reach for a simple image: If I’m wearing a knitted cardigan and I tear off the woolen thread at one point, the whole cardigan suddenly unravels. Now we could say: “At this point, where the tear is, lies the essence of the cardigan.” And because it is localized there, the whole cardigan disap- pears if I destroy this piece. What has then fallen out of sight is the net- work of threads, the “cardigan net.” In a cardigan net in which one thread is connected with another, this kind of unraveling can come from a single point; destruction could always take place from any point. That does not lead, however, to the reversal-conclusion that the point of the cut was the place where a certain function, which now no longer exists, sat and could be localized. The system doesn’t work anymore because damages at one point can spread to the whole.
[[theme]] [[HE91]]
I would say that the assumption of a fixed and localized [[circuit]] [[diagram]] is very easy—too easy for interpreting the present problematic. Strictly speaking, nothing is interpreted here; one says, “Ah, A is connected to B.” The laziness that one allows oneself in order to maintain these [[relation]]s becomes dangerous the moment I start to deal with holistic [[problem]]s— [[sight]], [[memory]], [[learn]]ing. And if I start to take an interest in the question, “What are the forms in which we can say something about the [[brain]]?” then I must completely give up these one-to-one correlations of “[[tissue]]” and “[[function]].” Because they immediately lead me away from any more comprehensive understanding.
Warren [[McCulloch]] once wrote a splendid and well-known article, “Why the Mind is in the Head.” Thinkers with a stronger systemic interest, such as [[Maturana]], [[Varela]], and others whom I know very well— including Heinz [[von Foerster]], whom I know less well—see it differently. Maturana once discussed the negation of McCulloch’s proposition, “Why the Mind is Not in the Head.” With it he wanted to show that [[cognition]] is not [[organize]]d in such a brain- or head-oriented way. If one isolates the brain from the muscles, cuts through the spine, then one very easily gets into a problematic landscape, in which “outputs” and “inputs” dominate and beautiful [[recursion]]s have once again vanished.
[[HE92/93]]
int:This dynamic [[network]] perspective seems to me to be central as a holistic motivator, especially concerning the [[recursive]] integration of the [[brain]], [[motor]] [95] and [[sensory]] functions. It would have important consequences if we learned to consider the processes at the S-end, such as [[vision]], as a process of recombination between brain activity, the senses, and motor functions
HF: Here again we find an importance in the argument against “portrayals,” because obviously this phenomenon can’t have anything to do with portrayals. It has to do with our [[sensorium]] beginning with a certain stimulation on the [[surface]] of the [[body]]—and not ending there. And this is why I find this experiment important—it represents a kind of entree into the problem of [[cognition]] and the question of [[perception]]. If we could manage to leave the idea of portrayals to the photographers right from the start, then I’d invite the reader or partner in conversation to think, “Then what’s actually happening if I don’t portray, if the idea of portrayals no longer works? How must we then talk about [[cognition]], about [[perception]], about [[sensation]], and so on?”—And with this we have catapulted ourselves into a situation in which we have to press forward to new [[concept]]s.
My suspicions go even further: As soon as I carry out these separations and localizations and anchor the idea of the portrayal, more and more apparently “objective” problems arise as a result . . .
[[HE94]]
I also see a form-problem in our conversation if you ask me, “How do ‘[[sensorium]]-[[brain]]-[[motorium]]’ develop?” “What distinguishes ‘SBM systems’ from ‘SM ensembles’?” and more of the same. With this you set a form of conversation and form of answer within which I should move and stay.
[[HE94/95]]
But the brain came into being because, among other things, the routes between sensorium and motorium—using the metaphor of telephone systems—bit by bit built up a control center.
This intervention of a B in your MS-world, it appeared very early on in evolution. I already explained about the elementary multicellular ensembles that functioned like [[trivial]] machines. Our descriptions of cause and effect work best with them, if at all; with them, one could say that cause and effect are localizable. But bit by bit the [[motor]] and the [[sensory]] elements became distanced from each other, they grew apart from each other in space. At first it was always the same channels or neurons that established the transitions between motor and sensory functions. But over time the distance became too great, so an [[intermediate]] element stepped in. In physiology this is called internuntius or internuntii, inter- mediate messenger and messengers, respectively. And this intermediary suddenly transformed this trivial system or this ensemble that could be described as trivial into a completely and totally [[nontrivial]] system. And it’s probably for this reason that the internuntius built itself up incredibly quickly in evolution. The internuntius was, if you like, the first calculator in the long history of our world. With it, a yes or no, a calculation, a working out suddenly becomes possible—and the whole system becomes nontrivial. The moment a successful cascade or dynamic between senses[99]internuntius-motor functions develops, a system becomes no longer ex- plicable from the outside. That is, unless science manages to so reduce the complexity of the internuntius so that the entire ensemble becomes a trivial system again and regresses. Naturally, that can be done, one cuts its strings, one takes away the connections, one dopes it with strychnine, and so forth. The result then works wonderfully: The system has be- come trivial—and I can publish all kinds of clever things about the by now broken system.
[[interneuron]] [[neuron]] [[motorium]] [[sensorium]] [[brain]] [[evolution]]
[[HE96]]
!Get help
*Here is a [[Stroll layout cheat sheet]].<br><br>
*https://tiddlywiki.com/#Working%20with%20TiddlyWiki will help you learn more about ~TiddlyWiki<br><br>
*[[This link|https://tiddlywiki.com/#Formatting%20in%20WikiText]] will show you basic wikitext formatting.<br><br>
*The ~TiddlyWiki [[Google group|https://groups.google.com/forum/#!forum/tiddlywiki]] has many knowledgeable people who can help you with problems. Add the word Stroll and I should see it the same day or next day, unless I am traveling. <br><br> //''Note:'' I will try to help you if you run into a problem. But I will probably not take up your suggestions to change Stroll more to your liking. <span class="red">Please do NOT ask us to help you with questions about ~TiddlyMap.</span> There are too many incompatibilities between ~TiddlyMap and Stroll. ~TiddlyWiki is infinitely customizable, and there are also numerous plugins you can add, found at the [[TiddlyWiki toolmap|https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM]].//<br>
!Acknowledgements
Stroll was made with the help of many people:
*[[Anne-Laure Le Cunff|https://twitter.com/anthilemoon]]'s enthusiasm for (and promotion of) ~TiddlyBlink was a big inspiration behind the changes in Stroll
*[[Saq Imtiaz|https://twitter.com/saqimtiaz]] custom-made his Stories plugin for Stroll, and made many recommendations for Stroll.
*Stroll also uses plugins from [[danielo515|http://contextplugin.tiddlyspot.com/]], [[flibbles|https://flibbles.github.io/tw5-relink/]], and [[snowgoon88|http://snowgoon88.github.io/TW5-extendedit/#About%20the%20Edit-CompText%20plugin]].
*Many people at the [[TiddlyWiki Google group|https://groups.google.com/forum/#!forum/tiddlywiki]] made great recommendations regarding the form and functionality of Stroll.
*And of course, [[Jeremy Ruston|https://twitter.com/Jermolene]] is the creator of ~TiddlyWiki, the platform Stroll is built on.
Thank you to all of you!
Stroll is a free gift to you. The time I was able to put into creating it was made possible by my employer, //Resonate Global Mission.//
If you find Stroll helpful, ''please consider a donation toward our support with Resonate''. [[(Link)|https://www.resonateglobalmission.org/support/our-missionaries/david-and-blanca-gifford]]
(We aren't allowed to promote any projects outside our Resonate budget, but family and friends have asked that I make my Kindle wish list available. If a donation to a Christian mission organization is not your thing, you could show your support of Stroll by getting me a book. [[here|https://www.amazon.com/hz/wishlist/ls/1OTJM9IE7SPVS/ref=nav_wishlist_lists_1?_encoding=UTF8&type=wishlist]].)
If you want to more about us, see our own website, https://giffmex.org.
Blessings,
//''Dave Gifford''//
As a speaker, you learn from the listener’s reaction to what you had said.
I have only my [[interpretation]] of the listener’s reaction, not his reaction. I have no idea how he has reacted. I only see how I believe he has reacted. I would claim that misunderstandings, so-called misunderstandings, do not exist. There is only one understanding, namely, how I understood it. But maybe it is not what my counterpart had hoped I would understand. Then it is not a misunderstanding on my part. It’s not as if I can misguess something. All that I have are his [[sign]]s and what I have just heard.
xxi
I expect that the [[other]]—because this is the game—will try to make something of it. That is why we [[play]] [[language]]. And that whatever one meant doesn’t actually exist at all. The [[game]] of language consists of both parties having the in- tention of making something, inventing something, constructing some- thing out of the grunts and sibilants that the other produces. Now both are designers, making something of the [[utterance]]s of the other
[[The Beginning of Heaven and Earth has No Name]]
All continuations of a [[course of action]] suppose a [[discontinuity]] that must be overcome in order to define a [[trajectory]]. It is this discontinuity, and the fact of getting over it, that we call a hiatus, or [[gap]], [[threshold]] or [[break]] - the actual term is unimportant. This term belongs to the [[metalanguage]] of the investigation and allows for a definition of the mini-transcendence required for any definition of the [[being-as-other]].
- 2 -
Etymology: to open wide; hiare; in the grammatical sense: a discordance between two vowels.
- 3 -
The idea of a fundamental [[continuity]] of phenomena from which the human mind introduces discontinuities inhabits Western human thought from the beginning of empiricism through to structuralism and cognitive science. No longer able to identify the multiple hiatuses of action, philosophical thinking, once bifurcated, takes itself for the only possible source of discontinuities, boundaries, barriers, typologies, categories and is immensely proud (and saddened sometimes too, as in Bergson) by this ability to discredit. AIME reverses this in its entirety because, what is surprising, precisely, is that we are able to smooth out, to polish any continuity based on the starting point of a universe that is itself discontinuous in nature.
- 4 -
The discovery of each [[mode]] of existence is made by the definition of its own [[hiatus]] against the idea of continuity (an impression permitted by [[HAB]] but which is itself a very particular kind of hiatus, that of a vigilant habit ready to regain control via invention).
- 5 -
The hiatus for AIME is that which replaces the great [[transcendence]]-[[immanence]] debate. There is, evidently, no immanence since the feint discontinuity of the hiatus always remains but neither is there (bad) transcendence in the sense of another world separate from the continuity established by leaping over the hiatus, i.e. the continuity solution particular to each enunciation.
- 6 -
A sensitive ear hears the hiatus of each mode (in the grammatical sense: a discordant continuity between two vowels) and reintroduces the hiatus (in the etymological sense) i.e. the gap, the continuity solution, the consonant, the link that restores the quality of the enunciation. Paradoxically, then, [[connection]]s, and [[mediation]]s of consonants, are necessary so that the word's continuity does not seem discordant and charged with unbearable hiatuses ...
- 7 -
It is this hiatus that is registered and misunderstood in theories of [[sign]] and [[meaning]], when one distinguishes the being, assumed to be meaningless, and the sign, which is put in the place of something else. On the contrary, it is the hiatus that allows us to search for that which is put in the place of something else, as in the case of [[REP,]] in order to maintain a being in existence.
[[higher-order respondent conditioning]]
• Establishing a conditioned stimulus
• by pairing a neutral stimulus
• with an already established conditioned stimulus
<br>Try it out on <span class="blue">[[Muffin!]]</span>
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
The Case Against the Trauma Plot
Fiction writers love it. Filmmakers can’t resist it. But does this trope deepen characters, or flatten them into a set of symptoms?
By Parul SehgalDecember 27, 2021
women sitting on a chair in front of a beach looking at a page from a book
Trauma has become synonymous with backstory; the present must give way to the past, where all mysteries can be solved.Illustration by Aldo Jarillo
It was on a train journey, from Richmond to Waterloo, that Virginia Woolf encountered the weeping woman. A pinched little thing, with her silent tears, she had no way of knowing that she was about to be enlisted into an argument about the fate of fiction. Woolf summoned her in the 1924 essay “Mr. Bennett and Mrs. Brown,” writing that “all novels begin with an old lady in the corner opposite”—a character who awakens the imagination. Unless the English novel recalled that fact, Woolf thought, the form would be finished. Plot and originality count for crumbs if a writer cannot bring the unhappy lady to life. And here Woolf, almost helplessly, began to spin a story herself—the cottage that the old lady kept, decorated with sea urchins, her way of picking her meals off a saucer—alighting on details of odd, dark density to convey something of this woman’s essence.
Those details: the sea urchins, that saucer, that slant of personality. To conjure them, Woolf said, a writer draws from her temperament, her time, her country. An English novelist would portray the woman as an eccentric, warty and beribboned. A Russian would turn her into an untethered soul wandering the street, “asking of life some tremendous question.”
How might today’s novelists depict Woolf’s Mrs. Brown? Who is our representative character? We’d meet her, I imagine, in profile or bare outline. Self-entranced, withholding, giving off a fragrance of unspecified damage. Stalled, confusing to others, prone to sudden silences and jumpy responsiveness. Something gnaws at her, keeps her solitary and opaque, until there’s a sudden rip in her composure and her history comes spilling out, in confession or in flashback.
Dress this story up or down: on the page and on the screen, one plot—the trauma plot—has arrived to rule them all. Unlike the marriage plot, the trauma plot does not direct our curiosity toward the future (Will they or won’t they?) but back into the past (What happened to her?). “For the eyeing of my scars, there is a charge,” Sylvia Plath wrote in “Lady Lazarus.” “A very large charge.” Now such exposure comes cheap. Frame it within a bad romance between two characters and their discordant baggage. Nest it in an epic of diaspora; reënvision the Western, or the novel of passing. Fill it with ghosts. Tell it in a modernist sensory rush with the punctuation falling away. Set it among nine perfect strangers. In fiction, our protagonist will often go unnamed; on television, the character may be known as Ted Lasso, Wanda Maximoff, Claire Underwood, Fleabag. Classics are retrofitted according to the model. Two modern adaptations of Henry James’s “The Turn of the Screw” add a rape to the governess’s past. In “Anne with an E,” the Netflix reboot of “Anne of Green Gables,” the title character is given a history of violent abuse, which she relives in jittery flashbacks. In Hogarth Press’s novelized updates of Shakespeare’s plays, Jo Nesbø, Howard Jacobson, Jeanette Winterson, and others accessorize Macbeth and company with the requisite devastating backstories.
The prevalence of the trauma plot cannot come as a surprise at a time when the notion of trauma has proved all-engulfing. Its customary clinical incarnation, P.T.S.D., is the fourth most commonly diagnosed psychiatric disorder in America, and one with a vast remit. Defined by the DSM-III, in 1980, as an event “outside the range of usual human experience,” trauma now encompasses “anything the body perceives as too much, too fast, or too soon,” the psychotherapist Resmaa Menakem tells us in “My Grandmother’s Hands: Racialized Trauma and the Pathway to Mending Our Hearts and Bodies” (2017). The expanded definition has allowed many more people to receive care but has also stretched the concept so far that some 636,120 possible symptom combinations can be attributed to P.T.S.D., meaning that 636,120 people could conceivably have a unique set of symptoms and the same diagnosis. The ambiguity is moral as well as medical: a soldier who commits war crimes can share the diagnosis with his victims, Ruth Leys notes in “Trauma: A Genealogy” (2000). Today, with the term having grown even more elastic, this same diagnosis can apply to a journalist who reported on that atrocity, to descendants of the victims, and even to a historian studying the event a century later, who may be a casualty of “vicarious trauma.”
How to account for trauma’s creep? Take your corners. Modern life is inherently traumatic. No, we’re just better at spotting it, having become more attentive to human suffering in all its gradations. Unless we’re worse at it—more prone to perceive everything as injury. In a world infatuated with victimhood, has trauma emerged as a passport to status—our red badge of courage? The question itself might offend: perhaps it’s grotesque to argue about the symbolic value attributed to suffering when so little restitution or remedy is available. So many laborious debates, all set aside when it’s time to be entertained. We settle in for more episodes of Marvel superheroes brooding brawnily over daddy issues, more sagas of enigmatic, obscurely injured literary heroines.
It was not war or sexual violence that brought the idea of traumatic memory to light but the English railways, some six decades before Woolf chugged along from Richmond to Waterloo. In the eighteen-sixties, the physician John Eric Erichsen identified a group of symptoms in some victims of railway accidents—though apparently uninjured, they later reported confusion, hearing voices, and paralysis. He termed it “railway spine.” Sigmund Freud and Pierre Janet went on to argue that the mind itself could be wounded. In the trenches of the Great War, railway spine was reborn as shell shock, incarnated in the figure of the suicidal veteran Septimus Smith, in Woolf’s “Mrs. Dalloway.” What remained unaltered was the scorn that accompanied diagnosis; shell-shocked soldiers were sometimes labelled “moral invalids” and court-martialled. In the decades that followed, the study of trauma slipped into “periods of oblivion,” as the psychiatrist Judith Herman has written. It wasn’t until the Vietnam War that the aftershocks of combat trauma were “rediscovered.” P.T.S.D. was identified, and, with the political organizing of women’s groups, the diagnosis was extended to victims of rape and sexual abuse. In the nineteen-nineties, trauma theory as a cultural field of inquiry—pioneered by the literary critic Cathy Caruth—described an experience that overwhelms the mind, fragments the memory, and elicits repetitive behaviors and hallucinations. In the popular realm, such ideas were given a scientific imprimatur by Bessel van der Kolk’s “The Body Keeps the Score” (2014), which argues that traumatic memories are physiologically distinctive and inscribe themselves on an older, more primal part of the brain.
“I don’t eat candy from animal piñatas.”
Cartoon by José Arroyo
“If Greeks invented tragedy, the Romans the epistle and the Renaissance the sonnet,” Elie Wiesel wrote, “our generation invented a new literature, that of testimony.” The enshrinement of testimony in all its guises—in memoirs, confessional poetry, survivor narratives, talk shows—elevated trauma from a sign of moral defect to a source of moral authority, even a kind of expertise. In the past couple of decades, a fresh wave of writing about the subject has emerged, with best-selling novels and memoirs of every disposition: the caustic (Edward St. Aubyn’s Patrick Melrose novels), the sentimental (Jonathan Safran Foer’s “Extremely Loud & Incredibly Close”), the enraptured (Leslie Jamison’s essay collection “The Empathy Exams”), the breathtakingly candid (the anonymously written memoir “Incest Diary”), or all of the above (Karl Ove Knausgaard’s six-volume “My Struggle”). Internet writing mills offered a hundred and fifty dollars a confession. “It was 2015, and everyone was a pop-culture critic, writing from the seat of experience,” Larissa Pham recalls in a recent essay collection, “Pop Song.” “The dominant mode by which a young, hungry writer could enter the conversation was by deciding which of her traumas she could monetize . . . be it anorexia, depression, casual racism, or perhaps a sadness like mine, which blended all three.” “The Body Keeps the Score” has remained planted on the Times best-seller list for nearly three years.
Trauma came to be accepted as a totalizing identity. Its status has been little affected by the robust debates within trauma theory or, for that matter, by critics who argue that the evidence of van der Kolk’s theory of traumatic memory remains weak, and his claims uncorroborated by empirical studies (even his own). Lines from a Terrance Hayes sonnet come to mind: “I thought we might sing, / Of the wire wound round the wound of feeling.” That wire around the wound might be trauma’s cultural script, a concept that bites into the flesh so deeply it is difficult to see its historical contingency. The claim that trauma’s imprint is a timeless feature of our species, that it etches itself on the human brain in a distinct way, ignores how trauma has been evolving since the days of railway spine; traumatic flashbacks were reported only after the invention of film. Are the words that come to our lips when we speak of our suffering ever purely our own?
Trauma theory finds its exemplary novelistic incarnation in Hanya Yanagihara’s “A Little Life” (2015), which centers on one of the most accursed characters to ever darken a page. Jude, evidently named for the patron saint of lost causes, was abandoned as an infant. He endures—among other horrors—rape by priests; forced prostitution as a boy; torture and attempted murder by a man who kidnaps him; battery and attempted murder by a lover; the amputation of both legs. He is a man of ambiguous race, without desires, near-mute where his history is concerned—“post-sexual, post-racial, post-identity, post-past,” a friend teases him. “The post-man, Jude the Postman.” The reader completes the list: Jude the Post-Traumatic.
Trauma trumps all other identities, evacuates personality, remakes it in its own image. The story is built on the care and service that Jude elicits from a circle of supporters who fight to protect him from his self-destructive ways; truly, there are newborns envious of the devotion he inspires. The loyalty can be mystifying for the reader, who is conscripted to join in, as a witness to Jude’s unending mortifications. Can we so easily invest in this walking chalk outline, this vivified DSM entry? With the trauma plot, the logic goes: Evoke the wound and we will believe that a body, a person, has borne it.
Such belief can be difficult to sustain. The invocation of trauma promises access to some well-guarded bloody chamber; increasingly, though, we feel as if we have entered a rather generic motel room, with all the signs of heavy turnover. The second-season revelation of Ted Lasso’s childhood trauma only reduces him; his peculiar, almost sinister buoyancy is revealed to be merely a coping mechanism. He opens up about his past to his therapist just as another character does to her mother—their scenes are intercut—and it happens that both of their traumatic incidents occurred on the same day. The braided revelations make familiar points about fathers (fallible), secrecy (bad), and banked resentments (also bad), but mostly expose the creakiness of a plot mechanism. As audiences grow inured, one trauma may not suffice. We must rival Job, rival Jude. In “WandaVision,” our protagonist weathers the murder of her parents, the murder of her twin, and the death, by her own hands, of her beloved, who is then resurrected and killed again. All that, and a subplot with a ticking time bomb.
Trauma has become synonymous with backstory, but the tyranny of backstory is itself a relatively recent phenomenon—one that, like any successful convention, has a way of skirting our notice. Personality was not always rendered as the pencil-rubbing of personal history. Jane Austen’s characters are not pierced by sudden memories; they do not work to fill in the gaps of partial, haunting recollections. A curtain hangs over childhood, Nicholas Dames writes in “Amnesiac Selves” (2001), describing a tradition of “pleasurable forgetting,” in which characters import only those details from the past which can serve them (and, implicitly, the narrative) in the present. The same holds for Dorothea Brooke, for Isabel Archer, for Mrs. Ramsay. Certainly the filmmakers of classical Hollywood cinema were quite able to bring characters to life without portentous flashbacks to formative torments. In contrast, characters are now created in order to be dispatched into the past, to truffle for trauma.
Jason Mott’s “Hell of a Book,” which received the 2021 National Book Award for fiction, begins with a slow pan across the figure of a woman sitting on a porch in an old, faded dress: “The threads around the hem lost their grip on things. They broke apart and reached their dangling necks in every direction that might take them away. And now, after seven years of hard work, the dress looked as though it would not be able to hold its fraying fabric together much longer.” It is tempting to read this as a description of the trauma plot itself, threadbare and barely hanging on, never more so than in Mott’s novel. The narrator, a wildly successfully novelist on book tour, finds himself followed by an apparition, who represents both a young Black boy killed by police and a child who witnesses police shoot and kill his own father. But the rangy, sorrowing themes that Mott wants to explore are subsumed by an array of cheap effects, coy hints of buried trauma in the narrator’s own past: amnesiac episodes, hammy Freudian slips, a therapist’s sage but unappreciated insights. Once brought to light, this trauma feels oddly disengaged from the story at hand, as tangentially connected as those two entwined strands in “Ted Lasso,” signalling to the same vague homilies (grief haunts, trauma catches up with you) and unnecessary to Mott’s more powerful points about police violence as a form of terrorism and the painful perpetual mourning it inspires. Mott uses all the possible cranks and levers of the trauma plot, as if imagining a wire of suspense drawing us in. But the machinery is nothing so fine; it chews up his story instead.
I hear grumbling. Isn’t it unfair to blame trauma narratives for portraying what trauma does: annihilate the self, freeze the imagination, force stasis and repetition? It’s true that our experiences and our cultural scripts can’t be neatly divided; we will interpret one through the other. And yet survivor narratives and research suggest greater diversity than our script allows. Even as the definition of what constitutes P.T.S.D. has grown more jumbled—“the junk drawer of disconnected symptoms,” David J. Morris calls it in “The Evil Hours: A Biography of Post-Traumatic Stress Disorder” (2015)—the notion of what it entails, the sentence it imposes, appears to have grown narrower and more unyielding. The afterword to a recent manual, “Stories Are What Save Us: A Survivor’s Guide to Writing About Trauma,” advises, “Don’t bother trying to rid yourself of trauma altogether. Forget about happy endings. You will lose. Escaping trauma isn’t unlike trying to swim out of a riptide.”
To question the role of trauma, we are warned, is to oppress: it is “often nothing but a resistance to movements for social justice,” Melissa Febos writes in her forthcoming book, “Body Work: The Radical Power of Personal Narrative.” Those who look askance at trauma memoirs, she says, are replicating the “classic role of perpetrator: to deny, discredit and dismiss victims in order to avoid being implicated or losing power.” Trauma survivors and researchers who have testified about experiences or presented evidence that clashes with the preferred narrative often find their own stories denied and dismissed. In the nineties, the psychologist Susan A. Clancy conducted a study of adults who had been sexually abused as children. They described the grievous long-term suffering and harm of P.T.S.D., but, to her surprise, many said that the actual incidents of abuse were not themselves traumatic, characterized by force or fear—if only because so many subjects were too young to fully understand what was happening and because the abuse was disguised as affection, as a game. The anguish came later, with the realization of what had occurred. Merely for presenting these findings, Clancy was labelled an ally of pedophilia, a trauma denialist. During treatment for P.T.S.D. after serving as a war correspondent in Iraq, David Morris was discouraged from asking if his experience might yield any form of wisdom. Clinicians admonished him, he says, “for straying from the strictures of the therapeutic regime.” He was left wondering how the medicalization of trauma prevents veterans from expressing their moral outrage at war, siphoning it, instead, into a set of symptoms to be managed.
And never mind pesky findings that the vast majority of people recover well from traumatic events and that post-traumatic growth is far more common than post-traumatic stress. In a recent Harper’s essay, the novelist Will Self suggests that the biggest beneficiaries of the trauma model are trauma theorists themselves, who are granted a kind of tenure, entrusted with a lifetime’s work of “witnessing” and interpreting. George A. Bonanno, the director of Columbia’s Loss, Trauma, and Emotion Lab and the author of “The End of Trauma,” has a blunter assessment: “People don’t seem to want to let go of the idea that everybody’s traumatized.”
When Virginia Woolf wrote about her own experience of sexual abuse as a child, she settled on a wary description of herself as “the person to whom things happen.” The mask of trauma does not always neatly fit the face. In “Maus,” Art Spiegelman strives to understand his overbearing father, a Holocaust survivor. “I used to think the war made him that way,” he says. His stepmother, Mala, replies, “Fah! I went through the camp. All our friends went through the camps. Nobody is like him!” Mala won’t cede her knowledge of her husband or of life to the coercive tidiness of the trauma plot. There are other doubting Malas. I start seeing them everywhere, even lurking inside the conventional trauma story with designs of their own, unravelling it from within.
Stories rebel against the constriction of the trauma plot with skepticism, comedy, critique, fantasy, and a prickly awareness of the genre and audience expectations. In the Netflix series “Feel Good,” the protagonist, Mae, a comedian dealing with an addiction and disorienting flashbacks, struggles to fit their muddled feelings about their past into any straightforward diagnosis or treatment plan. (“People are obsessed with trauma these days,” Mae says ruefully. “It’s like a buzzword.”) The protagonist of Michaela Coel’s “I May Destroy You,” learning that she has been drugged and sexually assaulted, also finds the ready-made therapeutic scripts wanting; some of the show’s most interesting strands follow the ways that focussing on painful histories can make us myopic to the suffering of others. Conversations about trauma in Anthony Veasna So’s “Afterparties” are seasoned with exasperation, teasing, fatigue. “You gotta stop using the genocide to win arguments,” Cambodian American children tell their refugee parents.
“So the Scharfs have an atoll. Big deal.”
Cartoon by Joe Dator
The appetite for stories about Black trauma is skewered in Uwem Akpan’s “New York, My Village” and Raven Leilani’s “Luster.” Scanning the season’s “diversity giveaway” books, Leilani’s Edie, one of the only Black employees at a publishing house, sees “a slave narrative about a mixed-race house girl fighting for a piece of her father’s estate; a slave narrative about a runaway’s friendship with the white schoolteacher who selflessly teaches her how to read; a slave narrative about a tragic mulatto who raises the dead with her magic chitlin pies; a domestic drama about a Black maid who, like Schrödinger’s cat, is both alive and dead.”
The FX series “Reservation Dogs,” set in Oklahoma’s Indian country, draws attention to, and shirks, the expectation that Indigenous stories be tethered to trauma. A sixteen-year-old named Bear and his friends are accosted by members of a rival gang, who pull up in a car and start firing. Bear’s body shudders with the impact, flails, and falls, with agonizing slowness. He is brought down—in a hail of paintballs. It’s a fine parody of “Platoon,” of the killing of Willem Dafoe’s Sergeant Elias. If it isn’t enough to play on one classic narrative of trauma, Bear then has a vision of a Native warrior on horseback, ambling through the mist. “I was at the Battle of Little Bighorn,” the warrior says, as if prepared to give Bear a speech on adversity and heroism. Then he clarifies: “I didn’t kill anybody, but I fought bravely.” He clarifies again: “Well, I actually didn’t get into the fight itself, but I came over that hill, real rugged-like.” Humor protects genuine feeling from sentimental traditions that have left the specificity of Native experience flattened and forgotten. Bear and his friends, we learn, are reeling from the suicide of a member of their group. They face all the present-day difficulties of life on the reservation, but mourning is not the only way they are known to themselves, or to us. They’re teen-agers, and announce themselves in the time-honored ways—their taste, their terrible schemes, their ferocious loyalty to one another.
My trauma, I’ve heard it said, with an odd note of caress and behind it something steely, protective. (Is it a dark little joke of Yanagihara’s that Jude is discovered reading Freud’s “On Narcissism”?) It often yields a story that can be easily diagrammed, a self that can be easily diagnosed. But in deft hands the trauma plot is taken only as a beginning—with a middle and an end to be sought elsewhere. With a wider aperture, we move out of the therapeutic register and into a generational, social, and political one. It becomes a portal into history and into a common language. “Stammering, injured, babbling—the language of pain, the pain we share with others,” Cristina Garza has written in “Grieving,” her book on femicide in Mexico. “Where suffering lies, so, too, does the political imperative to say, You pain me, I suffer with you.” That treatment of history feels influenced and irrigated by the novels of Toni Morrison, who envisaged her work as filling in the omissions and erasures of the archives, and by Saidiya Hartman, who espouses writing history as a form of care for the dead. Think of the historian-protagonists in Honorée Fanonne Jeffers’s “The Love Songs of W. E. B. Du Bois” and in Yaa Gyasi’s “Homegoing.” In these novels, my trauma becomes but one rung of a ladder. Climb it; what else will you see? In “Homegoing,” Marcus, a graduate student, is writing about his great-grandfather’s time as a leased convict in post-Reconstruction Alabama. To explain it, he realizes, he must bring in Jim Crow, but how can he discuss Jim Crow without bringing in the stories of his family fleeing it, in the Great Migration, and their experiences in the cities of the North, and the “war on drugs”—and then? I recall an image from Faulkner’s “Absalom, Absalom!”: of two pools, connected by a “narrow umbilical water-cord,” one fed by another. A pebble is dropped into one. Ripples stir the surface, and then the other pool—the pool that never felt the pebble—starts moving to its rhythm.
And what water-cord connects us to Woolf’s weeping lady, on whom once hung the fate of the English novel—the woman surrounded by her sea urchins, perched on the edges of her chair, still wearing her coat, scraping her dinner off a saucer? Why are those sea urchins so pleasing to think about, so mysterious yet telling? I wouldn’t trade a single one for a passel of awful secrets from the lady’s past. It’s the sort of detail that stokes the curiosity so crucial to reading—not narrative hunger but the sort of drifting, almost unconscious nourishment we get from looking at strangers, from piecing something together, from knowing and not knowing.
The experience of uncertainty and partial knowledge is one of the great, unheralded pleasures of fiction. Why does Hedda Gabler haunt us? Who does Jean Brodie think she is? What does Sula Peace want? Sula’s early life is thick with incidents, any one of which could plausibly provide the wound around which personality, as understood by the trauma plot, might scab—witnessing a small boy drown, witnessing her mother burn to death. But she is not their sum; from her first proper appearance in the novel, with an act of sudden, spectacular violence of her own, she has an open destiny. Where the trauma plot presents us with locks and keys, Morrison does not even bother to tell us what happens to Sula in the decade she disappears from town, and from the novel. Sula doesn’t exist for our approval or judgment, and, in her self-possession, is instead rewarded with something better: our rapt fascination with her style, her silences and refusals. Stephen Greenblatt has used the term “strategic opacity” to describe Shakespeare’s excision of causal explanation to create a more complex character. Shakespeare’s source texts for “King Lear” and “Hamlet” include neatly legible motivations; lopping them off from the story releases an energy obstructed by the conventional explanation.
That energy isn’t just released by the play. It is the audience’s own, the force of our imagination rushing to fill the gap. In “Mr. Bennett and Mrs. Brown,” Woolf describes the impulse to imagine the private lives of others as the art of the young—a matter of survival—and of the novelist, who never tires of this work, who sees an old woman crying in a railway car and begins to imagine her inner life. But it is the province of the reader as well. Looking again at the description I gave of the old woman, I realize that the coat is my addition. Envisioning the scene, I have somehow placed on her shoulders a coat that I used to own, deeply unprepossessing, much missed—old armor. I am confused and stirred to find it here. Stories are full of our fingerprints and our old coats; we co-create them. Hence, perhaps, that feeling of deflation at the heavily determined backstory, that feeling of our own redundancy, the squandering of our intuition.
The trauma plot flattens, distorts, reduces character to symptom, and, in turn, instructs and insists upon its moral authority. The solace of its simplicity comes at no little cost. It disregards what we know and asks that we forget it, too—forget about the pleasures of not knowing, about the unscripted dimensions of suffering, about the odd angularities of personality, and, above all, about the allure and necessity of a well-placed sea urchin. ♦
[[A Thousand Plateaus]]
FN 24 p228 "I refer to a [[society]] as [[hyperindustrial]] when everything in it has become [[subject]] to [[model]]ling and [[industrial]] activity-distribution, health, leisure, education, and so on-a [[point of survey]] that is obviously a complete break with the myth of 'post-industrial society.'
In contemporary society, all [[form]]s of [[knowledge]] have been weakened, if not annihilated. Savoir-[[faire]] (skills, know-how) has all but disappeared, and savoir-[[vivre]] (knowledge of how to [[live]], manners, ettiquette, and so on) has been dissolved into the [[behavior]]al [[standard]]ization imposed by [[consumer]]ism.
[[SOS p20-1]]
That which is acted on... will be called the [[operand]], the factor will be called the [[operator]], and what the operand is changed to will be called the [[transform]]. The change that occurs [x->y] is the [[transition]]. The transition is specified by the two [[state]]s and the indication of which is changed to which...
Experience has shown that if the concept of "change" is to be useful it must be enlarged to the case where the operator can act on more than one operand, inducing a characteristic change in each. Thus the operator "exposure to sunshine" will induce a number of transitions... such a set of transitions, on a set of operands, is a [[transformation]].
[[An Introduction to Cybernetics]]
...the [[transformation]] is defined, not by any reference to what it "really" is, nor be reference to any physical cause of the change, but by the giving of a set of [[operand]]s and a statement of what each is changed to. The transformation is concerned with what happens, not with why it happens. Similarly, though we may sometimes know something of the operator as a thing in itself... this knowledge is often not essential; what we must know is how it acts on the operands; that is, we must know the [[transformation]] that it effects.
[[closure]]. When an [[operator]] acts on a set of operands it may happen that the set of transforms obtained contains no element that is not already present in the set of operands, i.e. the transformation creates no new elements... when this occurs, the set of operands is closed under the transformation. The property of "closure" is a relation between a transformation and a particular set of operands; if either is altered the closure may alter.
...the test for closure is made, not by reference to whatever may be the cause of the transformation but by reference of the details of the transformation itself. It can therefore be applied even when we know nothing of the [[cause]] responsible for the changes.
[[IC10]]
a [[transformation]] is [[single-value]]d if it converts each [[operand]] to only one [[transform]].
...[ a special set of single-value cases] is that which is [[one-one]]. In this case the transforms are all different from one another. Thus not only does each operand give a unique transform (from the single-valuedness) but each transform indicates (inversely) a unique operand.
[[IC11]]
[[many-one]] [this is when many operands are operated on and the resultant transform is the same. 3,4,5,6,red,one all lead to 1, for instance].
The [[identical]] transformation, in which no change occurs... [[identity]].
representation by [[matrix]] is introduced.
[[IC14]]
repeated [[transformation]]s are discussed, called [[power]]s. Interesting is example on 17, where a closed system has a state that leads from B, but nothing that leads to B.
17 top para describes issues in unclosed transformations that lead nowhere. notation at bottom of page is reminiscent of [[von Foerster]]'s [[recursive]] math
[[IC15]]
[[kinematic graph]] and [[representative]] point are introduced
[[IC16]]
A [[determinate machine]] is defined as that which behaves in the same way as does a [[close]]d [[single-value]]d [[transformation]].
It should be noted that the definition refers to a way of behaving, not to a material thing. We are concerned in this book with those aspects of systems that are [[determinate]]-that follow regular and reproducible courses. It is the determinateness that we shall study, not the material substance.
[[IC20/21]]
By a [[state]] of the system is meant any well-defined [[condition]] or property that can be recognized if it occurs again. Every system will naturally have many possible states.
Clearly, the [[operand]]s of the system correspond to the states of the system. The series of the positions taken by the system in [[time]] clearly correspond to the series of elements generated baby the successive [[power]]s of [[transformation]]. Such a sequence of states defines a [[trajectory]] or a [[line of behavior]]
[[IC24]]
...the "[[operator]]" is often poorly defined and somewhat arbitrary-a concept of little scientific use. The [[transformation]], however, is perfectly well defined, for it refers only to the facts of the [[change]]s, not to more or less hypothetical reasons for them.
[[IC25]]
[[summary]]
To summarize: Every [[machine]] or dynamic system has many distinguishable [[state]]s. If it is a [[determinate machine]], fixing its circumstances and the state it is at will determine i.e. make unique the state it next moves to. These [[transition]]s of state correspond to those of a [[transformation]] on [[operand]]s, each state corresponding to a particular operand. Each state that the machine next moves to corresponds to that operand's transform. The successive [[power]]s of the transformation correspond, in the machine, to allowing double, treble, et.c, the unit [[time]]-interval to elapse before recording the next state. And since a determinate machine cannot go into two states at once, the corresponding transformation must be [[single-value]]d.
[[IC26]]
Thus, the [[transformation]] that represents a [[machine]] must be [[close]]d [[closure]]
[[IC27]]
If a particular [[machine]] and a particular [[kinematic graph]] show full correspondence it will be found that
(1) each possible [[state]] of the machine corresponds uniquely to a particular element in the graph, and vice versa. The correspondence is [[one-one]].
(2) Each succession of states that the machine passes through because of its inner dynamic nature corresponds to an unbroken chain of arrows through the corresponding elements
(3) If the machine goes to a state and stays there (a state of [[equilibrium]]) the element that corresponds to the state will have no arrow leaving it (or a re-entrant one)
(4) If the machine passes into a regularly recurring cycle of states, the graph will show a circuit of arrows passing through the corresponding elements.
(5) the stopping of a machine by the experimenter, and its restarting from some new, arbitrarily selected, state corresponds, in the graph, to a movement of the [[representative]] point from one element to another when the movement is due to the arbitrary action of the mathematician and not an arrow
When a real machine and a [[transformation]] are so related, the transformation is the [[canonical representation]] of the machine, and the machine is said to [[embody]] the transformation.
[[IC28]]
...[[state]]s of this type are particularly common in biological systems, where, for instance, characteristic postures or expressions or [[pattern]]s can be recognized with confidence though no analysis of their components has been made... The early sections of this chapter will have made clear that a theory of such unanalyzed [[state]]s can be rigorous.
[[IC29]]
Two [[vector]]s [a state with a definite number of [[component]]s, such as coordinates on a 2D plane] are considered [[equal]] only if [32] the one is equal to the corresponding components of the other.
When such a vector is [[transform]]ed, the [[operation]] is in now way different from any other [[transformation]], provided we remember that the [[operand]] is the vector as a whole, not the individual components (though how they are to change is, of course, an essential part of the transformations [[definition]].)
[[IC30]]
...listing the [[variable]]s that are to be taken into account. The [[system]] now means... a [[list]] of variables.
(Sometimes what is wanted is that certain [[probability]]s shale [[single-value]]d...)
[[IC32]]
Remember that for [[Bateson]], ideas are what obtain inside of a [[closed system]]. see [[MN10]]
[[Idea]]s are not an obj ect or referent thought by the faculties, but
are instead the very process the [[faculty]]es undergo in being [[problematize]]d.
[[DG148]]
[[Idea]]s... as regulative
principles organizing our knowledge.
[[DG164]]
what Ideas define
is an ideal [[topology]]cal or [[differential]] [[essence]] characterizing a [[field]] of
[[variation]]s or [[permutation]]s. In other words, there is no Idea of redness
or squareness, but rather redness and squareness are permutations be
longing to an Idea.
[[DG203]]
The world is an immeasurable potential for surprises; it is virtual information, needing, however, systems to produce information, or in more precise terms, to give selected irritations the sense of information. All identity must accordingly be understood as the result of information processing or, if relating to the future, as a problem. Identities do not "exist," they merely have the function of ordering recursions so that in processing meaning, we an draw on and anticipate something that can be used recurrently. This requires [20] selective condensation and, at the same time, confirmatory generalization of something that can be called the same as distinguished from other. [[TS19]]
Self-[[identity]] requires
that every entity have one conjoined, self-consistent function, whatever be
the complexity of that function. [[P57]]
Know the [[individual]] through [[individuation]] rather than individuation starting from the individual 3
superior/inferior magnitude, bottom p6
[[transindividual]] p11
...fundamental [[notion]]s of [[first information]], [[metastability]], internal [[resonance]], energetic [[potential]], and [[order]]s of [[magnitude]] are substituted for the notions of substance, form, and matter. p12
FN p384: internal resonance is the most primitive mode of [[communication]] between realities of different orders; it contains a twofold process of [[amplify]]cation and [[condensation]].
t[[transduction]] p13-16
individuation is not a synthesis or a return to unity but the [[phase]]-shift of the being based on its [[pre-individual]] center of potentialized incompatibility. From this ontogenetic perspective, [[time]] itself is considered as an [[expression]] of the dimensionality of the being that is individuating. 15
...time is a [[solution]], a dimension of
information is never a single term but the signification that emerges from a disparatiuon the discovered systematic: time emerges from the pre-individual just like the other dimensions according to which individuation effectuates itself. 16
Information is never a single term but the signification that emerges from a disparation 16
information vs form p16
we... cannot have an immediate knowledge or a mediated knowledge of individuation, but we can have a knowledge that is an operation parallel to the operation known; we cannot know individuation in the ordinary sense of the term; we can only individuate, be individuated, and individuate within ourselves... the individuation of beings can only be grasped thorugh the individuation of the subject's knowledge
[[individuation in light of notions of form and information]]
This study is founded on the following [[concept]]ion of [[being]]: being does not have a [[unity]] of [[identity]], which is that of a [[stable]] [[state]] wherein no [[transformation]] is [[possible]]; being has a [[transductive]] unity, i.e. it can [[phase-shift]] with respect to itself, it can [[overflow]] itself on both [[side]]s from its [[center]]. [Jack note: are these sides the [[disparate]] orders that spawn [[information]] and [[signification]]? I think yes] What is taken as a [[relation]] or [[dual]]ity of [[principle]]s is in fact this overflowing expanse of a being, insofar as a being is more than unity and more than identity; [[becoming]] is a [[dimension]] of a being, not what comes to it according to a succession undergone by an initially given and substantial being.
[[IFI p11/12-1]]
...a veritable [[relation]] between two terms is in fact equivalent to a [[rapport]] among three terms... [[individuation]] requires a true relation, a relation that can only be given in a [[system]] [[state]] that [[envelop]]s a [[potential]]. 57
[[IFI Form matter III 2]]
[[information]], understood as the arrival of a [[singularity]] that creates a [[communication]] between [[order]]s of [reality]]...
[[IFI ch2 I 1]]
matter as [[communicating]] through [[force]]s that act on one another.
Each [[point]] has as many chances as all the others; the [[matter]] about to take [[form]] is in a [[state]] of complete [[internal]] [[resonance]]; what occurs at one point reverberates within all the others, the [[becoming]] od each [[molecule]] reverberates within all the others at all points and in all [[direction]]s; the matters elements are neither isolated from one another nor hetergoeneous relative to one another; all heterogeneity is a condition of the non-[[transmission]] of [[force]]s and therefor a condition of itnernal non-resonance]]. 28
Internal resonance is a system state that requires the realization of energetic dconditions, topological conditions, and material conditions; resonance is an [[exchange]] of energies and movements in a determined enclosure, a communication between a microphysical matter and a macrophysical energy based on a [[singularity]] whose [[dimension]] is intermediate and topologically defined.
[[IF Intro]]
[[implicit]] [[form]] of the tree p37
[[abstract machine]] and how it grasps forms/implicit forms, and how they differ based off different[abstract?] machines p38
FN 11 p384 This implicit form, which is an [[expreesion]] of the old [[singularity]]s of the growth of the tree... becomes [[information]] when it guids anew [[operation]]
[[IFI form matter 1]]
...the existence of a [[middle]] and intermediate zone... (the zone of [[singularity]]s that are the initiators of the individual in the operation of [[individuation]])... it is at this level that the principle of individuation is the initiator of the operation of individuation...
[individuation] is indissociable from an aspect of the [[object]] that it considers... as the only one possessing a [[signification]]... what does not conform to the [[real]] is the exclusion of other [[point of view]]s within which one could be placed to find other aspects of individuation. This is the unique and exclusive attribution of the principle of individuation to a given type of [[reality]], which is [[subjective]]. 47
The veritable [[individual]] is one that conserves its system of [[individuation]] with it, thereby [[amplify]]ing [[singularity]]s. The principle of individuation is in this energetic system of internal [[resonance]]... 49
But the energetic system in which an individual is constituted is neither more intrinsic nor extrinsic to this individual: it is associated with this individual, it is this individual's [[associated milieu]]. Through its energetic conditions of existence, the individual does not exist merely within its own [[limit]]s; it [[emerge]]s from a singularity... what is truly and essentially the individual is the active relation, the exchange between the [[extrinsic]] and [[intrinsic]]; there is ext and int relative to what is first. What is first is this system of internal singular resonance, this system of the [[allagmatic]] relation between tw orders of magnitude.... [the] milieu should not be conceived as a new term that would be added onto [[matter]]: the milieu is the very activity of relation, the reality of the relation between two orders that communicate across a singularity.
[the individual is not a term it] is a [[theater]] and [[agent]] of a relation; the individual can only be a term in an ancillary way because it is essentially a theater or agent of an interactive communication. [it is a RELATION not a TERM that enters a relation]
One must find the [[point of view]] from which the individual can be grasped as an activity of [[relation]]... it is the being of relation and not a bing in relation, for relation is an [[intense]] [[operation]], and active center.
[[IFI form matter II 1]]
...the principle of [[individuation]]... is the complete system in which the [[genesis]] of the individual takes place; that, moreover, tis system outlasts itself within the living individual as a [[milieu]] associated with the individual in which individuation continues to take place; an d that life is therefore an ongoing [[individuation]]... continued thorugh [[time]], extending a [[singularity]]... The notion of system is necessary to define the energetic conditions, for a [[potential]] energy only exists relative to the [[possible]] [[transformation]]s in a defined system. The [[limit]]s of this system are not arbitrarily selected by the knowledge that the subject gains from them: these llmits exist relative to the system itself.
...we shall represent [individuation] as a splitting, a resolution, a non-symmetrcal [[distribution]] occurring in a totality based on a [[singularity]]. 51
The individual cannot account for itself on the basis of itself, because it is not the beings hole to the extent that it is the [[expression]] of a [[resolution]]. It is simply the complementary symbol of another real, ie the [[associated milieu]]
[[sign]] and [[symbol]]
The method employed consists in not being given beforehand the realized individual that must be explained but in grasping the complete [[reality]] before individuation... the individuated individual is not a complete reality, and individuation is not explainable by means of the mere elements that the analysis of the individual after individuation can discover. The role of the energetic condition (the condition of the state of the constituting system) cannot be grasped in the constituted individual. 52
...at the very least, it is through the intermediary of this [[associated milieu]] that the being is connected back to what is larger than it and to what is smaller than it. 53
[[IFI Form Matter III 1]]
what we call individual in biology is really something like a sub-[[individual]] much more so than an individual; in biology it seems that the notion of individuality is applicable to several [[stage]]s or according to different levels of successive inclusion. 168
...the unit of life would be the complete organized group and not the individual
[[IFI ch3]]
...[[relation]], to the [[world]] and to the [[collective]], is a [[dimension]] of [[individuation]] in which the [[individual]] participates based on [[pre-individual]] [[real]]ity, which progressively individuates,
[[IFI p9-1]]
The [[notion]] of the [[transindividual]] corresponds to the [[collective]] taken as the [[axiom]]atic that resolves the [[psychic]]al [[problematic]].
Such a set of reforms of notions is supported by the hypothesis that an [[information]] is never [[relative]] to a single and homogeneous [[real]]ity but to two [[order]]s in a state of [[disparate]]ion: information, whether this be at the level of tropistic unity or at the [[level]] of the [[transindividual]], is never deposited in a [[form]] that is able to be [[given]]; it is the [[tension]] between two disparate reals, it is the [[signification]] that will [[emerge]] when an [[operation]] of [[individuation]] will discover the [[dimension]] according to which two disparate reals can [[become]] a [[system]]; information is there for an [[initiation]] of individuation, a requirement for individuation, for the [[passage]] from the [[metastable]] to the [[stable]], it is never given thing; there is no unity and identity of information, for information is not a [[term]]; it supposes the [[tension]] of a system of being in order for it to be adequately received; it can only be inherent to a problematic; information is that through which the non-resolved system's incompatibility becomes an [[organize]]ational dimension in the [[resolution]]; information supposes a [[phase]] change of a system for it supposes first a [[pre-individual]] state that individuates according to the discovered organization; information is the formula of individuation, a formula that cannot exist before this individuation; we could say that information is always in the [[present]], [[actual]], for it is the [[direction]] according to which a system individuates.
[[IFI p10-1]]
[[individuation]] must be grasped as the being's [[becoming]] and not as a [[model]] of the [[being]] that would exhaust its [[signification]]. The individuated being is neither the whole being nor the first being; instead of grasping individuation on the basis of the individuated [[being]], the individuated being must be grasped on the basis of individuation and individuation on the basis of [[pre-individual]] being, which is [[distribute]]d according to several [[order]]s of [[magnitude]].
[[IFI 12-1]]
...every veritable relation as having the [[status]] of being. Relation is a [[mode]]ality of being, it is simultaneous with respect to the [[term]]s whose existence it guarantees. A [[relation]] must be grasped as a relation in [[being]], a relation of being, a manner of being, and not a simple rapport between two terms that could be adequately known via [[concept]]s because they would have an effectively prior, separate existence.
[[IFI p12-2]]
By [[transduction]] we men a [[physical]], [[biological]], [[mental]], or [[social]] [[operation]] through which an activity [[propagate]]s incrementally within a domain by basing this propagation on a [[structuration]] of the [[domain]] operated from one [[region]] to another: each structural region serves as a [[principle]] and a [[model]], as an initiator for constituting the following region, such that a [[mode]]fication thereby extends progressively throughout this structuring operation...
There is a [[transduction]] when there is an activity that starts from a being's structural and [[function]]al center and extends in various [[direction]]s based on its center, as if multiple [[dimension]]s of the being appeared around this [[center]]; transduction is the correlative appearance of dimensions and [[structure]]s within a being in a state of [[pre-individual]] [[tension]], i.e. in a being which is more than [[unity]] and more than [[identity]] and which has not yet [[phase-shift]]ed with respect to itself in multiple dimensions. The [[extreme]] terms attained by the [[transductive]] [[operation]] do not exist before this operation...
[transduction] applies to [[ontogenesis]] and is ontogenesis itself... it makes it possible to understand the [[system]]atic [[condition]]s of [[individuation]], [[internal resonance]], and the [[psychic]]al [[problematic]].
Footnote: [[internal resonance]] is the most [[primitive]] [[mode]] of [[communication]] between [[reality]]s of different [[order]]s; it contains a twofold [[process]] of [[amplify]]cation and [[condensation]]
[[IFI p12-3]]
...[[individuation]] is not a [[synthesis]] or a return to [[unity]] but the [[phase-shift]] of the [[being]] based on its [[pre-individual]] [[center]] of [[potential]]ized [[incompatible]]ity. From this [[ontogenetic]] [[perspective]], [[time]] itself is considered as an [[expression]] of the [[dimension]]ality of the being that is individuating.
[[IFI p13/14-1]]
[[time]] [[emerge]]s from the [[pre-individual]] just like the other [[dimension]]s according to which [[individuation]] [[effectuate]]s itself...
[[information]] is never a single [[term]] but the [[signification]] that emerges from a [[disparate]]ion
[[IFI p15-1]]
...[[psychic]]al [[life]] is therefore neither a prompting nor a higher rearrangement of the vital [[function]]s that continue to exist under it and with it, but a new plunge into the [[pre-individual]] [[real]]ity followed by a more [[primitive]] [[individuation]]. [[between]] the life og the living being and the [[psyche]], there is the [[interval]] of a new individuation...
[[IFI p51-1]]
[[psychic]]al [[life]] goes from the [[pre-individual]] to the [[collective]]... The psychical being, i.e.e the [[being]] that achieves as completely as [[possible]] the [[function]]s of [[individuation]] by not [[limit]]ing individuation to this first stage of the [[vital]], resolves the [[disparate]]ion of its internal [[problematic]] to the extent that it participates in the individuation of the [[collective]]. This collective, which is a [[transindividual]] [[real]]ity obtained by the individuation of the pre-individual realities associated with a plurality of living beings, is distinguished from the pure [[social]] and the pure [[inter-individual]]; the pure social indeed exists in animal societies; in order to exist, it does not require a new individuation that expands upon vital individuation; it [[express]]es the manner in which living beings exist in society; the vital unity is literally what is directly social; [[information]] that is attached to social [[structure]]s and [[function]]s... is lacking in individuated [[organism]]s qua organisms.
This society supposes as a [[condition]] of existence the structural and functional heterogeneity of different individuals in society. On the contrary, the transindividual collective [[group]]s together homogeneous individuals; even if these individuals present some heterogeneity, its only to the extent that they have a basic homogeneity that they are grouped together as a collectivity and not insofar as they are complementary with respect to one another in a superior functional unity, Society and transindividuality can also exist by being [[superpose]]d in the group, just as the vital and psychical are superposed in individual life. The collective is distinguished from the inter-individual insofar as the inter-individual does not necessitate a new individuation in the individuals in which it is established, but merely a certain [[regime]] of reciprocity and exchanges that suppose analogies between intra-individual structures without challenging individual problematics... inter-individuality is an [[exchange]] between individuated realities that remain in their same level of individuation and that seek in other individuals an [[image]] of their own existence parallel to this existence.
[[IFI p177-1]]
We would like to show that it is necessary to reverse the search for the [[principle]] of [[individuation]] by considering the [[operation]] of individuation as [[primordial]], on the basis of which the [[individual]] comes to exist and the [[unfold]]ing [[regime]]s and [[mode]]alities of which the [[individual]] [[reflect]]s in its [[characteristic]]s. The individual would then be grasped as a [[relative]] [[real]]ity, a certain [[phase]] of being which supposes a [[pre-individual]] reality prior to it and which, even after individuation, does not fully exist by itself, for individuation does not exhaust in a single stroke the [[potential]]s of pre-individual reality, and moreover, what individuation [[manifest]]s is not merely the individual but the individual-[[milieu]] [[coupling]]. The individual is therefor relative in two [[sense]]s: because it is not the entire being, and because it results from a [[state]] of the being in which it neither existed as individual nor as a principle of individuation.
Footnote: Furthermore, the milieu may not be simple, homogeneous or uniform, but it can originally by suffused by a [[tension]] between two [[extreme]] [[order]]s of [[magnitude]] that the individual [[mediate]]s when it comes to be.
[[individuation in light of notions of form and information]]
[[individuation]] is thus considered [[ontogenetic]] only insofar as it is an [[operation]] of the complete [[being]]. Individuation must then be considered as a [[partial]] and [[relative]] [[resolution]] that [[manifest]]s in a [[system]] which contains [[potential]]s and includes a certain incompatibility with respect to itself, an incompatibility that consists of [[force]]s of [[tension]] and the impossibility of an [[interaction]] between the extreme [[term]]s of the [[dimension]]s.
without the tension+incompatibility, would the [[individual]] melt into the [[milieu]], or really, not even go through [[ontogenesis]] in the first place, simply being a part of the milieu?
[[IFI p3-1]]
[[individuation]] corresponds to the [[appearance]] of [[phase]]s in the [[being]] that are the phases of the being... the sole [[principle]] we can be guided by is that of the [[conservation]] of being through [[becoming]]
[[IFI p3/4-1]]
The veritable [[individual]] is one that conserves its [[system]] of [[individuation]] with it, thereby [[amplify]]ing [[singularity]]s. The [[principle]] of individuation is in this energetic system of [[internal resonance]]...
[[IFI p16-1]]
[[stable]] [[equilibrium]] excludes [[becoming]] because it corresponds with the lowest level of [[potential]] [[energy]] [[possible]]; a stable equilibrium is achieved in a [[system]] when all [[possible]] [[transformation]]s have occurred and no propulsive [[force]] remains; all potentials have been [[actual]]ized, and systems that have succumbed to their lowest energetic levels cannot transform again... In order to define [[metastable]]ty, it is necessary to establish the [[notion]] of potential energy of a system, the notion of [[order]], and the notion of the increase of [[entropy]]; it is therefore possible to define the metastable state of [[being]]... we will begin by attempting to present [[physical]] [[individuation]] as a case of the [[resolution]] of a metastable system on the basis of system state, like that of supercooling...
[[IFI p4-1]]
...we can also suppose that [[real]]ity is initially, in itself... more than [[unity]] and more than [[identity]], and that it is capable of [[manifest]]ing as wave or corpuscle, matter or energy, because every [[operation]] and every [[relation]] within and operation is an [[individuation]] that [[split]]s and [[phase-shift]]s [[pre-individual]] [[being]], all while [[correlate]]ing the [[extreme]] values and [[order]]s of [[magnitude]]...
Perhaps it would be in this [[sense]] that we could see the [[convergence]] of these two new [[theory]]s, that of [[quanta]] and that of [[wave]] [[mechanic]]s,... they could be envisioned as two ways of [[express]]ing the [[pre-individual]] through the different [[manifest]]ations in which it [[intervene]]s as pre-individual. Below the [[continuous]] and the [[discontinuous]], there is the quantic and the [[metastable]] complementary (the more than [[unity]]), which is the true pre-individual. The necessity of correcting and pairing basic [[concept]]s in [[physics]] perhaps expresses the fact that concepts are adequate only to [[individuate]]d [[real]]ity and not to [[pre-individual]] reality.
[[IFI p5-1]]
[the [[individual]] ] is essentially a [[theater]] or [[agent]] of an [[interact]]ive [[communication]]. To want to characterize the individual in itself or [[relative]] to toher [[reali]]ities is to turn it into a [[relation]]al [[term]], i.e. into a relation with itself or a relation with another reality; first, one must find the [[point of survey]] from which the individual can be grasped as an activity of relation, not as a term of this relation; properly speaking, the individual is in relation neither with itself nor with other realities; it is the being of relation and not a [[being]] in relation, for relation is an [[intense]] [[operation]], and active [[center]]...
The [[principle]] of the individual is the individual itself in its activity, which is relational in itself as a [[center]] and [[singular]] [[mediation]].
[[IFI p49-1]]
...the [[principle]] of [[individuation]]... is the complete [[system]] in which the genesis of the [[individual]] takes place; that, moreover, this system outlasts itself within the living individual as a [[milieu]] associated with the individual in which individuation continues to take place; and that life is therefore an ongoing individuation, an individuation continued through [[time]] extending a [[singularity]].
[[IFI p50-1]]
...the living [[being]] conserves within itself an ongoing activity of [[individuation]]; it is not merely a result of individuation, like the [[crystal]] or [[molecule]], but a [[theater]] of individuation...the living being is also a being that results from an initial individuation and [[amplify]]s this individuation... In the living being there is an individuation by the [[individual]] and not merely an [[operation]] resulting from an individuation completed in a single stroke, not just by [[adapt]]ing, ie by modifying its [[relation]] to the [[milieu]]... but by modifying itself, by [[invent]]ing new [[internal]] [[structure]]s, and by completly introducing itself into the axiomatic of [[vital]] [[problem]]s.
(Footnote: It is through this introduction that the living being performs [[information]]al [[work]], thereby becoming a [[node]] of interactive [[communication]] between an [[order]] of [[real]]ity that is superior to its [[dimension]] and an order of reality that is inferior to it and which it [[organize]]s.
[[IFI p5/6-1]]
..it would be [[possible]] to consider every veritable [[relation]] as having the status of [[being]] and as developing from withing a new [[individuation]]; it belongs to a [[system]] [[state]]... For the [[individual]], participation is the face of being an [[element]] in a vaster individuation through the [[intermediary]] of the [[charge]] of [[pre-individual]] [[real]]ity that the individual contains, i.e. due to the [[potential]]s that it harbors.
[[IFI p7-1]]
[[collective]] and [[psychic]] [[individuation]]s are both [[reciprocal]] with respect to one another; they make it possible to define a category of the [[transindividual]], which attempts to account for the systematic unity of the [[interior]] (psychical) individuation and [[exterior]] (collective) individuation... the basis of collective [[real]]ity is already partially contained within the individual as the [[pre-individual]] reality that remains associated with the individuated reality.
[[IFI p8-1]]
"that which one does in speaking" ATP p78
see [[performative]]
an [[image]] is at the same [[time]] [[material]] and [[dynamic]]
[[5CS8]]
The [[expression]], introduced in (Latour, 2006), was intended to designate, via an oxymoron, two apparently contradictory [[operation]]s visible in any scientific inscription: firstly the lack of similarity between two stages (this is the mobility) and, on the other hand, the maintenance of a constant through this dissimilarity (this is the immutability). The result is [[information]] (in the meaning of what is put "in" a "[[form]]"): the [[statement]] does not rely on resemblance but it does contain something that authorizes a location to speak truthfully of a remote location, provided that a cascade of [[transformation]]s - a [[chain of reference]] - is maintained throughout and for as long as that chain is maintained.
- 2 -
The best definition of a circulating reference is to be found in Hooke: "So many are the links, upon which the true Philosophy depends, of which, if any one be loose, or weak, the whole chain is in danger of being dissolved; it is to begin with the Hands and Eyes, and to proceed on through the Memory, to be continued by the Reason; nor is it to stop there, but to come about to the Hands and Eyes, again, and so, by a continual passage round from one Faculty to another, it is to be maintained in life and strength, as much as the body of man is by the circulation of the blood through the several parts of the body.” (Ait-Touati, 2006).
the immanent relation between statements and acts
incorporeal transformation vs [[noncorporeal attribute]]?
The incorporeal transformation is recognizable by its instantaneousness, its immediacy, by the simultaneity of the [[statement]] expressing the transformation and the effect the transformation produces; that is why [[order-word]]s are precisely dated, to the hour, minute, and second, and take effect the moment they are dated... [[ATP p80/81-1]]
[[question]]: is this the (effect?) process by which a [[statement]] becomes an order-word; its ability to cause, make, and effect incorporeal transformations?
What is the [[indefinite]], rigorously defined?... it's the [[fact]] that I must always pass from one [[term]] to another term, always, without stopping, but without the following term at which I arrive pre-existing. It is my own procedure that consists in causing [[creation]]... 1=1/4+1/8,etc... we must not believe this etc pre-exists, it is my procedure that makes it appear each time, that is, the indefinite exists in a procedure through which I never stop pushing back the [[limit]] that I confront. Nothing pre-exists. He explains[[Kant]]'s [[definition]] as well [[L82-11]]
The [[probability]] that a [[verbal]] [[response]] of given [[form]] will occur at a given time is the basic [[datum]] to be [[predict]]ed and [[control]]led. It is the “[[dependent variable]]” in a [[functional analysis]]. The [[condition]]s and [[event]]s to which we turn in order to achieve prediction or control—the “[[independent variable]]s”—must now be considered.
[[VB62]]
If the [[action-image]], according to the terminology we've borrowed from [[Peirce]], is the
domain of [[secondness]] in the very approximate form: two... in any action, there are
two, we see that this level of the action-image presents two types of secondness. The
first secondness – and this is what will constitute the whole of the action-image – first
secondness is that of the sinsign, or of the milieu itself as a derived [[world]]. In what
way does this constitute secondness? In that the [[power]]-[[quality]]s are [[actualize]]d in a
state of [[thing]]s. There are indeed two terms: the power-qualities and the state of things
that actualizes them. These two terms are nonetheless quite difficult to distinguish, so
I would call this an introductory secondness. [[embryonic]]
Second secondness: the character acts, and by [[act]]ing, by behaving, [[react]]s upon the
situation. Here we have a real secondness. But in what form? Action, modification of
the situation. Or more profoundly, what is this second secondness exactly? It is –
and in fact we have seen it... we have seen it and that's why Peirce's analysis is
useful to us, we have seen this – all [[action]] implies [[reaction]], all effort implies
[[resistance]]. And after all behavior can perhaps only be conceived in what form? In the
form of a duel. And this is the true secondness of the action-image. It will necessarily
be a question of a [[duel]]: a duel with the milieu, or a duel with an [[element]] of the
milieu, or a duel with someone else.
Already, we can be either worried or satisfied, but we have the presentiment that the
form of the duel opens up all kinds of possibilities and that you will find it every time
there is behavior. Every time there is behavior, a duel is inscribed in the behavior. It
is this that will apportion the emotions and motives of the behavior. Now this, always
keeping to Peirce's vocabulary, is the domain not of the [[sinsign]] but of the [[index]].
When two elements are in a relation of action and reaction, one is the index of the
other. The [[resistance]] is the index of the effort, and the [[effort]] is the index of the
resistance. I would say, therefore, that the two secondnesses of the [[action-image]] in
this realist sense are that of the [[sinsign]] and that of the index.
[[14CS7]]
Indirect discourse is the presence of a reported statement within the reporting [[statement]], the presence of an order-word within the word. [[language]] in its entirety is indirect discourse.
[[ATP p84-1]]
"buzz buzz" goes the bee; indirect discourse for me, but not for thee says he
We have to think in terms of [[population]]s, not [[individual]]s.
[[ATP10 p8-1]]
[[individuation]] must be grasped as the being's [[becoming]] and not as a [[model]] of the [[being]] that would exhaust its [[signification]]. The individuated being is neither the whole being nor the first being; instead of grasping individuation on the basis of the individuated [[being]], the individuated being must be grasped on the basis of individuation and individuation on the basis of [[pre-individual]] being, which is [[distribute]]d according to several [[order]]s of [[magnitude]].
[[IFI p12-2]]
If a [[response]] is [[reinforce]]d upon a given occasion or class of occasions, any feature of that occasion or common to that class appears to gain some measure of [[control]]. A novel [[stimulus]] possessing one such feature may evoke a response. There are several ways in which a novel stimulus may resemble a stimulus previously present when a response was reinforced, and hence there are several types of what we may call “extended [[tact]]s.”
[[VB125]] [[reinforcement]] [[stimulus control]] [[induction]]
A temporal object is a fabric of [[retention]]s and [[protention]]s. These protentional and retentional processes also weave the temporality of consciousness in general, and temporal objects permit the modification of these processes of consciousness in a single blow. AoD p337. The page has more on them.
a [[binary]], [[dichotomy]]
see also
[[man:technology]]
[[man:industry]]
[[man:nature]]
the [[expression]] is borrowed from [[speech act]] theory and allows us to speak of the truth and falsity of a mode without immediately judging it solely according to constatives. We will therefore be able to define each [[mode]]'s own conditions of veridiction.
[[information]] is never a single [[term]] but the [[signification]] that emerges from a [[disparate]]ion
[[IFI p16-1]]
[[element]]s are [[information]], [[distinction]]s that make a [[difference]] in the [[system]]
[[TS32]]
[[information]] is a [[difference]] that changes the [[state]] of a [[system]], thus [[generate]]ing another difference.
[[TS113]]
The [[information]] in a description depends on the [[observer]]’s ability to draw conclusions from this [[description]].
[[HE38]]
Gregory [[Bateson]]'s classic formulation that [[information]] is "a [[difference]] that makes a difference." Information is information only if it is not just an existing difference; it is information only if it instigates a change of state in the [[system]]. This is the case whenever the [[perception]] (or any other mode of input one might have in mind) of a difference creates a difference in the system.
[[IS46]]
the range of interpretive possibilities corresponds to the [[speed]] and the [[information-processing]] capacity of the [[system]]. "Disturbance" therefore means the initiation of information process ing that can be handled operationally in the system. [[irritation]]
The University of Bielefeld, for example, is not information. Even if you come here every day, you do not always activate new information that would follow the pattern, "Oh, it is still here!" and then tomorrow you would be astonished again that the university is still here. The University of Bielefeld is a structure that has no informational value. Of course, it has [[meaning]] - after all, you have a specific idea why you come here - but it does not provide new information. This is to say that one must distinguish between meaning [91] or even relative structural invariants and the [[surprise]] effect of a piece of [[information]]. In the second place, it is necessary to construct the concept of information once again like the concept of [[form]], which is to say that one must look at it as a two-sided concept. On the one hand, there is surprise, but, on the other, the surprise comes about only because one had expected something and because one limits the range of possibilities within which a certain piece of information states this and cannot state that. If an acquaintance comes by in his new car, there is a specific range of possibilities concerning what type of car it may be. If he says that he will come by in a new car, one will not expect a deck chair.
[[IS90]]
the range of interpretive possibilities corresponds to the [[speed]] and the [[information-processing]] capacity of the [[system]]. "Disturbance" therefore means the initiation of information process ing that can be handled operationally in the system. [[irritation]]
[[IS90]]
The term ingression refers to the particular [[mode]] in which the [[potential]]ity of an [[eternal object]] is [[real]]ized in a particular [[actual entity]]. contributing to the definiteness of that actual entity.
[[KPR p21/22-1]]
Innovation accomplishes a transformation of the technical system while drawing the consequences for the other systems... the rules of innovation are wholly different from those of invention. The rules of innovation are those of socialization... "Innovation is mainly of an economic order." Gille
Innovation destabilizes established situations: it thereby creates resistance.
[[T&T p36-2]]
This brings us to an important principle in the analysis of behavior. We distinguish between an [[instance]] of a response and a [[class]] of [[response]]s. A single response, as an instance of the activity of an organism, may be described as fully as facilities will permit. But when we are concerned with the [[prediction]] of future behavior it may be either impossible to predict the great detail of the single instance or, more likely, unimportant to do so. All we want to know is whether or not a response of a given class will occur
[[VB49]]
In general, intention may be reduced to [[contingency]]es of [[reinforcement]].
[[VB75]]
"a deterritorialized or [[autonomous]] assemblage" [[ATP p326-1]]
[[internal resonance]] is the most [[primitive]] [[mode]] of [[communication]] between [[reality]]s of different [[order]]s; it contains a twofold [[process]] of [[amplify]]cation and [[condensation]]
[[resonance]]
[[IFI p13/14-1]]
The phrase takes up the musical metaphor, as well as bringing the term closer to [[speech act]] theory. This perfectly ordinary term designates the anticipation necessary for the interpretation of the meaning of that which follows. We can be mistaken in a particular key but also be mistaken in terms of the right key to employ. This inquiry concentrates on errors of the second kind which lead, step by step, to the establishment of the [[pivot table]].
A [[constant]] or [[invariant]] is defined less by its [[permanence]] and [[duration]] than but its [[function]] as a [[center]].
[[ATP p95-1]]
The [[invention of the human]]:... Who or what does the inventing? Who or what is invented?
[[T&T p134-1]]
This term was introduced in the second part of a book on Pasteur and his microbes, which was one of the first philosophical developments specific to actor-network theory (Latour, 2001).
- 2 -
The expression simply means that no thing is by itself reducible or irreducible to anything else, never by itself always by another substance. AIME reworks this canonical definition: no [[substance]] can persist in [[being]], except via the [[intermediary]] of another. But we add to the irreduction of beings the irreduction of ways of being. It is the same principle, the same concern, but extended and multiplied. This is simply a more profound way of understanding the principle of "nothing is in itself" reducible or irreducible to another, only "by another", that is, by modifying the way of registering this alterity and extending the price to be paid for this alteration: "by another", yes, and also "by other [[mode]]s of being".
- 3 -
1.1.5.1. The real is not one thing among others but rather gradients of resistance. (Latour, 2001).
the range of interpretive possibilities corresponds to the [[speed]] and the [[information-processing]] capacity of the [[system]]. "Disturbance" therefore means the initiation of information process ing that can be handled operationally in the system. [[irritation]]
[[IS90]]
[[Parsons]] is one of the great [[theory]] architects, who is capable of trying out a peculiar pattern of construction only then to make the following visible: (1) all that can be achieved by means of this theory pattern; (2) the consequences to which the design of a particular theory leads; and (3) the contrast between this design and other theory patterns, such as, say, a dialectical theory.
[[IS4]]
[[Parsons]] calls such levels or degrees of detail that occur in his theory "system [[reference]]s." One of his more remarkable insights states that one must always distin guish between system references, which is to say that one must know at which system level of detail within the total complex one's own argument is located and at which level one wants to place certain mechanisms or interchange possibilities, and so forth
[[IS12]]
this theory is a theory of a specific [[distinction]] and not so much the theory of a desirable state or of a particular type of objects.
[[IS14]]
the notion of a [[closed system]] was rejected in the fields of biology and sociology, and in its stead a theory of [[open system]]s was developed. These systems were called "[[open]]" because they were meant to explain why entropy does not occur in them and why order is created instead. In all cases, [[openness]] means that an exchange with the environment takes place. But, depending on what kind of system one has in mind - biological, organic systems or [[meaning]]-directed systems - that is, social systems (communication systems) and psychic systems (consciousness) - the conceptualization of this exchange takes on different forms. In the case of biological systems, the consumption of energy and the excretion of useless energy are primarily at issue. In the case of meaning systems, it is predominantly the exchange of [[information]]. A meaning system obtains information from its environment. One might say that it interprets surprises. In turn, this particular information processing system is integrated into a network of other systems that reacts to it. The basic condition that accounts for [[negentropy]] is the same in both instances: namely, the exchange relationship between system and environment. This is what is designated by the term "open system."
[[IS26]]
How can it be explained that the one-time biochemical invention of life led to so many different forms, to worms and birds, mice and men, and so forth? The same could of course be said for social systems. How can it be explained that, once linguistic communication developed, there could already be so many different languages, and further, from a historical perspective, that so many different cultures - developed cultures and less developed cultures - have existed simultaneously?
one needs a theory that describes how environmental stimuli can have an effect on systems that changes their [[structure]]. The question is how an event that was merely contingent to begin with and was not planned for or even expected within the system - for instance, a mutation at the cell level or some irritating, disturbing information - can be noticed as such in the system and lead to a structural change - that is, to the selection of new structures and to [[test]]ing whether these structures can actually be stable or not
[[IS28]]
we speak of a difference between the system-environment [[distinction]], on the one hand, and the system-to- system relations, on the other. Now, the [[input]]/[[output]] model concerns the latter. It presupposes that a system can afford a high degree of indifference in relation to its environment and that, by and large, the environment is of no importance to the system. It also presupposes, however, that, under such conditions, specific environmental factors gain all the more importance. Obviously it is not the environment that is in a position to decide which factors are important but rather the system itself. In this sense, a system possesses relative [[autonomy]] insofar as it can decide itself (and thereby make this decision dependent on internal conditions and on its own system type) on what it has to rely as its input, and what it passes on to its environment as its output - which is to say, its waste but also its positive results [Leistung], its readiness to be of benefit to other systems.
[[IS29]]
The fact that the internal workings are orderly can be derived only from the external [[regularity]]es of a system.
[[Skinner]] [[behaviorism]] [[von Foerster]] [[eigen]]
[[IS30]]
In the late fifties and sixties, the counter-concept of "[[positive feedback]]" was invented and jux aposed with these notions. Positive feedback means the [[amplify]]cation of [[deviation]]s. The [[cybernetic]] circuit is used to change a certain state that was produced by the system itself in a certain direction that amounts to a deviation from the original state find has a specific tendency. What is at issue is not the reduction of difference but, on the contrary, its increase. This amplification of deviation or positive feedback creates entirely different problems than [[negative feedback]]. What is at issue here has nothing to do with the stability of the system and with keeping certain values stable. Instead, it is a matter of changing the system and, more precisely, of change in specific directions.
[[IS31]]
As I will show in more detail, the deciding factor is [[closure]] - that is, operational [[recursive]]ness, self-reference, and circularity - which has to be seen as the condition of [[openness]]. This means that one must ask more precisely how a system refers to itself, which is to say, how it can distinguish itself and its environment in such a manner that its own operations can be connected with the help of this distinction to an increasing number of its own operations.
[[observe]]ing or of [[draw]]ing [[distinction]]s...
[[IS36]]
the question concerning the [[identity]] of a system must be posed and answered within the system itself and not by an external [[observer]]. A system must itself bring about a decision as to whether in the course of history the changes of structures have altered it to such a degree that it is no longer the same.
[[Introduction to Systems Theory]]
We must also consider the parallel account that biological epistemology would give: namely, that a [[cognitive]] apparatus must be available on the basis of living [[organism]]s, that [[life]] itself already has to produce a sort of [[cognition]] of its [[environment]], and that all phenomena that one recognizes as living beings are determined, among other things, by the fact that one is actually alive oneself.
[[IS38]]
The same certainly applies if [[science]] is conceived of as an [[observer]]. How is it possible to think of science as capable of observation without itself being a system: namely, a system with a network of communication, a system with certain institutional arrangements, a system with certain value preferences, a system with individual careers, and a system that depends on society?
[[autologic]]al, in this sense, means that whatever is valid for my object is also valid for myself.
[[IS41]]
[[systems theory]] became a sort of self-observing, autopoietic, [[recursive]] mechanism. Or, one might even say, it became a system that unfolded an intellectual dynamic all of its own, which, in my opinion, is among the most fascinating phenomena that we are able to witness today in our problematic so-called [[postmodern]] situation. I would like to build the further developments of the concept of a general theory on this foundation.
[[IS42]]
Already [[Parsons]] spoke of "[[boundary]] maintenance" and thus changed the definition of a system; he shifted from a system definition that relies on an essence, essentials, or other unalterable structures to a definition that depends on the question of how the [[difference]] [[between]] system and environment can be maintained, possibly even at the same time that structures are being replaced. In this case, the identity of a system requires only persistence without necessitating any minimal or essential elements at the structural level.
Now one can say: a [[system]] is the [[difference]] between system and [[environment]]. You will see that this formulation, which sounds paradoxical and perhaps even is [[paradox]]ical, needs some explanations. I thus begin with the claim that a system is difference - the difference between system and environment. In this formulation the term "system" occurs twice. This is a peculiarity to which I will return in a roundabout way.
[[IS43]]
Gregory [[Bateson]]'s classic formulation that [[information]] is "a [[difference]] that makes a difference." Information is information only if it is not just an existing difference; it is information only if it instigates a change of state in the [[system]]. This is the case whenever the [[perception]] (or any other mode of input one might have in mind) of a difference creates a difference in the system.
One begins with a difference and, interestingly, ends with a difference. Information processing in its entirety takes place between an initial difference and a difference that [[emerge]]s during, and as a consequence of, the [[process]]. The difference that has thus come about can in turn be a difference that sets in motion further information. The process does not follow a course just from an indeterminate to a determinate unity, if we may paraphrase [[Hegel]] in this manner, but from a difference to a difference.
[[Laws of Form]] gets mentioned
[[IS44]]
there is no difference between [[self-reference]] and [[observation]]. For he who observes something must distinguish himself from that which he observes
We begin with a distinction. However, since the result of the distinction must function as a [[unity]], the distinction can be neither designated nor named. It is simply there.
[[IS46]]
a [[distinction]] contains two [[component]]s: namely, the distinction proper, marked by the vertical line, and the [[indication]], marked by the horizontal line. It is striking that a distinction contains both a distinction and an indication and thus distinguishes between distinction and indication. If a distinction is supposed to become operational as a [[unity]], it always already presupposes a distinction within the distinction. How this fact is to be interpreted is not entirely clear, at least not in the discussions of Spencer Brown with which I am familiar. I understand Spencer-[[Brown]]'s calculus in the following way (although I am not entirely sure about it). The distinction is extracted, so to speak, from the distinction. And in the end it is made explicit that a distinction had always already been present in the distinction. A [[unity]] is put into operation; in the instance of the beginning, it cannot yet be analyzed. Only later, when possibilities of [[observation]] are introduced into the calculus - that is, when self-referential figures can be used - does it become apparent that a hidden paradox had already been present at the beginning. This [[paradox]] is the distinction contained in the distinction.
[[Laws of Form]]
[[IS49]]
This is a very general conception. The analysis of [[form]] could be pushed far beyond [[systems theory]]. I could perhaps say that one could even "redraw" [[semiology]] and [[semiotic]]s with the help of its tools. To this end, one would state that on the one side of the "form" there is a [[sign]] - that which one needs to signify something - and on the other side there is the signified. Thus one would arrive at the tripartite figure that plays such an important role for [[Peirce]] and others. To speak more precisely, the sign is the difference between signifier and signified. The French expressions [[Saussure]] uses are signifiant and signifié. Something signifies something else. In German we have a tendency to call the signifier [das Bezeichnende] that is used for signification the sign [das Zeichen]. But by means of a formal analysis we recognize that the sign is a form with two sides and that, in using it as a sign, we must always move to and operate from the inner side of the form - that is, the side of the signifier. Thus, language is used on the assumption that words signify something we do not know very clearly.
[[Laws of Form]]
[[IS50]]
Thus the first point we enter under the heading "applications to systems theory" is: a [[system]] is a [[form]] with two sides
we must come to terms with the notion that it is actually a type of [[operation]] that [[produce]]s the [[system]], provided that there is [[time]]. A mere one-time [[event]] does not suffice. If an operation of a certain type has started and is, as I like to say, capable of [[connectivity]] - that is, if further operations of the same type ensue from it - a system [[develop]]s. For, whenever an operation is [[connect]]ed to another, this happens [[select]]ively. Nothing else happens; the unmarked space or the environment remains outside. The system creates itself as a [[chain]] of operations. The difference between system and environment arises merely because an operation produces a subsequent operation of the same type.
[[IS51]]
...the [[concept]] of [[autopoiesis]] itself explains next to nothing, except this beginning with [[self-reference]]: an [[operation]] that possesses [[connectivity]].
The previous thoughts can be applied to [[social system]]s if we succeed in identifying an [[operation]] that meets the following conditions: it must be one single operation; it must always be the same; and it must possess connectivity. It is this operation that either ceases or continues as the same operation. I think that we do not have many potential operations to choose from. In actual fact, [[communication]] is the only type of operation that meets these conditions. A social system emerges when communication [[develop]]s from communication. There is no need to discuss the problem of the first communication, for the question "What was the first communication?" is already a question within a communicating system. In the beginning, the system always thinks outwards from its center. Once it has become complex enough, it can ask the question as to how it all began. There may then be different answers. However, they do not disturb the continuation of the communication. On the contrary, they may even quicken it. Thus, the [[question]] concerning the [[beginning]] or [[origin]] is of no particular interest to us; or, to put it differently, it interests us merely as one question among many.
...At this juncture of my argument, I want to say only this much: communication can be conceived as the [[synthesis]] of [[information]], [[utterance]], and [[understanding]]. That is to say, that communication happens when information that has been uttered is understood. "Communication" is the structural equivalent of bio chemical statements by means of proteins and other chemical substances. It is of primary importance that there is a prospect of identifying an [[operator]] that makes possible all social systems, no matter how complex societies, interactions, or organizations might become in the course of evolution. From the viewpoint of an operational theoretical approach, everything exists because of the same basic occurrence, the same type of event: namely, communication.
[[IS52]]
...[[action]] can be conceived of as a solitary, individual operation that has no social [[resonance]]. In the case of commu nication, this is not possible. Communication happens only if somebody understands it at least roughly or perhaps even misunderstands it; in any case, somebody must understand enough so that [[communication]] can con tinue. Language use alone cannot assure this possibility. It lies beyond the mere use of language. Somebody must be there who can be reached and who is capable of hearing or reading.
Let me summarize these two points once again. The first statement concerns the analysis of [[form]]: a [[system]] is a [[difference]]. The second statement says that a system needs only one single [[operation]], one single type of operation, in order to reproduce the difference between system and environment if the system is to continue to exist (this "if" is of course not unimportant). In the case of the social system, we have identified communication as this type of operation. Communication is connected to communication.
A third point also relies on [[Spencer-Brown]] and pertains to the concept of "[[re-entry]]" - that is, the re-entering of the form into the [[form]] or of the [[distinction]] into the distinguished. Initially, when I introduced Spencer Brown, I did not say anything explicit on this topic. You will recall that already the initial injunction "Draw a distinction!" is an [[injunction]] that concerns an [[operation]] which consists of two [[component]]s, the distinction itself and the [[indication]] of one side, the [[pointer]] that tells you where you are and from where you might continue. Distinction is already provided for in the distinction. Using Kauffman's terminology, one might say that distinction is already copied into the distinction...Spencer Brown eventually arrives at the point where he makes this premise explicit
I suspect that we may have some difficulty imagining this re-entry, this entering of the form into the form, at the abstract level that is required.
[[IS53]]
If a system has to decide or to speak with greater caution, create [[coupling]]s between one communication and another, then it must be able to [[discern]], [[observe]], and [[establish]] what is compatible with it and what is not. A system that intends to control its own conditions of [[connectivity]] must have at its disposal a type of [[operation]] that, for the time being, we may call "[[self-observation]]." I will return to the problem of the observer. (The problem is that the concepts are circular. I always have to presuppose something that I will explicate only later. This is necessar ily the case for any system design of this type. For the moment, I would encourage you simply to accept observer and observation as terms that are yet to be explicated.) A system has to be capable of [[control]]ling its own [[condition]]s of connectivity.
[[von Foerster]] [[cognition]] [[cognitive]] [[eigen]] there's the what is memory HvF essay that I'd like to tie to this
It is crucial that communication itself [[draw]]s the [[distinction]] between
communication and non-[[communication]].... However, communication possesses the [[recursive]] certainty that it is based on communication; that it can and even has to restrict what can be said in the future (the same holds true of [56] writing); and that, as a consequence, it can observe the difference between system and environment and thus separate [[self-reference]] from [[hetero-reference]].
[[IS54]]
...one proceeds either from the [[utterance]] or from the [[information]], and then communicates about that which has been said.
Here we have an [[indication]] that the difference between [[hetero-reference]] qua [[information]] and [[self-reference]] qua [[utterance]] is always already included in the [[operation]] itself. This inclusion is yet another illustration of the general topic of re-[[entry]]: the system re-enters into itself or copies itself into itself. Communication remains an internal operation. It never exits the system, for the next [[connection]] is once again provided for and has to take place in the system. Self-reference (reference to that which takes place in the system) and hetero-reference (reference to the intended internal or external, past or present states of the system) must therefore be distinguished: one is the utterance, the other the information.
[[IS55]]
Insofar as it is coupled with [[self-reference]], [[consciousness]] is also internal, and it knows that it is... Consciousness, too, is a [[closed system]]. But its peculiarity seems to lie - if we choose a very formal mode of description - in the transition from the purely operational [[closure]] of the electrophysical language of the neurophysiological apparatus to the difference between [[self-reference]] and [[hetero-reference]]. Only this central difference constitutes consciousness, of course on the basis of neurophysi ological correlates. I do not intend to claim that consciousness is no longer in need of a [[brain]]. However, it is of great interest to ask whether we are dealing not just with a new level of reflection, as is often said - a learn ing of learning or a coupling of coupling - but with the introduction of a critical difference
[[IS56]]
If the operational management of [[self-reference]] and [[hetero-reference]] is indeed the mark of a certain sphere of reality, it would be possible to formulate a [[program]] that would aim at establishing a link with the concept of meaning... For the moment, the only thing of importance is that there are a number of clues indicating that the phenomenal presentation of the world or the informative relations of [60] communication contain patterns or structures; we perceive these [[pattern]]s as [[meaning]].
the [[distinction]] must be and is drawn merely in order to [[distinguish]] one side. Thus, every distinction contains two [[component]]s: [[indication]] and distinction. The distinction contains itself, but apparently in a very specific form - namely, as the distinction between distinction and indication [[re-entry]]
Accordingly, the re-entry of the form into the [[form]] - or of the distinction into the distinction, or of the difference between system and environment into the system - should be understood as referring to the same thing twice. The distinction re-enters the distinguished. This constitutes [[re-entry]]. Is the distinction now the same distinction it was before? Is that which existed before still there? Or does the first distinction disappear and thus become the second one? The answer is that we might well suspect that we are dealing with a [[paradox]] here, and that means that the distinction that re-enters itself is the same and, at the same time, not the same. And this is the whole trick of the theory: suspended between two markers, both of them paradoxical, a purely logical operational space is created. As is typical of paradoxes, this one, too, can be dissolved. In fact, a paradoxical formulation does not make much sense if one does not also possess a transformative formula, a formula that can dissolve the paradox. I think that such a solution can be accomplished with relative ease in the present case. It depends on the distinction that is drawn by an [[observer]] who is capable of distinguishing whether what is meant is his own distinction between system and environment (which could be another system or, if the observer is involved in reflection, an earlier state of his own system) or whether he is speaking of the distinction that is made within the observed system itself. The observer can make his appearance in two ways: as an external observer who sees that another system is observing itself, or as a self-observer, which is to say [61] somebody who observes himself, refers to himself, and states something about himself.
[[para-sense]] [[observation]] [[self-reference]]
[[IS59]]
If there is an [[operator]], it functions only within a system, and thus one arrives at the thesis of the operational [[closure]] of this system....
To give an example: a few months ago, I stayed in small apartment hotel in Brisbane directly on the Brisbane River. A tel ephone was hanging on the wall of this apartment. Lifting the receiver, one discovered a small piece of paper on the phone that said "If defective, call..." followed by a number. This can be translated as "If you cannot act, then act." What should one do with such a [[paradox]]? It can be dissolved if one distinguishes between defective and non-defective telephones, copies the number, finds another phone, and calls said number. One deals with paradoxes by finding a [[distinction]] that suits them and fixes [[identity]]es (such as: this telephone, other telephones) and in this way at least remains capable of action.
The distinction between system and environment is produced by the system itself. This does not exclude the possibility that a different observer observes this distinction, which is to say, observes that a system exists in an environment. From the viewpoint of the thesis of operational closure, the important issue consists in the fact that the system draws its own boundaries by means of its own operations, that it thereby distinguishes itself from its environment, and that only then and in this manner can it be observed as a system. This always happens in a very specific way, not just in any way, but in a way that we can determine more precisely with the concepts of operation and the operational - which is to say, by means of [64] the manner in which the system produces itself through system-specific operations
[[IS60]]
And this is precisely the point made by the thesis of operational [[closure]]. [[operation]]s are from beginning to end (or, in other words, if seen as [[event]]s) always possible only inside a system, and they cannot be used to make an intervention in the environment.
Choosing a radical formulation, one might say that knowledge is possible only because there are no operational relations between system and environment. You may think about this for a long time! Knowledge is pos sible not only in spite of, but also because of, the fact that the system is operationally closed. With its [[cognitive]] operations, it cannot intervene in the environment but must always search within the system for a [[connect]]ion, a deduction, a further insight, or recourse to the system [[memory]].
The thesis states that systems are operationally closed. They rely entirely on internal operations. [[closure]]
[[IS63]]
these systems function only by reproducing themselves in one way or another. And often they prove unpredictable for an [[observer]]. Investigations of accidents in the nuclear industry, as well as the catastrophe of the Challenger space shuttle, have shown us the role that psychic logic and informal organization play. Although the [[error]] was noticed, no reaction followed, simply because hitherto everything had always gone well. The first time that the error was noticed, it either went unheeded or was noticed too late for any thing to be done. The next time, one knows that the error denotes nothing untoward is going on, since nothing happened the first time around. The organization then gets into the habit of sticking to the timetable, since that appears to be more important than correcting every single error. The logic of this type of social organization sooner or later leads to a point where something will eventually go wrong. Such problems are relevant today; they explode the difference between systems that operate and re-create themselves by way of meaning, on the one hand, and technical, causal [[closure]], on the other. Increasingly, we have to deal with the collapse of this distinction.
[[von Foerster]] is mentioned here and the next pages; I disagree with [[Luhmann]]'s reading of him. See notes on the Boox. [[IS64]]
Indeed, it is precisely because systems are operationally [[closed]] that they can be influenced through structural [[coupling]]s, at least in the long run.
[[IS67]]
Taking my lead from my experiences in many discussions of self-[[organization]] and [[autopoiesis]], I have reached the conclusion that the thesis of operational [[closure]] is the starting point from which one ought to explain these two concepts, and not the other way around.
Time and again it must be said that this means that the [[system]] has only its own [[operation]]s at its disposal. In the system, there is nothing but the system's own operations. These operations serve two distinct purposes. On the one hand, they are needed for the formation of the system's own [[structure]]s. The structures of an operationally [[closed]] system must be created through the system's very own operations. In other words, there is no importation of structures! This is what is meant by "[[self-organization]]."
We are dealing here with two issues: the first one concerns "self-organization," in the sense that a particular structure is produced by the system's own operations, and the second concerns "[[autopoiesis]]," in the sense that the system [[state]] that serves as the point of departure for many further operations is determined by the operations of the very same system.
[[IS69]]
...within the confines of an [[operational]] [[theory]], [[structure]]s are effective only in the moment when the [[system]] [[operate]]s... In this theory, structures are relevant only in the [[present]]. They can only be used, one might say, as long as the system operates... Every temporally overarching [[description]] of structures (for example, everything that can be seen, if one observes that we conduct this lecture course always at the same hour in the same room, although perhaps not always with exactly the same people present but at least with the same lecturer), all of this together, is a structure that in turn requires an [[observer]]. And for the observer the same is true. He, too, can observe all this only when he is observing, which is to say, when he is actively operating. Regardless of whether one contemplates the system in operation or relates the operation to the [[observation]] of other operations, everything stands in relation to the topic of [[simultaneity]], the [[present]], and [[actuality]]. The system must be in operation to make use of structures.
The [[memory]] is not the stored past. What is [[past]] is past and can never again become the here and now. Rather, the memory is a sort of [[consistency]] test for which it is typically not necessary to recall when something specific was or was not learned. Speaking German at this moment, I do not have to know when I learned this language, or how it happened at all, or when I used or read certain words such as "autopoiesis" for the first time. What is decisive, and what one wants to achieve in the future in the context of [[expectation]]s, [[anticipation]]s, ends, and such, is present recall, the present test of the applicability, one might say, of [[structure]]s. In this sense, this approach is entirely [[pragmatic]]
[[IS70]]
One might perhaps say that [[memory]] is nothing but a continuous [[consistency]] test of different [[information]], always in light of certain [[expectation]]s - be it that one is aiming at certain achievements, be it that one is afraid of something, or be it that one simply sees some thing coming and would like to react to it. We are not dealing here with a theory of memory that relies in any way on the notion of [[storage]]. And neurophysiology seems to confirm this theory. After all, in the nervous system, there are no actual nerve cells where the past can be found to be stored. What one finds instead is cross-referencing, the testing of different established [[habit]]s on specific occasions at certain points in time.
[[neuron]]
From this [[perspective]], it would seem advisable to take the concept of [[expectation]] as the basis for a definition of [[structure]]s. Structures, then, are expectations in relation to the [[connectivity]] of operations. These opera tions can consist of mere experience or of action. And expectations should be understood in a sense that is not necessarily subjective at all.
The concept of expectation was introduced in psychology in the thirties in order to complicate the rigid [[input]]/[[output]] relations and [[stimulus]]-[[response]] models that were prevalent. Thus, it became possible to imagine that stimulus and response do not stand in a fixed relation to each other but instead are controlled by the expectations of the system. A stimulus can only be identified if one has certain expectations. In a way, one is surveying the terrain, where one perceives something and receives stimuli, in light of expectations that come to the fore in specific situa tions or else emerge habitually. The notion of "generalized expectations" (George Herbert Mead), among others, is derived from this view. In the first place, this indicates a break with the older behaviorist psychology. Secondly, this view was subsequently adopted by social theory - in the precise sense that roles were seen as bundled expectations and communi cation was understood as communicating expectations, regardless of the actual private thoughts of the persons involved. Expectations thus formu late a certain aspect that may be presented either psychically or in social communication as the future aspect of meaning.
For such a [[theory]] that defines the concept of structure by means of expectations, the subject-object distinction is meaningless
[[behaviorism]] [[Skinner]] [[reflex]]
[[IS71]]
Under such conditions, the concept of [[expectation]] no longer contains any subjective component. Instead, the concept of expectation poses the question of how [[structure]]s can achieve the reduction of [[complexity]] without, as it were, limiting the entire system to just one capacity. How ought one to conceive of a system that has at its disposal a rich array of structures, for instance via [[language]], without being limited by the [[selection]] of this or that sentence, which is to say, without immediately losing this structural variety again? On the contrary, in many instances structures are built without the need to determine the situation in which these structures are used. The concept of structure must include an explanation as to why the system does not shrink when it continuously has to make decisions, continuously has to perform this or that [[connectivity]] operation. It must explain why it does not shrink but may even, depending on the circumstances, grow and gain in complexity, although it is constantly forced to reduce complexity. The more possibilities a system has - once again you may look at language as the extraordinary [[example]] that makes this clear - the more selective is every single sentence, and the less stereotypical is the [[speech]].
One can see this, for instance, if different social classes are compared - say, the stereotypical form of lower-class language, especially in England, and the elaborate form of upper-class language. An elaborate language finds the right word in every situa tion and often has the ability to express itself more to the point when its structure is extremely elaborated and complicated than when only a restricted vocabulary is at its disposal. This difference must be captured by means of the concept of structure. The actual achievement consists precisely in connecting high structural complexity with the ability to operate. This also shows why the transition from [[trivial]] to [[nontrivial]] [[machines]] is important. For trivial machines have only those operations at their disposal that have been determined by the program and the input. In contrast, structurally complex systems can bring into play this lesson of adapting to situations on their own and can thereby take into considera tion their own thoughts, if you will, or their own communicative habits. As a consequence, these systems have a much greater repertoire of action possibilities. The problem is precisely of how to explain this difference. The concept of structure is important in this context and not so much the question of how to choose between subjectivity and objectivity.
[[proletarianization]]
[[IS72]]
It cannot import [[structure]]s. [ [[von Foerster]] shows this; [[self-organization]] ] This, too, needs to be explained. If you look at research concerning [[language]] acquisition, it is almost incomprehensible how a child can acquire language as quickly as it does. Some of you probably know that Noam [[Chomsky]] tried to solve the problem by postulating natural deep structures that are innate but can never be discovered empirically. Modem [[communication]] research would probably rather say that we learn language in the process of communication itself when speakers lay claim to us, if you like. Such speakers simply assume that their audience will understand even when they know that they do not yet understand. The habit of separating certain noises as language and of repeating certain meanings comes about as a sort of exercise. At least this would not contradict the thesis that structure can be built only inside a system.
[self-organization] cannot be explained by means of an importation of structures, but only by structural [[coupling]], to use a concept about which I will speak in the next section.
At the level of abstraction of a general theory, we still know very little about how structural development actually happens. In any case, I imagine that it certainly does not proceed in the same way as the pro duction of a thing for which one knows the necessary components and simply puts them together. The specificity of structural formation seems to consist in the fact that one must, first of all, repeat - which is to say that one must recognize one situation as the [[repetition]] of another
[[recursion]] [[recursive]]
[[IS73]]
double process of specification-generalization [[double articulation]]
[[IS74]]
The richer the structural choices, the greater the variety of operations [76] and the better the system recognizes itself as the determinant of its own state and its own operations. But, on the other hand, the exact opposite is also true. The [[structure]]s can only be built through the system's own operations. It is a circular process: structures can be built only through the system's own [[operation]]s because the system's own structures in turn determine its operations. [[autopoiesis]]
The structures depend on the operations because the operations depend on the structures. The whole thing has the bad smell of [[paradox]] only because the paradox is a formulation that is abstracted from time. In contrast, reality takes time and is able to develop only in this way.
The point of departure for our considerations is that whatever was said about structures is also true for the operations themselves. I have already let this point tacitly be part of my argument, simply because I was unable to present in any other way the concept of structures and operations that are connected with each other in a circular network
[[IS75]]
The concept of [[autopoiesis]] answers such "What?" questions - this, too, is a thought of [[Maturana]].
At the end of a long course on the [[evolution]] of life, a student approached Maturana and told him that he understood everything that had been said but wondered what precisely had transpired in the process. At first, Maturana had no suitable answer. Under normal circumstances, a biologist does not ask the question as to what life is. And, in sociology, the question "What is the social?" is likewise no question to which the dis cipline devotes much attention. And, in [[psychology]], one usually does not pose the [[question]] as to what the soul or consciousness is either, at least not in this form. In general, "What?" questions are shunned. But the concept of autopoiesis aims precisely at such questions.
The structural [[development]] of a system or a system type depends on the structural [[coupling]]s with its environment that the system has to undergo.
[[IS76]]
...one ought to understand the situation as follows: the condition of [[connectivity]] is not a [[sufficient]] condition to bring about the next state. Precisely this issue is addressed by the conception of structural [[coupling]]...
[[IS81]]
There is a variety of [[structure]]s, and the thesis is that different structural [[development]]s are possible as long as [[autopoiesis]] [[function]]s.
[[IS83]]
This is precisely the point of the concept "[[autopoiesis]]." The causalities that occur between system and environment are located exclusively in the domain of structural [[coupling]].
In particular, we must pay more attention to the fact that such a [[coupling]] is, as can be derived from the concept of form, a two-sided [[form]]. This form does not refer to the entire environment, since not everything that exists is structurally coupled with the system. Rather, couplings are highly selective. Something is included and something else is excluded. What is excluded may very well affect the system causally, but only negatively. In contrast, in the domain of structural coupling, possibilities are stored that can be used by the system and be [[transform]]ed into [[information]].
[[IS84]]
...the division of [86] the environment into that which is included and that which is excluded, as an effect of structural [[coupling]], tends to reduce the relevant relations between system and environment and cut them down to a narrow area of influence, and only under such conditions can the system process [[irritation]]s and causalities. Only when not everything affects the system simultaneously, and when, instead, highly selective [[pattern]]s are at the system's disposal, can the system react to irritations and "perturbations" ([[Maturana]]) - that is, understand them as [[information]] and adjust its [[structure]]s accordingly or use its [[operation]]s accordingly in order to [[transform]] its structures.
The reduction of [[complexity]], the exclusion of a mass of [[event]]s in the environment from the possibility of affecting the system, is the condition for the system's ability to do something with as few [[irritation]]s as such reduction permits. Or, to put the matter in the most abstract terms, the reduction of complexity is the condition of the increase in complexity
one must take into account that consciousness and communication occur only if there is structural coupling. It is impossible to imagine that a consciousness would have emerged in the process of evolution if there had been no com munication. It is equally impossible to imagine [[communication]] if there is no [[consciousness]]. Thus, there must have been some sort of coordination that, in referring to different forms of [[autopoiesis]], led to an increase in complexity in the realm of possible content of consciousness, on the one hand, and in the realm of social communication, on the other. It seems to me that language has served as the coupling mechanism.
[[reciprocal presupposition]]
[[IS85]]
In this context, structural [[coupling]] means that [[language]] excludes a lot in order to include very little, and that it can become [[complex]] only for this reason. If we begin with spoken language, we see that noises are excluded except for those few highly articulated noises that can function as language. Even small variations, slight shifts, or the replacement of one sound by another make [[communication]] impossible and [[irritate]] conscious ness. In such cases, it must search for the [[potential]] [[meaning]] because it no longer understands. In the oral and acoustic range, we are dealing with highly [[selective]] patterns. And the same is true for writing. Only very few standardized symbols are suitable for writing, and everything else that can be seen is simply out of the question. Structural coupling is a highly selective form that uses relatively simple patterns. For instance, there are only very few letters in the highly developed alphabetical phonetic writing system. And, in language itself, there are only a few standard ized pitches and acoustical signs. But it is precisely because these signs or sounds are so reduced that they make possible highly complex combinations which, in turn, have an effect on [[conscious]] and communicative processes.
[[irritation]]
This narrow [[bandwidth]] of effective possibilities in combination with the enormous gains in increase, [[accumulation]], and [[probability]]...
[[noise]]
[[IS86]]
It is not just a matter of sporadic effects that occur occasionally. Rather, the structural couplings make sure that consciousness, or the social system of communication, or the brain is constantly supplied with irritations.
First of all, it must be said over and over again that the environment does not bring about the structural determination of the system. Structural [[coupling]]s do not determine the state of the system. One might say that they only supply [[irritation]]s for the system. Alternatively, [[Maturana]] speaks of the "perturbation" of the system. I prefer the terms "irritation" or "[[stimulus]]," or also, if seen from the system's perspective, "[[resonance]] capability". The resonance of the system is activated through structural coupling.
[[IS87]]
As a consequence, concepts such as disturbance, [[irritation]], [[stimulus]], and perturbation now have a different meaning. Now, the question is how a disturbance can be conceptualized internally within the system if one does without the equilibrium model. Presumably the best way would be to think of the system as possessing certain [[structure]]s and thus also a certain range of possibilities for its own operations. This range is very limited, since the definition of what qualifies as poiesis at all is severely restricted. In addition, this range is limited by the constraints concerning what can be processed within a pre-existing structural [[pattern]] and thus without any far-reaching and incalculable structural changes. In this way of thinking, disturbances are always measured against the structures, or in the domain of meaningful occurrences against possible operations, or also expectations that have proven their worth in the system and thus provide [[information]] from that angle. A disturbance, a piece of information, or an irritation provides the system with a relevant choice from a range of possibilities. Such an occurrence can initiate search or identification processes.
[[IS88]]
the range of interpretive possibilities corresponds to the [[speed]] and the [[information-processing]] capacity of the [[system]]. "Disturbance" therefore means the initiation of information process ing that can be handled operationally in the system. [[irritation]]
The University of Bielefeld, for example, is not information. Even if you come here every day, you do not always activate new information that would follow the pattern, "Oh, it is still here!" and then tomorrow you would be astonished again that the university is still here. The University of Bielefeld is a structure that has no informational value. Of course, it has [[meaning]] - after all, you have a specific idea why you come here - but it does not provide new information. This is to say that one must distinguish between meaning [91] or even relative structural invariants and the [[surprise]] effect of a piece of [[information]]. In the second place, it is necessary to construct the concept of information once again like the concept of [[form]], which is to say that one must look at it as a two-sided concept. On the one hand, there is surprise, but, on the other, the surprise comes about only because one had expected something and because one limits the range of possibilities within which a certain piece of information states this and cannot state that. If an acquaintance comes by in his new car, there is a specific range of possibilities concerning what type of car it may be. If he says that he will come by in a new car, one will not expect a deck chair.
[[IS89]]
[img[isomorphism.png]]
There is never correspondence or conformity between [[content]] and [[expression]], only isomorphism with [[reciprocal presupposition]]. The distinction between content and expression is always real, in various ways, but it cannot be said that the terms preexist their double articulation. It is the [[double articulation]] that distributes them according to the line it draws in each stratum; it is what constitutes their real distinction. Visualize graph one as content, graph two as expression.
"Isomorphism, in modern algebra, a one-to-one correspondence (mapping) between two sets that preserves binary relationships between elements of the sets. For example, the set of natural numbers can be mapped onto the set of even natural numbers by multiplying each natural number by 2." -Encyclopedia Brittanica
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
[[Artaud]]
By placing him again, for the last time, on the autopsy table to remake his anatomy.
I say, to remake his anatomy.
Man is sick because he is badly constructed.
We must make up our minds to strip him bare in order to scrape off that animalcule that itches him mortally,
god,
and with [[god]]
his organs.
For you can tie me up if you wish,
but there is nothing more useless than an [[organ]].
When you will have made him a [[body without organs]],
then you will have delivered him from all his automatic reactions
and restored him to his true freedom.
They you will teach him again to dance wrong side out
as in the frenzy of dance halls
and this wrong side out will be his real place.
pp10/11-important [[diagram]]
34, beautiful last two paragraphs
[[actual occurrence]]
[[actual entity]]
[[concrescence]]
[[conceptual prehension]]
[[data]]/[[datum]]
[[eternal object]]
[[feeling]]
[[ingression]]
[[negative]]
[[objective immortality]]
[[physical prehension]]
[[positive]]
[[prehension]]
[[principle of relativity]]
[[Whitehead]]
[[worship site]]s [[phone]] [[digitus]] [[literary]] [[Luhmann]] [[double]] [[SLS]] (screen like surface).
[[language]] [[precede]]s us all, the [[surface]] is born with it. Which is [[outside]], which is the [[inside]]?
What’s the point of anything other than the [[shock]] necessary to kick of [[circulation]] when even our breaks, ruptures and hiatuses are as banal and [[homogenize]]d as can be possible.
[[passing]] and [[passage]]
a passage that at once creates its passing and passage. A [[writing]] that draws a line as it draws pen to page, and draws the person that draws it. A surface that doesn’t exist prior to being traversed by [[intensity]]es, resplendent with all these new forms of [[memory]], so many ways to remember. Remember that memory is the birth of language, well, along with [[technic]]s, that is.
[[occluded center]]
knowledge is always [[bifurcating]] [[knowledge]].. [[bifurcation]]
[[AS1 p147-1]]
Each one of his atoms, termed [[actual entity]]s, or [[actual occasion]]s, is an [[organism]] that grows, matures, perishes.
[[Key to Process and Reality]]
[[actual entity]]s are the [[final]] [[real]] things of which the [[world]] is made up. There is no going behind actual entities to find anything more real...
[[concrescence]] is the name for the [[process]] in which the [[universe]] of many things acquires an [[individual]] [[unity]] in a determinate relegation of each item of the [[many]] to its subordination in the constitution of the novel one. An [[actual occasion]] is nothing but the unity to be ascribed to a particular [[instance]] of concrescence. This concrescence is thus nothing else than the real internal constitution of the actual occasion in question.
[[KPR 6-1]]
...simple physical [[feel]]ings will also be called [[causal]] feelings (or feelings of causal efficacy). The [[power]] of one [[actual entity]] on the other is simply how the former is [[objectified]] in the constitution of the other.
[[KPR p9-1]]
A [[feeling]]-ie a [[positive]] [[prehension]]-is essentially a [[transition]] effecting a [[concrescence]]. Its complex constitution is analysable into five [[factor]]s which [[express]] what that transition consists of, and effects. The factors are 1) the [[subject]] which [[feel]]s, 2) the initial [[data]] which are to be felt, 3)the [[elimination]] in virtue of [[negative]] prehensions, 4)the [[objective]] [[datum]] which is felt, 5) the [[subjective form]] which is how that subject feels that objective datum... the subjective form is immediate [[novel]]ty... the subjective form is the ingression of novel form peculiar to the new [[particular]] fact...
A feeling can be genetically described in terms of its [[process]] of origination, with its negative prehensions whereby its many initial data become its complex objective datum [see diagram p10]
[[KPR p11-1]]
...the re-enaction is not perfect. The [[feel]]ing is always [[novel]] in reference to its [[data]]; since its [[subjective form]], though it must always have reproductive reference to the data, is not wholly determined by them.
[[KPR p12-1]]
The [[process]] of [[concrescence]] is a progressive [[integration]] of [[feeling]]s controlled by their [[subjective form]]s. In this [[synthesis]], feelings of an earlier phase sink into the [[component]]s of some more complex feeling of a later phase. Thus each phase adds its [[element]] of [[novel]]ty, until the final [[phase]] in which the one complex [[satisfaction]] is reached
[[KPR p13-1]]
An [[actual entity]] is at once the [[subject]] experiencing and the [[superject]] of its own experiences... subject is always to be construed as an abbreviation of subject-superject
[[KPR p14-1]]
The philosophies of [[substance]] presuppose a [[subject]] which encounters a [[datum]], and then reacts to the datum. The philosophy of [[organism]] presupposes a datum which is met with [[feeling]]s and progressively attains the [[unity]] of a subject. But with this doctrine, [[superject]] would be a better term... the superject is the purpose of the [[process]] originating the [[feel]]ings... It is better to sat that the feelings //aim at// their subject, than to say they //are aimed at// their subject... it is in this way an [[actual entity]] satisfies [[Spinoza]]'s notion of Substance: it is self-causing... [relatedness as primary over quality] relatedness is wholly concerned with the appropriation of the dead by the living-what is to say, with the [[objective immortality]] whereby what is divested of its own living immediacy becomes a [[real]] [[component]] in other living immediacies of [[becoming]].
[[KPR p15-1]]
The [[thing]]s which are [[temporal]], [[actual entity]]s, arise by their participation in the things which are eternal, [[eternal object]]s... The eternal objects are the pure [[potential]]s of the [[universe]], and the [[actual entity]] differ from each other in their [[real]]ization of potentials.
[[KPR p15/16-1]]
The [[function]]ing of an [[eternal object]] in the self-creation of an [[actual entity]] is the [[ingression]] of the eternal object in the actual entity. An eternal object can be described only in terms of its [[potential]]ity for ingression in the [[becoming]] of actual entities; and its analysis discloses only other eternal objects. It is a pure potential. The term ingression refers to the particular [[mode]] in which the [[potential]]ity of an [[eternal object]] is [[real]]ized in a particular [[actual entity]]. contributing to the definiteness of that actual entity.
[[KPR p21-1]]
[[prehension]]s of [[actual entity]]s... are termed [[physical prehension]]s; and prehensions of [[eternal object]]s are termed [[conceptual prehension]]s.
[[KPR p21/22-1]]
The [[potential]]ity for being an [[element]] is a [[real]] [[concrescence]] of many [[entity]]s into one [[actual]]ity, is the one general metaphysical character attaching to all entities, actual and non-actual ([[virtual]]) [ie to [[actual entity]]s and [[eternal object]]s]. Every item in its [[universe]] is involved in each concrescence. In other words, it belongs to the natureof a [[being]] that it is a potential for every [[becoming]]. This is the [[principle of relativity]]. It asserts that the [[notion]] of an entity means 'an element contributory to the [[process]] of becoming.'
[[KPR p22-1]]
This doctrine of the inherence of the [[subject]] in the [[process]] of its production requires that in the primary phase of the [[subjective]] process there be a [[conceptual]] [[feel]]ing of subjective [[aim]]. [[teleonomy]]. The immediacy of the [[concrescence]] of the subject is constituted by its living aim at its own self-constitution. The initial stage of its aim is an endowment which the subject inherits from the inevitable [[order]]ing off things, conceptually realized in the nature of [[God]].
[[KPR p23-1]]
An [[actual entity]] has a threefold character, 1) it has the character given for it by the past; the [[objectification]]s of the actual entities in the [[actual]] [[world]], relative to a definite actual entity, constitute the [[efficient]] causes out of which that actual entity arises, 2) it has the [[subject]]ive character aimed at in its [[process]] of [[concrescence]]; the subjective [[aim]] at [[satisfaction]] constitutes the [[final]] cause, or lre, whereby there is determinate concrescence, 3) It has the [[superject]]ive character, which is the [[pragmatic]] value of its specific satisfaction qualifying the [[transcendent]] creativity; that attained satisfaction remains an [[element]] in the [[content]] of creative purpose.
Discusses how [[God]] fits this
[[KPR p28-1]]
[[God]] is the [[organ]] of [[novel]]ty, [[aim]]ing at [[intensification]]. He is the lure for [[feel]]ing, the [[eternal]] urge for [[desire]]. The primary [[element]] in the lure for feeling is the [[subject]]s prehension of the [[primordial]] nature of God.
...//God's purpose in the creative advance is the [[evocation]] of [[intensity]]s//
[[KPR p30-1]]
[[creativity]] is not to be conceived as an 'external gency with its own ulterior purposes'-it must not vio;ate the [[ontological principle]] but must be explicable by an appeal to [[actual entity]]s... creativity is the [[concept]] that must account for the perpetual "creative advance into :ty" that is the cornerstone of [[Whitehead]]'s [[process]] [[philosophy]]...
An [[actual occasion]] is a [[novel]] entity diverse from any entity in the 'many' which it unifies. Thus [[creativity]] introduces novelty into the [[content]] of the many, which are [[universe]] [[disjunctive]]ly.
[[KPR p31-1]]
The [[creative]] [[act]]ion is the [[universe]] always [[becoming]] [[one]] in a particular [[unity]] of self-experience, and thereby adding to the [[multiplicity]] which is the universe as many
[[KPR p33-1]]
The ultimate [[petaphysical]] prinsicple is the advance from [[disjunction]] to [[conjunction]], creating a [[novel]] [[entity]] other than the entities given in disjunction.
[[KPR p33/34-1]]
The [[process]] of [[concrescence]] is divisible into an initial stage of many [[feel]]ings, and a succession of subsequent phases of more [[complex]] feelings integrating the earlier simpler feelings, up to the [[satisfaction]] which is one complex [[unity]] of feeling. This is the [[genetic]] analysis of satisfaction...
..physical [[time]] [[express]]es some features of the [[grow]]th [of the [[actual entity]] qua [[process]] that grows from '[[phase]] to phase] but not the growth of the features.
[[KPR p34-1]]
The [[analysis]] of an [[actual entity]] is only intellectual. Each actual entity is a [[cell]] with [[atom]]ic [[unity]]. But in analysis it can only be understood as a [[process]]; it can only be felt as a process, that is to say, as in [[passage]].
[[KPR p36-1]]
...[[complex]]ity' means the realizations of [[contrast]]s, of contrasts of contrasts, and so on; and [[balance]] means the absence of [[attenuation]]s due to the elimination of contrasts which some [[element]]s in the [[pattern]] would introduce and other elements inhibit. Unless there is complexity, ideal [[diversity]]s lead to physical impossibilities, and thence to [[impoverishment]]. It requires a complex constitution to stage diversities as consistent contrasts. [[consistency]]
[[KPR p37-1]]
Each [[actual entity]] is conceived as an [[act]] of [[experience]] arising out of [[data]]. The objectifications of other [[actual occasion]]s [[form]] the given data from which an actual occasion originates.... It is a [[process]] of [[feeling]] the many data, so as to absorb them into the [[unity]] of one individual satisfaction.... feeling is the term used for the basic generic [[operation]] of passing from the objectivity of the data to the subjectivity of the actual entity in question... Feelings are [[vector]]s; for they feel what is //there// and [[transform]] it into what is //here//. We thus say that an [[actual occasion]] is a concrescence effected by a process of feelings...
Each process of appropriation of a particular element is termed a prehension. I have adopted the term [[prehension]] to [[express]] the activity whereby an actual entity effects its own [[concretion]] of other things. [seems that he's describing something akin to [[mediation]] and [[individuation]] in [[Simondon]], as well as [[emergence]], and [[Spinoza]]'s idea of the [[body]] conjugated with [[Deleuze]]'s [[larval selves]]
[[KPR 7-1]]
An [[actual entity]] has a perfectly definite bond with each item in the [[universe]]. This determinate bond is its [[prehension]] of that item. A [[negative]] prehension is the definite [[exclusion]] of that item from [[positive]] contribution to the [[subject]]'s own real internal constitution. A positive prehension is the definite inclusion of that... All actual entities in the actual world, relatively to a given actual entity as subject, are necessarily felt by that subject, though in general vaguely. A [[feeling]] cannot be abstracted from the actual entity entertaining it. This actual entity is termed the subject of the feeling. It is in virtue of its subject that the feeling is one thing [([[concrescence]]?)]. If we abstract the subject from the feeling we are left with many things. Thus a feeling is one aspect of its own subject.
[[KPR p8-1]]
...an [[actual entity]] is constituted by its [[prehension]]s...
The first analysis of an actual entity, into its most concrete [[element]]s, discloses it to be a [[concrescence]] of [[prehension]]s, which have originated in its [[process]] of [[becoming]]. All further analysis is an analysis of prehensions. Every prehension consists of three factors: The subject which is prehending, namely, the actual entity in which that prehension is a concrete element; the [[datum]] which is prehended; the subjective [[form]] which is how that subject prehends that datum.
[[KPR p9-1]]
Describe the pre individual in digital prose, neuromancer, describe the heating up and cooling off of intensity as well
With the advent of the camera, everything on the digitus has become a device
There is no language in itself/heterogeneous reality-we absorb an idiom and make it play, differentiate it, play our idiom-this difference is our supplication, our donation, our adornment in the daily rituals of life to bring forth our god
The inability of components to cohere into unity, and they know this, they prevent this, they make it so you know everyone’s a bit broken, a bit sad, a bit fucked up
Not a transition to control societies but the birthing pains of the inorganisms, no longer the organic organicity of organisms, or us, the organisms paired with inorganic, organized matter, but the proper inorganic inorganism
Mind section
Discussion of the preindividual field of the digitus and its relation to all, actual and virtual, generating and cleaving both. Disarticulation of i from we. Digital prevents the we, and establishes (what we are calling ) ‘mind’ discussion of the alignment synthesis; this brings us into contact simultaneously with new individuation, new mind, new components, new ways of connecting, new traces, this is a fundamental operation of mass data processing, instantly taken up by the inorganism. Unorganism? Also, in binding itself as a new set of component (may or may not crystallize an occluded center, may simply align a series of components that only exist around varied centers) it is a new bound level, needing yet a new trip to the pre individual
The inorganism knows the effects of the alignment synthesis and functions primarily off them, we only know their effects well after they’re effecting us, and we make a new mind (obesity and diabetes leads not to a regress of the inorganisms birthing pains but births a new industry, need a new word for industry to reflect its parasitic, devouring nature, is this the digitus as global rather than handy device driven digitus?)
Spinoza and the body, and emotions. Aggregates of relations, then taken as terms of a relation, larval selves forming at all levels of these relations. For Simondon, that which does the relation, that which is the mediate, that is that which undergoes individuation. Our mind as humans, boundary, object, mind, show how boundary+object are ways of individuating these aggregates of relations to demonstrate a non-representational concept of this new god, and how we are the larval selves spawned by this god of unorganics, and in our functioning spawn the grand inorganism as such. This comes after the alignment synthesis, which allows the transversalization of the now disparate levels of these aggregate relations, grasping hold of and bringing forth, literally producing the transformational forms that require too much energy to bear, splitting open open these aggregates and spawning ever more larva for and of itself
Aggregates of relations, lines drawn by events, components made to disjunctive cleave and blend, circulating across countless screens through countless minds, intensities and intensive passages that write out their surface as they go. Heating up and cooling down, rhythm of diastole systole, less parts more intense, cooled off with more parts more analysis more strata etc (Aggregates of what, exactly?)
No longer power, just the twining of belief/desire. Power is abolished, cannibals and carnivals reign instead (Baudrillard)
Aggregates functioning in time as assemblages, toss out auto poetic nodes, and virtual existences of spaces, rough patches set to form assemblages of enunciation. The BwO is an egg, this aggregate as an egg that when cracked spills out the larva
Bring in the subject wandering over the surface of the digitus, collecting components, wearing them like clothes, what we most think about, and what we use to think it determines our minds as such
The blending together of components either in order to stratify, to lock us down, to subject us to the algorithmic whims of our god, or to free us, us supplicants, connecting unheard of intensities in directions ever new and ever the more available
P82/83 and the [[tensor]] of ATP, this could well be an example of how the ATP tensor comes to generate new [[statement]]s, [[space]]s, [[event]]s, [[composition]]s, [[assemblage]]s, etc. tensor as a fundamental operation of the components brought into play in the actualization of each event, which allows for it to be individuated and always bring something of the [[new]] with it.
How do networks of mind+components (within a boundary) come to stabilize themselves in time/habits, and instantly stabilize themselves in a new/unique occurence of an event? we do this all the time, so very casually, and yet this question is not even asked, let alone answered
We would need to have a [[function]]al hypothesis, I mean, not defining an [[essence]] of the Baroque, but defining something that the [[Baroque]] would be presumed to [[create]], an [[operate]]ion... the Baroque creates [[fold]]s
[[Leibniz, Second Seminar]]
...something [[mechanic]]al is a [[finite]] [[machine]], it's a machine whose ultimate pats are not machines, whereas a machine... goes on to [[infinity]]. quotes para 64 from [[Monadology]]...what is the [[whole]] if not the [[unfold]]ed [[part]]? What is the part if not the whole that is [[envelop]]ed and [[pleat]]ed?
...there is no [[soul]] without the body... at death, our body is enveloped to infinity, such that it becomes livable [[infinity]]....
the infinitely machined machine that you can grasp on two [[level]]s: either infinite [[contract]]ions-the body infinitely folded onto itself-or infinite [[extension]]-the body unfolded on itself, the glorious body of the final [[judgement]]... [first aspect of vitalism] there is an infinity of [[organism]]s in the organism, that is, an infinity of organisms are folds into each organism.
[[L1-9]]... [[vital]]ism=[[machinism]]
...what will the second aspect of [[vitalism]] be? It's that an [[organism]] is always created from a portion of [[matter]] insofar as it is animated by [[simple]] [[element]]s... The first aspect of vitalism is an organicism; the second aspect is what is the organism made of?
Well, on the second [[level]], it is said, [[organic]] [[material]] is made of simple [[element]]s animating a portion, however restrained it might be, of [[inorganic]] matter.
The first aspect of vitalism was increases and decreases, that is, [[envelop]]ements and [[develop]]ments. The second aspect of vitalism is [[diffusion]], the diffusion of [[animalcule]]s in all portions, whatever they might be, of inorganic matter. And this is as if he was telling us – there are all sorts of [[Leibniz]]’s texts suggesting this – it’s as if he was telling us, you understand, in a pond, or in a lake – the treatment of waters in the Baroque – in a lake or a pond, everything is not a fish, but there are fish everywhere [in lakes or ponds]. Everything is not a fish in the world, but there are fish everywhere. It’s the second aspect of vitalism. This time, it returns to the [[expression]] about simple elements diffused in every [kind of] portion of inorganic matter, however small it might be.
And in the correspondence with Arnauld, Leibniz is going to follow a comparison – here again [are] the rapports of harmony, consonances, between two cases of matter, the lake full of fish, on one hand, and on the other, the chaos of marble.[16] His texts are sublimes, very, very beautiful. The chaos of marble appears to be the hardest body. And Leibniz is going to show that [Deleuze speaks quite loudly here, with emphasis] the chaos of marble does not differ in nature from the pond full of fish; and in the chaos of marble as well, there is an infinity of diffused animalcules. [Pause]
So, good… Fine. Everything is not a fish, but there are fish everywhere. The world is a pond full of fish. I would say that this vitalism matters to us because it confirms … What does it confirm? The treatment in bulk. I am summing up our results: the treatment in bulk as a possible definition of the Baroque operates on all levels by folding and unfolding. [Pause] Second concluding proposition: the folds and unfolds go all the way to infinity. This is the difference of the Baroque from all other formations. Third conclusion: if this is so, then bodies are not hard bodies, but elastic bodies and, at the extreme, fluid bodies, and their paths are not rectilinear, but curved, [Pause] and their operation consists in perpetually rounding off angles, avoiding the angle, necessarily through a curvature, through a variable curvature.
[[L1-10]]
...we proposed the following idea: The [[baroque]] is what [[treat]]s [[matter]] in [[bulk]], that is, through [[fold]]s and [[pleat]]s going on to [[infinity]]. Now, I would say that the Baroque is what treats [[form]] through the [[genetic]] [[element]] of [[inflection]]...
It's a [[fundamental]] [[idea]] for [[Leibniz]]. The [[point]] needs only its [[spontaneity]]... the point's spontaneity is [[inflection]]. The point only needs its own spontaneity to follow a curve of inflection.
[[L12-1]]
I am saying [that] the [[Baroque]] is located where matter does not cease being [[pleat]]ed, being pleated onto itself, or where the [[soul]] does not cease being [[fold]]ed, the pleats of [[matter]] (les replis de la matière) and the folds of the soul (les plis de l’âme).
mentions paragraph 61 of the [[Monadology]]
..the folds of the soul. This expression is beautiful. You have to learn it by heart. Yes, it’s gotten lost. “It [the soul] could never bring out all at once everything that is folded into it because its folds go on to infinity." But this [expression] gives us something. The fold, the Baroque fold goes on to [[infinity]]. The fold that goes on to infinity, it’s the pleat since it’s obvious that it’s not the Baroque that invented the fold. For example, in [[sculpture]], there are always folds, if only through the presentation of clothing. A piece of clothing creates folds. Yes, certainly, a garment creates folds; every fold is not Baroque. Fine. So much the better. Our hypothesis is fine since we already have the differential characteristic of the Baroque. Yes, every fold is not Baroque, but not every fold goes on to infinity. When the fold goes on to infinity, then it’s Baroque.
Oh, but what can that even mean, the fold going on to infinity? So, every fold is pleated; that does not [[limit]] its usefulness – this is indeed what [[Leibniz]] says because, on the fold of the soul, he says: since they go on to infinity, these are pleated. That does not limit their usefulness for us. Above all, we will speak of the pleats of matter and the folds of the soul. Are there two levels, and should the Baroque thus be on two [[level]]s, one for the pleats of matter and one for the folds of the soul? This is already very important for us for then another question would be posed: what is the relation between the pleats of matter and the folds of the soul, and vice versa? You indeed sense that between the [[aggregate]]s of folds, can a relation of causality be established? We can certainly establish [[biunivocal]] correspondences. This will be a system – hey, a system! – a [[system]] of correspondences between the pleats of matter and the folds of the soul.
[[L1-1]]
I would sat that the [[treat]]ment of [[matter]] is a treatment in [[bulk]]. The [[Baroque]] treats matter in huge [[mass]]es and the [[notion]] of mass is [[fundamental]] within the Baroque...
the treatment of matter is through [[soft]]ening. The masses are soft, the treatment of mass not only in [[bulk]] but in soft masses... It implies something [[essential]]... a rounding off of angled [[form]]s... something fundamental concerning the Baroque... the right [[angle]] is avoided...
[[L1-2]]
What does this mean, this [[tendency]] toward [[soft]]ness, toward the [[fluid]]..? And at the [[extreme]], I say that it's a conciliation of [[mass]] and [[water]].
The originality of [water features in [[garden]]s of the [[Baroque]], is that water itself acts massively ([[faire]] masse).. and in [[opposition]] to clear streams... In the end, fluid is massive just as mass is fluid... at this [[level]] everything [[operate]]s in bulk, the solid fluid that is, in face, a soft solid, the fluid that is, in fact, a massive fluid with [[turbulence]], and yet in [[consonance]] with other masses.
Do you sense the birth of another[[ theme?]] It’s that among the masses, there can only be harmony, [[harmony]] of masses, harmony as [[resonance]] of masses. Among the masses, there must be harmonies. And what does that mean? Well, it means that the masses of leaves and the masses of waters respond to one another, entering into [[counterpoint]]. And why into counterpoint? They are both audible (sonores). There are audible masses in correspondence with visual masses. The audible masses are called [[uproar]] (rumeurs), and the uproar of leaves must respond to the uproar of waters.
Understand, simply, if this is an art of mass, understand that it’s an art of the soft, an art of the soft. Why is the mass soft?'' If that’s what creates mass, it’s a way of saying that mass cannot be engendered starting from individuals, from ultimate individuals. There are no ultimate individuals.'' This treatment is necessarily the mass treatment operating through softening, that is, through rounding off of angled forms. How to say what we are sensing here, that the angled form is the hard, that the rounding off of angled forms is the soft?
What does it mean to [[create]] [[fold]]s? .. Well, it's [[round]]ing off [[angle]]s, creating folds. We are not very far into this, but that's it: to round off angles, but you sense that we have to change this [[expression]] for many [[thing]]s... Perhaps [[Leibniz]] never stopped rounding off [[angle]]s.. the [[Baroque]].. how does it create folds? By undertaking a treatment in bulk, and this treatment in bulk undertakes this by rounding off angles, by constituting [ [[form]]s of] soft matter.
[[L1-3]]
[[matter]] is [[treat]]ed so much in [[bulk]] by [[Leibniz]] that it is never separable from a [[term]]... the [[aggregate]]. Matter proceeds though the aggregate, and the aggregate is the [[law]] of matter. The [[soul]] will have no less of a law as well, and the whole problem in Leibniz’s philosophy will be what the correspondence between these two laws is. I am saying immediately that the soul’s law is not the aggregate. It’s the [[series]], but you sense perhaps that the series is also something very Baroque. Why? For the moment, that’s beyond us. Matter is divided into aggregates, and the aggregates are themselves divided into aggregates. An entire [[uproar]] of matter, On the level of matter, you will find only aggregates infinitely [[divisible]] and infinitely [[compose]]able. So, I am just saying that aggregates ignore [[angle]]s. Aggregates are [[curve]]s. As they go all the way to infinity, a curve that goes to infinity is a [[fold]]. Aggregates [[create]] folds.
[[Leibniz]] creates a [[physic]]s of [[body]]s that he himself calls [[elastic]]... [[elasticity]]... is the [[degree]] of [[fluid]]ity of the body. He is opposed to [[Descartes]]... who conceive[s] of physics above all as being about the hard body. For Leibniz, there is no hard body.... Every mass is composed of mass, all the way to infinity, no more than there is a hard body, every body being elastic, its elasticity being equal to its degree of fluidity. [This is] a physics of the fluid or of the body’s elastic force – in Latin, vis elastica, Leibniz says.[5]
[[conatus]] of movement is the [[difference]], the [[differential]] between movement at one state and movement at a another, as in the case of measuring [[acceleration]]. As there is a [[possible]]ty of [[infinite]] [[analysis]] between two moments, there is an infinite sum of conatuses which is like degrees through which the body passes when the speed of it's movement increases... or slows...
[[L1-4]]
There is an [[infinity]] of [[degree]]s through which the [[mobile]] passes... when its [[speed]] increases or decreases... this is the [[translation]] of the [[elastic]]ity of the [[body]] in terms of [[movement]]. This [[regime]] of movement is the elasticity of the body... in a [[physic]]s of the elastic body, no [[rectilinear]] movement is [[possible]]. One must always round off, and round off to infinity...
the elastic body is a critique of the very [[image]] of the hard body... you can only think of it [elastic body] on a [[curve]], with variable curvature...
The [[form]]ation of hard bodies are [[rectilinear]] and [[angular]].
The Leibnizian [[aggregate]]s are [[mass]]es [[infinite]]ly [[compose]]d of masses. Henceforth, they are [[curve]]s. We can’t get away from it: you repeat that to yourself enough for you to understand it. I can do no better, because if you don’t understand, it’s because you haven’t yet repeated it enough in your mind. [[Soft]] masses are necessarily curves; [[elastic]] masses are necessarily curves.
[[L1-5]]
What is the [[fold]] that goes all the way to [[infinity]]? it's the [[curvature]] with a [[variable]] [[surface]]. It's the line with variable curvature or the surface with variable curvature.
...we are establishing guideposts. First, [there’s] the [[body]] in general (quelconque), good, with its [[enlarge]]ment and its lowering. And then, [there’s] the second guidepost, the [[elastic]] or even [[fluid]] body. And all that is a way of saying: what does it mean to create folds? [[matter]] creates folds; it doesn’t follow the angles. Understand? Good. That’s what [[Leibniz]]’s philosophy is. [Pause]
Let’s confirm a third and final guidepost, the living body, the folds of [[flesh]]. It’s a [[constant]] [[theme]].
Good, but I am saying [that] the living body… that in fact, it’s the least of things to say that the living body, or flesh, creates folds – folds and [[pleat]]s of flesh. Fine, but why does it create folds? For two reasons, for two reasons, I believe, and here, we have to return to all sorts of ancient biological doctrines in which [[Leibniz]] participated. You have to place yourself with the initial astonishment at the discovery of the microscope, and you have to resituate all this philosophy of life under two expressions, which are not literally in Leibniz’s works, but the spirit is there. The first [[expression]] is: “All flies are within the first fly”; all flies are within the first fly. I cannot say that this is signed by Leibniz, or that Leibniz said it or repeated it, but it’s a commonplace of the philosophy of life at the end of the seventeenth century, one that comes to be confirmed by the discovery of the microscope. What does this mean, “all flies are within the first fly”? It means that the first fly that God created contained all the others, that is, contained the infinity of flies to come. It’s a lyrical expression to qualify what is called the pre-formation of germs, or the point of view of pre-formation. The primitive egg contained all the eggs to come, but that would mean nothing if we only said the primitive [[egg]] contains the organism. In other words, the primitive egg envelops the organism, and envelops as well all the organisms to come of the same species. It’s the thesis of [[pre-formation]].
It [[envelop]]s: what does that mean? It means that there is something in mathematics called a kind of [[homothety]], a homothety from small to large, or rather from large to small, however small it might be. The [[organism]] envelops organisms to infinity. The first fly contains all the flies to come? Yes, but in a miniscule [[state]], and each fly, in turn, contains an infinity of flies, smaller and smaller flies. If you will, this is the simple reason, the vulgarized vision of the theory of preformation of germs, at the level of the living. The organism contains an infinity of organisms, simply smaller and smaller, and what does that mean? [That means] that the whole [[concept]] of life is going to be encompassed starting from [[movement]]s – here, I come again to [[operations]] – starting from the operations of envelopment and [[develop]]ment.
[[L1-6]]
[[envelop]]ement... to envelop is to [[create]] [[fold]]s; to [[develop]] is to [[unfold]], and in Latin, the language spoken so often in that era, this is constant, the pairs implicare-explicare, to [[implicate]]-to [[explicate]] ; involvere-devolvere, to [[envelop]]-to [[develop]] ; involvere-evolv [Deleuze corrects himself] Evolvere… The three couples: involver-evolver, are strictly synonymous Impliquer-expliquer: that which is developed, is explained; that which is enveloped, is implicated, or [[evolve]]s... But what does this mean, to evolve? [it's not evolution as we'd understand it] If means, if you prefer, to [[increase]] just as involver means to [[diminish]], or if you prefer once again, evolver means to [[unfold]] exactly as the butterfly unfolds. It unfolds, or rather it refolds into the cocoon, but the living being passes through alternation of folding and unfolding. To evolve is to unfold one’s parts. The organism unfolds when it unfolds its own parts, and folds itself when it pleats its own parts. Pleating its own parts, it becomes smaller and smaller. Unfolding its own parts, placing them outside one another, it becomes larger and larger. Evolution is a matter of increase, with conservation of similarity, hence the [[homothety]], you see?.. I am telling you immediately so that you will sense the extent to which, in the living [[body]], the notion of the folds finds its importance.
So there are [[rythm]]s of [[fold]]s and [[unfold]]s that traverse the living being. That is what creates the [[flesh]]... that's irreducible to [[infinity]], on the contrary, [[expressible]], unfolding its own parts... What is his [[vitalism]]?... the living being is a [[machine]]. [not [[mechanist]]ic]
[[L1-8]]
We were dealing earlier with the level of [[matter]], defined as the [[level]] of [[aggregate]]s, if you will, the lowest level. Now, we are going to deal with a higher level, and in fact, we are following Wölfflin’s path who speaks about what exists above this first level of lowered and [[soft]]ened [[matter]]. And this second level that we are considering is now obviously that of [[form]], or formal [[cause]], or if you prefer, the [[genetic]] [[element]] of form. And just as earlier there was a status of matter, now we must expect there to be a certain status of the [[soul]]. Just as matter never ceased [[fold]]ing and [[unfold]]ing, well, there are folds and [[pleat]]s in the soul. As we saw in the [[Monadology]], paragraph 61: there are folds and pleats in the soul. Everything suggests to us that perhaps, for [[Leibniz]], these folds and pleats in the soul are like ideal elements of form. But here we will require lots of guideposts and explanations in order to understand what that might mean, ideal elements of form, genetic elements of forms. The souls would contain the genetic elements of forms, but it would contain the genetic elements of forms insofar as it creates folds and pleats, or at least insofar as there are folds and pleats within it. You sense that here as well, Leibniz is returning to find that Descartes’s conception of the souls is rather like a ridiculous summary.
Good, so what are these, the ideal elements? Folds would be ideal and genetic elements that would account for forms. And in other words, the genetic element of the fold is what? I am saying that the genetic element of the fold, is the [[point]] that describes the [[curve]], the point on a curve, the point on a curve with [[variable]] curvature. [Deleuze returns to the board]. I am offering a kind of drawing of this in a very general form. [He draws on the board] There. You recognize the curve with variable curvature. The simplest case is the curve with invariable curvature, I would say. [He sits down again] We can stop there because you have understood everything; I mean that all of our work this year solely concerns – over a long stretch of time – commenting on this figure. [Unclear what figure this is from the context]
What is this figure, the curve with variable curvature, or the curve with constant curvature? I would say that is an [[inflection]], it’s an inflection.[17] What is an inflection? An inflection – I am generally using language from mathematics – the inflection of a line is a [[singularity]], that is – oh, it’s not complicated – a singularity is something that happens to a line; it’s an event, something that happens to a line, the curvature. We will call it point of inflection; it’s a singular point. Every [[singular]] point is not an inflection, but the point of inflection is a singular point, the singular point of this inflection. In general, singularities are not independent from an axis of coordinates, but the inflection is independent of any axis of coordinates. It does not assume any [[coordinate]]s
That’s what I want to ask: Can we say that there is a genetic irreducibility of the inflection? That is, we have to grasp the inflection as the production of an ideal genesis, as genetic element, that is, as the genetic element that endangers forms. There you are. It seems to me… I cannot say that… It seems to me that this is how it is in Leibniz. The element that engenders forms, the genetic element of forms, is not the rectilinear straight line. It’s the curve with constant variation, the curve with variable curvature, or inflection. [It’s the] irreducibility of the inflection; you still sense this first session’s obsessive theme, always rounding off angles.
[[L1-11]]
...what is given, I'd say, at the [[extreme]], could always be called a [[flow]]. Flows are what are [[given]]s, and [[creation]] consists in [[divide]]ing, [[organize]]ing, [[connect]]ing flows in such a way that a creation is [[drawn]] or made around certain [[singularity]]s [[extract]]ed from flows... [ [[philosopher]]s create [[concept]]s] a concept is not at all something that is a given... the concept is a [[system]] of singularities appropriated [preleve] from a thought flow. A philosopher is someone who [[invent]]s concepts...
just as there is a biological flow, there is a [[vital]] flow, there is a flow of thought... the philosopher is the one who would know or who would propose to create concepts appropriated form the thought flow. Imagine the universal thought flow as a kind of [[interior]] [[monologue]], the interior monologue of everyone who thinks... For a great [[music]]ian, one can also conceive of a [[continuous]] acoustic flow-perhaps that is only an [[idea]], but it matters little if the idea is justified-that traverses the [[world]] and even encompasses [[silence]]...
[[truth]] is always subordinate to the system of concepts of which one [[dispose]]s. [[dispositif]]?
[[Leibniz, First Seminar]]
The [[principle of sufficient reason]] must be [[express]]ed or can be expressed as follows.... everything that happens to a [[subject]] must already be contained in the [[notion]] of the subject.
[[L81-8]]
...the [[concept]] of [[inherence]]. Everything that is said with [[truth]] about something is [[inherent]]to the [[notion]] of this something.
[[L81-11]]
...crossing the Rubcon has a cause; this cause itself has multiple [[cause]]s, from cause to cause, into cause from cause and into cause from cause from cause. It's the whole [[series]] of the [[world]] that passes there, at least the [[antecedent]] series. [he demonstrates the same for effects].
[[L813-1]]
In conformity with the [[principle of sufficient reason]], if you have stated that what happens to a particular [[subject]] and what personally concerns it, what you [[attribute]] for it with [[truth]] [etc]., belongs to the [[notion]] of subject, that is, is encompassed in this notion of the subject, you cannot stop, one must say that this subject contains the whole [[world]]. It's no longer the [[concept]] of [[inherence]] or inclusions... it's the concept of [[expression]]...the notion of the subject [[express]]es the [[total]]ity of the [[world]]... [an [[event]] ] stretches to [[infinity]] backward and forward by the double interplay of [[cause]]s and [[effect]]s...
This was the first great reconciliation of the [[concept]] and the [[individual]]. [[Leibniz]] was in the [[process]] of [[construct]]ing a concept of the concept such that the concept and the individual were finally [[becoming]] [[adequate]] to one another.
[[L81-14]]
...it was always considered as going without saying that the [[individual]] as such was not comprehensible via the [[concept]]. It was always understood that the [[proper name]] was not a concept. Indeed, "dog" is certainly a concept but Fido is not a concept. There is certainly a dogness about all dogs... but there is no Fido-ness about all Fidos. [[Leibniz]] is the first to say that concepts are proper names, that is, that concepts are individual [[notion]]s. There is a concept of the individual as such... He has to remain fixed on [[singularity]], on the individual as such... this is the perpetual [[expression]] in his works: [[substance]]-for him there's no difference between substance and subject.... substance is individual.
un[[fold]] is mentioned...
Since each substance expressed the world, or rather as he says, each substantial notion, each notion of a subject... you express the [[world]], in all times... un[[roll]]
[[L81-15]]
What [[distinguish]]es one [[subject]] from another?... since each one of you [[express]]es the [[total]]ity of the [[world]]...? It's odd, this [[concept]] of [[expression]]...
what distinguishes an individual substance from another is not very difficult. To some extent, it has to be irreducible... each [[notion]] of [[subject]] has to encompass this [[total]]ity of the [[world]], has to express [it]... but from a certain [[point of view]] [[perspectivism]]
He is going to say that each individual notion expresses the totality of the world, yes, but from a certain point of view.... what constitutes the individual notion as individual is point of view. And that therefore, PoV is deeper than whoever places himself there. At the basis of each individual [[notion]], there has to be a point of view that defines the individual notion. If you prefer, the [[subject]] is second to the point of view.
[[L81-16]]
So, we cannot [[define]] [[point of view]] by the [[subject]]. It's the subject that must be defined in its irreducible character, that is, [[singular]] character, in its [[singularity]], in its own [[individual]]ity-its the subject that refers to a point of view.... the subject is constituted by the point of view and not the point of view [as] constituted by the subject...
An analysis of point of view as [[sufficient reason]] of subjects, that's the sufficient reason of the subject. The individual [[notion]] is the PoV under which the individual [[express]]es the [[world]]. It's [[beautiful]] and even [[poetic]]
[[L81-17]]
if each [ [[substance]] ] [[express]]es a [[universe]] and from its [[point of view]], there is, at the extreme, a multiplication of universes according to the [[aggregate]] of all PoV's...
I maintain that the new [[concept]] of PoV is deeper than even the concept of the [[individual]] and individual substance. It is PoV which will define [[essence]], individual essence. One must believe that to each individual [[notion]] corresponds a point of view. But understand, this gets complicated because this point of view would [be] valid from birth to [[death]] for an individual. What would [[define]] us is a certain point of view on the world. Fine.
[[L81-18]]
...its the opposite, it's the [[subject]] that depends on the [[point of view]]. So, I can say, each subject [[express]es the [[world]] from a point of view, from a determined point of view. But what [[determine]]s this point of view?
..[[Leibniz]].. is going to tell us... each of us expresses the [[total]]ity of the [[world]], only he expresses it [[obscure]]ly and [[confused]]ly. Obscurely and confusedly means what in Leibniz's vocabulary? That means that the totality of the world is really in the individual, but in the [[form]] of the [[concept]] Leibniz creates, in the form of [[minute perception]]s. And what are these minute perceptions? Here we have something very [[bizarre]]... These are [[infinite]]ly minute perceptions, in other words, [[unconscious]] [[perception]]s... I express the entire world, but obscurely, confusedly, like a -he constantly appeals to this expression-like a distant [[sound]], like a roar...and then, what does this [[produce]]?
..the little perceptions of the unconscious are like [[differential]]s of [[consciousness]], it's minute perceptions without consciousness. For conscious perception, Leibniz uses another word: [[apperception]]. Apperception, [[perceive]]ing is conscious [[perception]] and minute perception is the differential of consciousness which is not given in consciousness.
...this [[portion]] of the world that I [[express]] clearly and [[distinct]]ly, all other [[subject]]s express it as well, but confusedly and obscurely... What defines my PoV is like a kind of... projector, its a projector that, in the [[murmur]] of the obscure and confused world, carves out a [[limit]]ed [[zone]] of [[clear]] and [[distinct]] [[expression]]
[[L81-19]]
Now I can almost [[define]] [[point of view]] according to [[Leibniz]]. I would say its the [[proportion]] of the [[region]] of the [[world]] [[express]]ed clearly and distinctly by an [[individual]] in [[relation]] to the [[total]]ity of the [[world]] expressed [[obscure]]ly and [[confuse]]dly. This is perfect; he should have said this.
[[L81-20]]
Each [[individual]] had its [[point of view]], that is, from this PoV it [[extract]]s from the [[aggregate]] of the [[world]] that it [[express]]es a determined [[portion]] of [[clear]] and [[distinct]] [[expression]]. Given two [[individual]] [[substance]]s, given two individuals, you have two [[case]]s; either their [[zone]]s do no [[communicate]] in the least, and [[create]] no [[symbol]]s with one another-and in that moment they have nothing to say to each other; or it's like two [[circle]]s that overlap: there is a little common zone; so, there one can do something together.... clear and distinct zones of expression for which some [[intersect]], and others remain [[outside]] one another.
As a result, in fact, [[Leibniz]] thus can say quite forcefully that there are not two identical individual substances, because there are no [pause] there are no two individual substances that have the same PoV or exactly the same clear and distinct zone of expression. And finally, Leibniz's stroke of genius to complete this [[concept]]ion of PoV: what is it that will define the clear and distinct zone of expression that I have?... what I express clearly and distinctly,... this is like a [[deduct]]ion of the [[notion]]... [it is] what relates to my [[body]]. This is the first time that the body notion intervenes... what I express clearly and distinctly is that which concerns my body, that which [[affect]]s my body.
[[L81-22]]
...the [[world]] has no [[existence]] outside the [[point of view]]s that [[express]] it... the [[world]] does not exist in itself. The [[world]] is uniquely expressed...the world is the expressed [[common]] for all individual substances, but the expressed does not exist outside that which expresses it...
In fact, the entire [[world]] is contained in each [[individual]] [[notion]], but it exists only in this inclusion. It has no existence [[outside]]... It's the expressed of all individual [[substance]], but the [[express]]ed does not exist outside the substance that expresses it... it is still [[necessary]] for all individual notions to express the same world. Fine; this world does not exist outside the individual notions that express it.
[[L81-23]]
Adam could have not sinned... the truths administered by the principle of [[identity]] are such that their [[contradict]]ory status is impossible, whereas the truths administered by the principle of [[sufficient reason]] have a [[possible]] contradictory status: Adam non-sinner is possible... truth of [[essence]], [[truth]] of [[existence]]... [[philosopher]]s are somewhat like [[cat]]s: it's in the moments when they are stuck that they free themselves...
choose, for each thing, all that is possible, but there we are, what is not contradictory, what is it? Why didn't that happen? That did not happen because it's possible in itself, but it's [[incompossible]]... On the level of existences, it is not enough for a thing to be possible in order to exist; one must also know with what it is [[compossible]]. Compossible means "being possible with," [[compossibility]].
Adam non-sinner... is incompossible with the world that exists. [he could have sinned provided there was another possible world]... Adam non-sinner belongs to another world... this world was not chosen.
[[God]], in his understanding, conceives an [[infinity]] of possible worlds [26], only these possible worlds are not compossible with each other, and necessarily so since it's God who chooses the best.
[[L81-24]]
In order to exist, it is not enough for something to be [[possible]], this [[thing]] must also be [[compossible]] with others that constitute the [[real]] [[world]]. doors, windows, souls, [[monad]]s. no [[exterior]], only [[interior]].
As a result, this is a marvel, this strange world. It's a world in which there is no direct [[communication]] between [[subject]]s... each [[individual]] [[notion]] is programmed in such a way that what it [[express]]es [[form]]s a [[common]] [[world]] with what the other expresses. It's one of the last [[concept]]s from [[Leibniz]], one of the strangest, that he will call [[pre-established harmony]].
[[L81-25]]
Things are [[define]]d or activities are defined by a [[creative]] [[dimension]] and not by a reflexive dimension... I tell myself that concepts are such living things, that they really are things with four paws, that move, really. It's like a [[color]], like a [sound]]...
In some ways, the [[philosopher]] is not someone who [[sing]]s, but someone who [[scream]]s... to need a [[concept]] means having something to scream!
[[L81-1]]
What can a man who believes in reason [[scream]]?... It is as a [[function]] of your cries that you are a [[philosopher]]... I [[dream]] finally of a kind of [[quantification]] of [[philosopher]]s in which they would be quantified according to the [[number]] of [[concept]]s they have [[sign]]ed or [[invent]]ed.
[[L81-3]]
...the there are exasperated [[philosopher]]s... For them, each [[concept]] covers an [[aggregate]] of [[singularity]]s, and then they need to have others, always other concepts...
his system is rather like a [[pyramid]].... [[system]] has several [[level]]s. None of these levels is [[false]], these levels [[symbolize]] with each other, and [[Leibniz]] is the first great [[philosopher]] to conceive of [[activity]] and [[thought]] as a vast [[symbol]]ization. So all these levels symbolize, but they are all more or less close to what we could provisionally call the [[absolute]]. [L thinks in terms of his audience, expanding and contracting levels to fit them]... one can never rely on a Leibniz text if one has not first discerned the [[level]] of the [[system]] to which this [[text]] corresponds.
[[L81-4]]
...there are two kinds of [[identical]] [[proposition]]s; there are [[reciprocal]] propositions in which the [[subject]] and the [[predicate]] are the same [ a triangle is a triangle=a triangle has 3 angles] and propositions of [[inherence]] or[[inclusion]]s in which the predicate is contained in the [[concept]] of the [[subject]] [a triangle has 3 sides; having 3 sides inheres in a triangle, but not everything with 3 sides is a triangle, matter is in extension, but I can conceive matter w/o [[extension]]. [[form]] without [[substance]] from [[A Thousand Plateaus]]?]
[[L81-5]]
[[analytic]] defined as a sum of the last two [[proposition]]s 'an analytical proposition is true, if you [[attribute]] to a [[subject]] something that constitutes a [[unity]] with the subject itself, or that overlaps with or is already contained in the subject... thus, every analytical proposition is true.
[[L81-7]]
But what you [[attribute]] with [[truth]] to any subject... from that moment on [after attributing] you are forced to cram into the [[notion]] of the subject not only the thing that you attribute to it with truth, but the [[total]]ity of the [[world]]... [for [[Leibniz]],] reason and cause are not the same thing... we must distinguish between [[necessary cause]] and [[sufficient reason]]... [causes have causes onto infinity, causes have effects, and effects have effects, onto [[infinity]] ] A [[thing]]'s cause is always something else... An indefinite [[series]] of causes. Sufficient reason is not at all something else than the thing. The sufficient reason of a thing is not something else [14] than the thing, we say this: it's the [[notion]] of the thing. Thus, sufficient reason [[express]]es the [[relation]] of the thing with its own [[notion]]
whereas cause expresses the relations of the thing with something else. There we are, this is crystal clear.
on 14, his way of explaining how the whole world is in the subject, by way of causes is similar to [[Whitehead]]s notion of all entities prehending the whole universe
[[L81-12]]
...the [[world]] has two [[state]]s- there are two states of the world. It has a [[develop]]ed, un[[roll]]ed state, and it has an [[envelop]]d, rolled up state-a rolled up state of the world, an enveloped state of the world: it's the world such that it's in each [[individual]] [[notion]] that [[express]]es it. Developed state of the world, as all individual notions express the same world, you can always develop the world to consider it [[abstract]]ly in itself, like this [[curve]] endowed with [[pure]] [[singularity]]s. In that case, you will be speaking about the world... the world is an [[aggregate]] of [[compossible]] individual notions insofar as they are developed, and the individual notion is the world insofar as it's enveloped in the [[point of view]]s that express it. The world develops the individual notions,. the individual notions envelop the world. Envelop, develop; roll up, unroll. An individual notion is the world rolled up from a certain point of view. The world is an aggregate of unrolled individual notions. To envelop, to develop. Here we have the [[dynamic]] [[verb]]s that I have been seeking.
he [[map]]s out implicate/explicate to roll/unroll
[[L84-16]]
There is a [[signature]], not that the signature establishes a [[link]] [[between]] the [[concept]] and the [[individual]] that [[create]]s it, the [[philosopher]] who creates it, it's much more: the concepts themselves are signatures...
There are all kinds of things that are included in certain [[thing]]s. [[inclusion]], [[envelopment]].... [[compossibility]]: there are things which are [[possible]] in themselves, but that are not [[compossible]] with each other.
[[L81-26]]
What is the [[indefinite]], rigorously defined?... it's the [[fact]] that I must always pass from one [[term]] to another term, always, without stopping, but without the following term at which I arrive pre-existing. It is my own procedure that consists in causing [[creation]]... 1=1/4+1/8,etc... we must not believe this etc pre-exists, it is my procedure that makes it appear each time, that is, the indefinite exists in a procedure through which I never stop pushing back the [[limit]] that I confront. Nothing pre-exists. He explains[[Kant]]'s [[definition]] as well
[[L82-6]]
[[Merleau-Ponty]] line about "That's what the classical century is, an innocent way of thinking starting from the infinite."
What differences are there between the [[infinite]] and the [[indefinite]]? It's this: the indefinite is [[virtual]]; in fact, the following [[term]] does not exist prior to my procedure having constituted it. It's of the virtual. What does that mean? The infinite is [actual]], there is no infinite except in [[act]]. So, there can be all sorts of infinities.
19th and 20th centuries discover infinite [[aggregate]]s "something is discovered that works in the depths of at the basis of classical [[philosophy]], notably the [[distinction]] of [[order]]s of infinities."
[[L82-11]]
...you cannot reach the [[end]] since it's an [[infinite]] [[aggregate]]. The [[total]]ity of [[element]]s is given, and you [[pass]] form one element to another, and thus you have an infinite aggregate of infinitely small elements. You pass from one element to another: you [[perform]] an infinite analysis, that is, an analysis without end, neither for you nor for [[God]].
He does not see the end of the analysis since there is no end of the analysis, but he performs the analysis. Furthermore, all the elements of the [[analysis]] are given to [God] in an [[actual]] infinity. You see? so that means that sinner is connected to Adam. Notice how simple this becomes. Sinner is an element; I am calling sinner an element. It is [[connect]]ed to the [[individual]] [[notion]] of Adam by an infinity of other elements actually [[given]]. Fine, agreed, it's precisely the entire existing [[world]], specifically all this whole [[compossible]] world that has passed into existence....
I pass from what to what? I pass from Adam sinner to Eve temptress-this is another element-from Eve temptress to the evil serpent, to the apple... What does that mean, the infinitely small element? Why is sin an infinitely small element?... it means an infinitely small [[relation]] [[between]] two elements. It is a [[question]] of relations, not a question of elements... [14] infinitely small relations between elements, between [[finite]] elements
[[L82-12]]
[[identity]] governs truths of [[essence]] but does not [[govern]] [[truth]]s of [[existence]]; all the time he says the opposite but that has no importance. As yourself to whom he says it... In other words, it's identity that governs truths of essence, but it's [[continuity]] that governs truths of existence. [or governed by evanescent differences, p15]
And what is the [[world]], a world? A world is defined by its continuity. What separates two [[incompossible]] worlds? It is the fact that there is a [[discontinuity]] [[between]] the two worlds. What defines a compossible world? It's the continuity of which it is capable... God's will causes to pass into existence the one [world] that realizes the maximum of continuity... We have to believe that Adam's sin is a formidable [[connection]], that it is a connection that assures continuities of [[series]]... there are something like series that are going to begin to fit into each other across [[difference]]s of [[time]] and [[space]]; there are series that are going to [[interlock]] very, very, strangely...
What does that mean, an infinitely small relation between two elements?.. let's assume, that means a [[difference]]; since there are two elements, there is a difference between the two... What is continuity? Continuity would be, and we could [[define]] it as the act of a [15] difference in so far as it tends to disappear. Continuity is an [[evanescent]] [[difference]]
[[L82-13]]
Continuity is an [[evanescent]] [[difference]]. Notice, this is a new [[concept]] from [[Leibniz]], the evanescent difference... an [[infinite]] [[analysis]] is an analysis of the continuity operating through evanescent differences
[[L82-14]]
These are [[nothing]]s, but they are not [[absolute]] nothings, they are nothings respectively; specifically, these are are nothings, but that conserve the [[relation]]al [[difference]].
[[L82-15]]
...he took the word [[virtual]]... he gave it a new meaning, completely [[rigorous]]... That no longer meant going toward the [[indefinite]]; rather, it meant un[[assign]]able, yet also [[determine]]d. [dx/dy=0/0, but that 0/0 is not equal to 0]
[[L82-18/19]]
[[differential]] [[calculus]] being only a [[symbol]]ic [[system]]... describing a way of treating [[real]]ity... interesting discussion of [[fiction]]... "it can cause us to think of what is irreducible... namely what exists in its reality...
[[L82-20]]
...the [[world]] that [[pass]]es into [[existence]] is the one that [[real]]izes in itself the [[maximum]] of [[continuity]], that is, which contains the greatest [[quantity]] of [[reality]] or of [[essence]]... continuity is precisely the means of obtaining the maximum quantity of reality.... So, there you have a very, very, [[beautiful]] vision of [[philosophy]]...
[[L82-22]]
He's really hammering home this [[Leibniz]] [[analytical]] [[proposition]]al [[truth]] whereby the [[predicate]] is included in the [[subject]]. [[inclusion]]. Predicate [[event]]s of subjects, whatever. The entire [[world]] is in the [[individual]] [[notion]], as we can predicate... [[attribute]] [[monad]]s.
[[L82-1]]
So, what does [[infinite analysis]] mean?...
In [[truth]]s of [[essence]], the [[analysis]] is [[finite]]; in truths of [[existence]] the analysis is [[infinite]]... a truth of essence is such that it is [[contradict]]ory is im[[possible]]... [2 and 2 always makes 4]
[[L82-4]]
[[truth]]s of [[existence]] are called [[contingent]] [[truth]]s. [Adam could have not sinned]... only this was not [[compossible]] with the existing [[world]].
[[L82-5]]
[[Leibniz]] uses [[singular]], remarkable, and notable as [[equivalent]]s... when he talks about a notable [[perception]], tell yourself that he is in the [[process]] of saying something.
[[L83-9]]
[[Leibniz]] opposes [[singular]] to [[ordinary]] rather than to [[universal]], "it's not the [[true]] and the [[false]] that matter, it's the singular and the ordinary...
And in which case does mathematics speak to us of the singular and the ordinary? The answer is simple, immediately-I am saying some very, very simple things on [[purpose]]-concerning certain [[point]]s [[plot]]ted on a [[curve]]. Not necessarily on a curve, we will see later, but generally concerning any [[figure]]... a figure includes singular points and others that are regular or ordinary. Why a figure? Because a figure is something determined! So the singular and ordinary would belong to the [[determination]] and indeed, that would be interesting!.. Why not define determination in general?
[[L83-10]]
[the four [[singular]] [[point]]s of the square are] the [[extremum]].. What will the [[ordinary]] points be? This will be the [[infinity]] of points that compose each side of the square-but the four extremities will be called singular points. All ok? Fine... There are eight singular points in a cube. There we are, if you already understood that, you've understood a great deal. That is what we call singular points in the most elementary geometry: points that mark the extremity of a straight line.
[[L83-11]]
...a [[complex]] [[curve]] is defined by its [[singularity]]s...What are they? In simplest terms, these are [[neighbor]]ing points of which... the notion of neighborhood is very different from contiguity... Thus, in the neighborhood of a singularity, something change, that is, the curve grows or decreases. A curve has moments... the [[ordinary]] is what is between two singularities; that goes from the neighborhood of one singularity to the neighborhood of another singularity, of the ordinary or the regular.
[[L83-12]]
[[Poincare]] and four [[type]]s of [[singularity]]s "you could find equivalent [[notion]]s in [[Leibniz]] works.
[[crest]]s, [[threshold]]s, [[center]]s, [[knot]]s
[[L83-13]]
...It's as if the [[domain]] of [[singularity]]s is [[infinite]], strictly speaking... You need [[calculus]] for [[singular]] [[point]]s on a [[curve]], "the singular point is the point in the [[neighborhood]] of which the [[differential]] [[relation]] dy/dx changes its sign.... it's very well explained in all the textbooks: to the extent that it [[become]]s [[equal]]; in the neighborhood of this point, it becomes equal to zero or [[infinity]]...
I retain the following [[formula]]: a singularity is a point in the [[neighborhood]] of which-this is, almost, yes, what one must retain-a singularity plotted or moved onto a curve, or determined on a curve, is a point in the [[neighborhood]] of which the differential relation changes its sign, and the singularity, the [[singular]] point's characteristic is to [[extend]] itself over the whole [[series]] of [[ordinary]] points that depend on it all the way to the neighborhood of the subsequent singularity. So, I maintain that the [[theory]] of singularities is inseparable from a theory or an activity or a [[technique]] of [[extension. So, understand, this is going to create a great step forward for us...
[[continuity]] or the [[continuous]] is the extension of a remarkable point onto a series of ordinaries, of a singular point onto a series of ordinaries all the way into the neighborhood of the subsequent singularity.
[[L83-14]]
...its all the more bizarre since, in order to reach this [[definition]] of the [[continuous]], I used what apparently introduces a discontinuity, notably a [[singularity]] in which something changes... As long as i can extend a singularity it's continuous...
[[apperception]] [[signify]]s a [[conscious]] [[perception]]. I perceive my perceiving... henceforth there really have to be [[unconscious]] perceptions that we don't perceive... will be called [[small perception]]s... Why is this necessary?...two reasons [one] we perceive our apperceptions, our conscious perceptions, these are always [[global]]. What we perceive is always a [[whole]]... since there is a whole... there has to be something simple if there is something [[composite]]... there is not [[indefinite]].. it implies the [[infinite]]... [[Leibniz]] thinks that the infinite is [[actual]]... it's a kind of logical requirement...
[[L83-15]]
What we perceive is always an [[effect]] so there have to be [[causes]]...
...he is perpetually trying to make coexist an argument based on [[causality]] and an argument based on [[part]]s, not the same thing. A cause-effect [[relation]] and a parts-[[whole]] relation. These cannot at all be entirely the same... our [[conscious]] [[perceptions]] bather in a [[flow]] of [[small perception]]s, of [[unconscious]] small perceptions.
...a flow of small perceptions invades me, unconscious small perceptions. It's not that they stop being unconscious, but it's me who ceases being conscious. But I live them, there is an unconscious lived [[experience]]. I do not [[represent]] them, I do not [[perceive]] them, but they are there, they [[swarm]] in these cases... [[death]] [is when]... one is simply reduced to small perceptions...
[[L83-16]]
...It's not that they invade my [[consciousness]], but its my consciousness that is [[extend]]ed, that loses all of its own [[power]], that [[become]]s [[dilute]]d because it loses self-consciousness, but very strangely it becomes an [[infinite]]ly tiny consciousness of [[unconscious]] [[small perception]]s. This would be [[death]]... death is nothing other than an [[envelope]]ment, perceptions cease being developed into conscious perceptions, they are enveloped into an infinity of small perceptions... [[sleep]] without [[dream]]ing...
...according to [[Leibniz]] the [[soul]] has two fundamental [[faculty]]s: conscious [[apperception]] which is therefore composed of small unconscious perceptions, and what he calls [[appetition]], [[appetite]], [[desire]]. And we are composed of desires and perceptions. And appetition is conscious appetite. If [[perception]]s are made, if [[global]] perceptions are made up of an [[infinity]] of small perceptions, appetitions or gross appetites as is said, [[gross appetite]]s are made up of an infinity of small appetitions. And appetitions are [[vector]]s corresponding to small perceptions, and that becomes a very strange [[unconscious]] with all these small appetitions and small perceptions... I am hungry... I grossly [[express] a global outcome... of thousands of small perceptions working within me, and thousands of small appetitions that crisscross me.
[[L83-17]]
[discussion of [[unconscious]] [[appetition]] ] The [[problem]] of [[instinct]] on the simplest [[level]] is:/how does one explain that [[animal]]s eat more or less anything that suits them? In fact, animals eat during their meal a quantity of fat, of salt, of proteins necessary for the balance of their [[internal]] [[milieu]]. And their internal milieu is what? It's the milieu of all the [[small perception]]s and [[small appetition]]s...
This [[Leibniz]]ian [[psycholgy]] invokes small apetitions that [[invest]] small perceptions; the small appetition makes the [[psychic]] investment of the small perception, and what [[world]] does that [[create]]? We never cease [[pass]]ing from one small perception to another, even without knowing it... [all we know are [[global]] hungers] when I say I am hungry, in fact, there are all sorts of [[passage]]s, [[metamorphoses]]...
These are [[monster]]s, we could say about children who eat dirt; yes, indeed, they are monsters! But [[God]] even made monsters in [[harmony]]. There we are, there we are.
[[L83-18]]
...your [[small perception]]s form a [[series]] of [[ordinary]]s or a series called regular... How do you pass into the [[global]] [[perception]]?..
I pass via a tiny addition... this is through [[singularization]]... It's when the [ordinary] series approaches or enters into the [[neighborhood]] of a [[singular]] [[point]]... that perception becomes [[conscious]]...
You recalls what we are bringing with us from the start, in fact, the [[idea]] that with small [[element]]s... what is differential are not elements... [it is [[relation]]s, not dx to x, not dy to y, but dx/dy]
[[L83-19]]
But what [[relation]]?.. on the [[level]] of [[singular]] [[point]]s, the differential relation changes its [[sign]]... what [[determine]]s a relation is... the relation of physical excitation to my biological [[body]]...
and [[perception]] is [[conscious]] when the differential relation corresponds to a [[singularity]], that is, changes its sign... passages from consciousness to the [[unconscious]] [and vice versa].
So see, I was able to provide a rigorous meaning to Leibniz’s very statement: we pass from small perceptions to unconscious perception through addition of something notable, that is, when the [[series]] of ordinaries reaches the neighborhood of the following singularity, such that psychic life, just like the mathematical curve, will be subject to a law which is that of the composition of the continuous. And why is the continuous the object of a composition? There is composition of the continuous since the continuous is a product: the product of the act by which a singularity is extended into the neighborhood of another singularity. And that this works not only upon the universe of the mathematical symbol, but also upon the universe of perception, of consciousness, and of the unconscious, and from this point onward, we have but one question: what are the compossible and incompossible? These derive directly from all this. [Pause] What time is it?
[[L83-24]]
There we are, we possess the formula for compossibility, we possess it. Suppose that I say this: you have a [[singularity]]. Now I can say: you take the simplest case; I return to my example of the square with its four singularities. You take a singularity, [Pause] and you trace… you take a singularity, this [[singular]] [[point]], it’s a point; you take it as the center of a circle. Are you following me? I am no longer doing the drawing. You take is as the center of a circle. Which circle? All the way into the neighborhood of the other singularity. In other words, you take *a*, you take large A, in the square ABCD, you take large A as center of a circle that stops within the periphery in the neighborhood of singularity B. [With] B, you do the same thing: you take, you trace a circle that stops in the [[neighborhood]] of the singularity A and you trace another circle that stops in the neighborhood of singularity C. You see, these circles intersect. [Pause]
So, you go on like that constructing, from one singularity to the next, what you will be able to call a continuity. The simplest case of a continuity is a straight line, but there is also precisely a continuity of non-straight lines. Into what? You see, you have your system of circles that intersect, you will say that there is continuity when [Pause] the values of two [[ordinary]] [[series]], those of A to B, those of B to A, coincide. When there is a coincidence of values of two ordinary series encompassed in the two circles, you have a continuity. So, you can construct a continuity made from continuity. You can construct a [[continuity]] of continuity. The square would be a continuity of continuity. If the series of ordinaries that derive from singularities diverge, then you have a [[discontinuity]]. Fine, that becomes quite simple.
You will say that a world is constituted by a continuity of continuity, first definition. A world is constituted by a continuity of continuity, it’s the [[composition]] of the [[continuous]]. A discontinuity is defined when the series of ordinaries or regulars deriving from two points diverge. Third definition: the existing world is the best? Why? Because it’s the world that assures the maximum of continuity. Fourth definition: what is the [[compossible]]? An [[aggregate]] of composed continuities. Final definition: what is the incompossible? When the series diverge, when you can no longer compose the continuity of this world with the continuity of this other world. [[divergence]] in the series of ordinaries that depend on singularities: at that moment, it can no longer belong to the same world.
Because, yet again, [[God]] is perverse. God’s perversity lies in having chosen the world that implicates the maximum of continuity – you see, [[calculus]] of the maximum – he chose the world and caused to [[pass]] into [[being]], into existence the world that implied the maximum of continuity. Only, here we are, he composts the chosen world in this form, only he dispersed the continuities since these are continuities of continuities. God dispersed them.
[[L83-25]]
So, you see, the definition at which we’ve arrived, and where I want to stop, here we grasp something, a specific relation that is [[compossibility]] or [[incompossibility]]. I would say yet again that compossibility is when [[series]] of ordinaries [[converge]], series of [[regular]] [[point]]s that derive from two [[singularity]] and when their values coincide, otherwise there is [[discontinuity]]. In one case, you have the definition of compossibility, in the other case, the definition of incompossibility. Question, once again: why did [[God]] choose this world rather than another, when another was possible? Leibniz’s answer which, in my view, becomes splendid: it’s because it is the world that mathematically implicates the maximum of continuity, and it’s uniquely in this sense that it is the best, that is the best of [[possible]] [[world]]s.
There we are, finally, I’d just like you to retain this: everything is constructed around what? If you will, that’s what a [[concept]] is; it becomes very, very… You see? A concept is always a complex. A concept is always something very complex. We can situate our session today under the [[sign]] of the concept of [[singularity]]. And the concept of singularity has all sorts of languages that intersect within it. A concept is always, literally, [[polyvocal]]; it is necessarily polyvocal since you can grasp the concept of singularity only through a minimum of mathematical apparatuses: singular points in opposition to ordinary or regular points, on the level of thought experiences of a psychological type: what is dizziness, what is a murmur, what is a hum, etc. [Pause] And on the level of philosophy as concept, in Leibniz’s case, the construction of this relation of compossibility.
And the three will have to… It’s not a mathematical philosophy, no more than mathematics becomes philosophy, but in a philosophical concept, there are all sorts of different orders that necessarily symbolize. And already here, I would say, it’s true for any philosophical concept that it is a philosophical concept that it has a philosophical heading, it has a mathematical heading, and it has a heading for an experience of thought. And it’s true of all concepts, it’s true for all.
So, I believe that it was a great day for philosophy when someone brought this odd couple to general attention, and that’s what I call a [[creation]] in philosophy. I call it this “odd couple”; I mean, well yes, when Leibniz proposed this topic – you know, the singular, there precisely is the act of creation -- when Leibniz tells us, you know, the singular, think about this well, there is no reason for you simply to oppose it to the universal. It’s much more interesting if you listen a bit to what mathematicians say, who for their own reasons think, on the contrary, of "singular" not in relation to "universal," but in relation to "ordinary" or "regular." So, Leibniz isn’t doing mathematics at that point.
I would say that his inspiration is mathematical, and he goes on to create a philosophical theory, notably a whole conception of [[truth]] that is radically new since it’s going to consist in saying: don’t pay too much attention to the [[matter]] of [[true]] and [[false]]; you don’t ask in your thinking what is true and what is false, because what is true and what is false in your thinking always results from something that is much deeper. What matters in thinking is what is remarkable, these are remarkable points and ordinary points. Both are necessary: if you only have [[singular]] points in thinking, you have no method of [[extension]], it’s worthless; if you have only ordinary points, it’s in your interest to think something else, it’s all the same, all that. And the more you believe yourself [to be] remarkable (special), the less you think of remarkable points, necessarily, necessarily.
In other words, the thought of the singular is the most modest thought in the world. It’s there that the thinker necessarily becomes modest, because the thinker is the extension onto the series of ordinaries, and thought itself explodes in the element of singularity, and the element of singularity is the concept. There we are. [End of the recording][[L83-26]]
[[infinite]] [[analysis]]... appears to the extent that [[continuity]] or small [[difference]]s or vanishing differences are substituted for [[identity]]. It's when we proceed by continuity and vanishing differences that analysis properly becomes infinite analysis... there would be [[material]] for infinite analysis when I find myself faced with a [[domain]] that is no longer directly governed by the identical, by identity, but a domain that is governed by [[continuity]] and vanishing differences.
[[L82-25]]
We demand a specificity of the [[relation]] of [[compossible]]ity and [[incompossible]]ity, which is linked at the same time to the nature of [[infinite]] [[analysis]]... others saw that there was the [[possible]] and the [[necessary]]; but [[Leibniz]] says, I am bringing you a new [[domain]]. There is not solely the possible, the necessary, and the [[real]]. There is the compossible and the incompossible. He was attempting to cover an [[entire]] [[region]] of [[being]].
[[L83-7]]
...[[Leibniz]] was no doubt, perhaps, the first to introduce into [[philosophy]], that we could call the theory of [[singularity]]s... which is scattered, which is everywhere-I cannot cite a single book where it doesn't exist... tow poles of this, [[mathematical]] and [[psychology]]cal... What are singularities for math, for psych? How does this help us answer our in/composs+infinite analysis question?
[[L83-8]]
[[Leibniz]] names it the [[principle]] of [[indiscernible]]s. We can state it this way: there is one thing and only one thing per [[concept]], or every [[difference]] is conceptual in the final instance.
[[L87-1]]
It is therefore necessary that [[figure]] and [[movement]] be surpassed toward something deeper... there is no [[extend]]ed [[substance]] or that [[extension]] cannot be a substance. That extension is a [[pure]] [[phenomenon]]. That it refers to something deeper. That there is no [[concept]] of extension, that the concept is of another [[nature]]... He opposes [[force]], on the one hand, to figure and extension, on the other, figure and extension being only [[manifest]]ations of force. It is force that is the true concept. There is no concept of extension because the true concept is force. Force is the [[reason]] of figure and movement in extension.
[[L84-11]]
[[space]] and [[time]] must also move beyond themselves toward-a third term-a [[concept]]...
Fourth [[principle]]-[[law]] of [[continuity]] [why law? Deleuze asks]... vulgar formulation- [[Nature]] does not skip over anything...fine, there is no dis[[continuity]]...
two scholarly formulations... if two [[causes]] get as close as one would like, too the [[point]] of only differing by a [[difference]] decreasing to [[infinity]], the [[effect]]s must [[differ]] in like [[manner]].
Is there a contradiction between the principle of indiscernibles and continuity? In what way is there a contradiction? [[Leibniz]] never considered there to be the slightest contradiction.
[[L84-12]]
...[[thing]]s proceed by [[vanish]]ing [[difference]]s, by [[infinite]]ly small differences, that is, by unassignable differences... A great philosophical concept is not simply a [[word]]; it's a [[complex]], it's a [[proposition]], or a propositional [[function]].. .one would have to de exercises in philosophical [[grammar]]... would consist of this: with a given [[concept]], find the [[verb]]. If you have not found the verb, you have not rendered the concept [[dynamic]]... otherwise, you cannot udnerstand it... You cannot live it. The concept is always [[subject]] to a [[movement]], a movement of [[thought]]. A single thing counts, movement. When you do [[philosophy]], you are looking only at movement... only a particular kind of movement, the movement of thought.
[[L84-13]]
...what [[God]] creates is the [[world]] and not the [[individual]] [[notion]]s that [[express]] it... Second [[proposition]] by [[Leibniz]]: the world exists only in the individual notions that express it. If you privilege one proposition over another, it's crazy.... two complementary and simultaneous ways of understanding... The world, for Leibniz... the [[continuous]] world is the [[distribution]] of [[singularity]]s and [[regular]]ities... that constitute precisely the [[aggregate]] chosen by God, that is, the [s[et]] that unites the [[maximum]] of continuity. [the world is like a [[curve]] in the geometrical examples]
Only here we are, this world does not exist in itself, it exists only in the individual notions that express this world. What does that mean? That means that an individual notion, what Leibniz calls a [[monad]], that means that an individual notion or monad is constructed, that each one encompasses a small, determined number of singularities. It encloses a small number of singularities; it is the small number of singularities. … -- You see, we are making enormous progress – if we now ask… You recall that individual notions or monads are [[point of view]]s on the world. It is not the subject that explains the point of view, it is the point of view that explains the subject. Hence the need to ask oneself, what is this point of view? A point of view is defined by this: a small number of singularities drawn from the curve of the world. This is what is at the basis of an individual notion. What makes the difference between you and me is that you are constructed, on this kind of [[fiction]]al curve, you are constructed around such and such and such singularities, and me around such and such singularities. And what you call [[individual]]ity – you see, there are all sorts of quite distinctive notions in Leibniz – an individuality is a [[complex]] of singularities insofar as they form a point of view. That becomes very beautiful. [Pause] Fine.
[[L84-15]]
So, [[God]], what does it do since… it’s neither [[envelop]]ed, nor [[develop]]ed, God. What is it? There’s a lovely word, created by philosophers prior to [[Leibniz]]: God is the great “complicator”. It does not implicate, and it does not explicate; it does not envelop, and it does not develop; it complicates. Superb definition of God: the universal complication. So, what is it, to complicate? It’s to maintain the mutual simultaneity and immanence of envelopment and development. If I say that that guy’s complicated, what does that mean? Complicare, it’s a very beautiful word. It complicates… And complicating is not necessarily a weakness; to complicate is really the equivalent of understanding but understanding in the strong sense of the term. In fact, I was thinking that there was a doublet, but there’s a triplet: to [[complicate]], to [[explicate]], to [[implicate]].
[[L817-1]]
Finally, the fifth [[principle]] – we’ve just reconciled the third and fourth [principles]. With the fifth one, I am stopping to leave it for the next time. But finally, because the fifth principle has so many aspects that it’s valid for an infinity of principles, the aggregate of what Leibniz presents as the principles of finality. And what is the [[ratio]] of the principles of finality? This refers to the last ratio; there are five ratios that have crossed through philosophy since philosophy has existed: it’s the ratio agendi, agendi, that is, the reason for acting (raison de faire). You have the list of five reasons that you have to learn by heart: reason for being, reason for existing, reason for knowing, reason for becoming, and reason for acting (raison d’être, raison d’exister, raison de connaître, raison de devenir, et raison de faire).
[[Kant]] vs [[Leibniz]] [20] There we are, I give you my blessing.
[[L84-18]]
third major rubric for a reading of [[Leibniz]]: [[principle]]s, "what I will call: "[[deduction]] of principles"... principle of [[identity]].. a thing is what it is, that's better than A is A... Because it shows that [the thing] is the [[region]] [[govern]]ed by the principle of identity. If the Poi can be [[express]]ed in the [[form]]: a thing is what it is, this is because identity consists in [[manifest]]ing the proper identity [[between]] the thing and what it is...
I would say that the principle of identity, here quite directly, is the [[rule]] of [[essence]]s or, what comes down to the same thing, the rule of the [[possible]]. In fact, the [[impossible]] is [[contradictory]]. The possible is the identical so that, to the extent that the principle of identity is a [[reason]], a [[ratio]]... it is the ratio of [[essences]], or the ratio [[essendi]]... reasons as the reson for being [3]
[[L83-27/28]]
I choose that as a typical example because I think that, once again, I tried to say it the last time, that it is very difficult to do [[philosophy]] if you do not have a kind of terminological certainty. What I am saying simply, is that this terminological certitude is like for mathematics although [indistinct words]. Never tell yourself that you can do without this terminological certitude, but also never tell yourself that it is difficult to acquire. It is exactly the same – this is what I’d like to do, and also this is why those who don’t like [[Leibniz]] don’t like him – it’s exactly the same as [[scale]]s on the [[piano]]. It’s exactly the [[equivalent]] of what is called piano exercises. Fine....if you do not know rather [[precise]]ly the [[rigor]] of [[concept]]s, that is, the [[sense]] of [[major]] [[notion]]s, then it is very difficult to... [Deleuze does not complete the sentence]...
I'll sy that, for each principle, I will offer a formulatio vulgaris, communis, that is, a vulgar formulation and a scholarly one.
[[L84-2]] [[Latin]]
He covered this in the first [[lecture]] but here's a new [[formula]]tion: We will say that [[analytic]]al [[proposition]]s of [[reciprocity]] are [[object]]s of [[intuition]]s, and we will say that analytical propositions of [[inclusion]] are objects of [[demonstration]]. [ [[essence]] vs [[existence]]? Somewhat reshashed]
Second [[principle]]: principle of [[sufficient reason]] [[ratio]] [[existendi]]. Difference from poi is that poi is indifferent to the [[actual]] [[existence]] of the [[thing]]-sufficient reason concerns [[existence]]
[[L84-3]]
[[Leibniz]]s [[statement]] is: every [[predicate]]ion has a basis in the [[nature]] of [[thing]]s... this is the [[ratio]] [[existendi]]... everything said about a thing must be encompassed, contained, included, in the [[notion]] of a thing... what is said about a thing is not only the essence of the thing, but also the entirety of [[affection]]s and of [[event]]s that refer [or belong] to the thing...
[[L84-4]]
[[principle]] of [[sufficient reason]]- [[infinite]] [[analysis]]
principle of [[identity]]-[[finite]] analysis
"there will be an infinite analytical [[relation]]ship between the [[event]] and the [[individual]] [[notion]] that encompasses the event...
for everything that happens or for every thing, there is a, for each thing, there is a [[concept]].[[L84-5]]
For [[Leibniz]]... [[space]] is the [[order]] of [[possible]] coexistences, and time is the order of possible [[succession]]s... it refers to his entire [[theory]] of [[compossible]]ty
[[L85-5]]
[[Kant]] says [coexistence] in the end, belongs to [[time]]. Coexistence means. literally,at the same time. In other words, it's a [[mode]] of time.
Kant will say that time has three modalities: what lasts through time is called [[permanence]]; [Pause] what follows after something else within it is called [[succession]]; and what coexists within it, that is, what is at the same time and is called simultaneity or coexistence. Notice the conclusion immediately, the double conclusion: I cannot define time through the order of successions since succession is only a modality of time, and I have no reason to privilege this modality over the others. And another conclusion at the same time: I cannot define space through the order of coexistences since coexistence does not belong to space.
[[L85-11]]succession
[[Kant]]: [[synthetic]] [[proposition]]s- one [[term]] is not contained in the other, they must be synthesized.
[[Leibniz]] [[analytic]]al propositions: one term contains the other. [[inherence]], [[inclusion]].
We call [[synthesis]] the [[act]] through which one leaves a [[concept]] behind in order to [[attribute]] it or to [[affirm]] something else.
[[L84-19]]
[[proposition]]s that are to some extent philosophical propositions aren't justifiable on the basis of a verification of [[fact]]s...
[[a posteriori]] meaning that which is given in [[experience]]...
this straight line is white doesn't equal [[knowledge]]... [it is] a [[protocol]] of [[experience]]... knowledge is something else than [[tracing]] protocols of experience.
So fine, when does one know? – Here, I am remaining in some very, very classical things; it’s like a terminology lesson -- one knows when a [[proposition]] bases its claim in a [[principle]] (se réclame d’un droit). What defines a proposition’s principle is the universal and the necessary. When I say that a straight line is the shortest path from one point to another, I maintain a proposition of principle (une proposition de droit). Why? Because I don’t need to measure each straight line to know that, if it’s straight, it’s the shortest path. Every straight line, beforehand, [[a priori]], that is, independently of experience, is the shortest path from one point to another, otherwise it would not be a straight line.
Thus, I would say that the proposition, “a straight line is the shortest path,” constitutes indeed a proposition of knowledge. I do not await experience to discover that a straight line is the shortest path; to the contrary, I determine the experience since the shortest path from one point to another is my way of tracing a straight line experientially. Any straight line is necessarily the shortest path; I can say, any straight line is necessarily the shortest path from one point to another. That is, this is a proposition of knowledge and not a proposition of protocol. So, let us take this proposition – I would say, it’s an a priori proposition, and a priori, this will be uniquely independent from experience.
[[L85-3]]
One cannot provide [[reason]]s, you understand, every time one says something.
[[L85-4]]
[[reason]]=/=[[causality]]. "...everything has a reason means that the [[relation]]ship that A maintains with B must be encompassed in one way or another in the [[notion]] of A... [[cause]]s... [[presuppose]] sufficient reason.
[[principle]] of [[sufficient reason]]- for every thing there is a concept.
[[L84-6]]
See [[ATP p65-1]] for [[language]] to [[regime of signs]] relation
However, we must now raise the [[question]] of how we can explain the experience of being together with someone else if we cannot [[distinguish]] anything that is independent from us. The answer for me is that [[language]] is a way and manner of living together. – Who is living together? My reply: [[human]] beings. The next question is: What are human beings? I say: Human beings are those special entities that are distinguished in the process of human beings living together. Again, we find ourselves in a circular situation. For me, a human being is not an ontic or ontological entity, an entity existing a priori.
[[BD51]]
We would need to have a functional hypothesis, I mean, not defining an essence of the Baroque, but defining something that the Baroque would be presumed to create, an operation. I believe we would get out of all these problems that would wear us out from the start, that is, what does the word “Baroque” mean? Does it refer to this or to that? Under what conditions might it be usefully used? If we have an operating hypothesis, what constitutes a Baroque man? And my hypothesis is very simple, but on the condition that this operation coincides neither with an operation that might be called Renaissance, nor one that might be called Classical, nor one that might be called Romantic, etc. On the operating level, we have to look for a certain specificity of the Baroque.
I am saying a very simple thing: the Baroque creates folds, the Baroque creates folds. It’s a hypothesis. The [[fold]] is therefore the essential characteristic of the Baroque understood as an operating action
[[Leibniz, Second Seminar]]
I am saying [that] the Baroque is located where [[matter]] does not cease being pleated, being pleated onto itself, or where the [[soul]] does not cease being folded, the pleats of matter (les replis de la matière) and the folds of the soul (les plis de l’âme).
paragraph 61 in the Monadology, where in this paragraph from the [[Monadology]], it ends in a truly splendid way: “[A soul] could never bring out all at once everything that is folded into it because its folds go on to infinity.” It’s not even explained, not even explained.
...the Baroque fold goes on to infinity.
The fold that goes on to infinity, it’s the pleat since it’s obvious that it’s not the Baroque that invented the fold. For example, in sculpture, there are always folds, if only through the presentation of clothing. A piece of clothing creates folds. Yes, certainly, a garment creates folds; every fold is not Baroque. Fine. So much the better. Our hypothesis is fine since we already have the [[differential]] characteristic of the Baroque. Yes, every fold is not Baroque, but not every fold goes on to infinity. When the fold goes on to [[infinity]], then it’s Baroque.
[[LATB1-1]]
My first [aspect in the] system of guideposts concerns the pleats of [[matter]]. I would say that the Baroque is the presentation of a form of matter that does not cease creating folds or being pleated back or being unfolded. Under this first aspect, this means that the Baroque is defined in fact, as a treatment of matter, which means what? Which consists of what? I would say that the treatment of matter is a treatment in bulk [en masse]. The Baroque treats matter in huge [[mass]]es, and the notion of mass is fundamental within the Baroque
Fine. The second characteristic connecting to this is a kind of treatment of matter not
simply by enlargement, but – suddenly you sense that this is connected; I have no desire to undertake logical deduction; you sense that these are very natural passages – so henceforth the treatment of matter [is] through softening (amollissement). The masses are soft, [hence] the treatment of mass not only in bulk, but in soft masses. In other words, the softness of the form in Michelangelo’s staircases is obvious. At the extreme, we would have to speak of a tendency of matter toward the [[fluid]], a kind of turbulence of matter.
And what does this position of [[soft]] masses imply? It implies something that is essential, that will be essential for us today and for the next time: a rounding off of angled forms. As Wölfflin says, repeating it at several points so that it seems to be something fundamental concerning the Baroque, the right angle is avoided
[[LATB1-2]]
What does this mean, this tendency toward softness, toward the [[fluid]], once again, represented by the rounding off of the angle, the avoidance of the right angle? At the extreme, this is like a conciliation of [[mass]] and water.
In the end, fluid is massive just as mass is fluid. [Pause] And at this level, we see that, henceforth, everything operates in bulk, the solid that is, in fact, a soft solid, the fluid that is, in fact, a massive fluid with turbulence, and yet in [[consonance]] with other [[mass]]es.
Understand, simply, if this is an art of mass, understand that it’s an art of the soft, an art of the soft. Why is the mass soft? If that’s what creates mass, it’s a way of saying that mass cannot be engendered starting from individuals, from ultimate individuals. There are no ultimate individuals
This treatment is necessarily the mass treatment operating through softening, that is, through rounding off of angled forms. How to say what we are sensing here, that the angled form is the hard, that the rounding off of angled forms is the soft?
Good. So let’s try to identify... We just created a few guideposts on the level of the Baroque, you see? We move forward just a bit. What does it mean to create [[fold]]s? [Sound of Deleuze’s chair; he goes to the board] I can say – let’s have a break here -- you see, creating folds is what? Well, it’s rounding off angles, creating folds. We are not very far into this, but that’s it:
to round off angles, but you sense that we have to change this expression for many things. Rounding off angles, hmm, this is whatever you want, but among other things, it’s possible that this is a mathematical operation. It’s possible that this could have lots of outcomes. How... Can you round off angles in math? Perhaps you can. Perhaps Leibniz never stopped rounding off angles. He was a great mathematician, so he was capable of doing that. So, we just say, here we are, the Baroque, you see, how does it create folds? By undertaking a treatment in bulk, and this treatment in bulk undertakes this by rounding off angles, by constituting [forms of] soft matter.
[[LATB1-3]]
[[LATB1-4]]
We have to see if Leibniz’s philosophy, even before you are familiar with it – I am looking for guideposts – if Leibniz’s philosophy is consonant with all that. Oh yes! Matter is treated so much in bulk by Leibniz that it is never separable from a term that Leibniz uses, the [[aggregate]] (l’agrégat). Matter proceeds through the aggregate, and the aggregate is the law of [[matter]]. The soul will have no less of a law as well, and the whole problem in Leibniz’s philosophy will be what the correspondence between these two laws is. I am saying immediately that the soul’s law is not the aggregate. It’s the series, but you sense perhaps that the [[series]] is also something very Baroque. Why? For the moment, that’s beyond us. Matter is divided into aggregates, and the aggregates are themselves divided into aggregates. An entire uproar of matter... On the level of matter, you will only find aggregates infinitely divisible and infinitely composable. So, I am just saying that aggregates ignore angles. Aggregates are [[curve]]s. As they go all the way to infinity, a curve that goes to infinity is a fold. Aggregates create [[fold]]s.
n all of his physics, what does Leibniz create? [He creates] a physics of bodies that he himself calls elastic. For Leibniz, elasticity – and he tells us this in print – is the degree of fluidity of a body; [it’s] a physics of the elastic body or of the fluid body, elasticity meaning a degree of fluidity of the body
But for Leibniz, there is no [[atom]]. Every mass is composed of [[mass]], all the way to infinity, no more than there is a hard body, every body being [[elastic]], its [[elasticity]] being equal to its degree of [[fluid]]ity. [This is] a physics of the fluid or of the body’s elastic force – in Latin, vis elastica, Leibniz says.
And what is acceleration? It’s a difference; it’s a difference between the movement at a particular moment and the movement in the preceding state, in the preceding moment; or it’s between the movement at particular moment and the movement in the subsequent state. It’s a difference, or as Leibniz will say more precisely in mathematics, it’s a differential, a difference that can be, if you like, as small as you wish. To this [[differential]], Leibniz gives a name: it’s the [[conatus]] of movement. All this that I am saying is quite summary. We will see it later; we
will see it much more precisely.
All of that corresponds; it’s a system of correspondences, and perhaps that’s what the word “[[system]]” means
But I say “[[elastic]] body,” you can only think of it on a curve, with variable curvature. What does that mean? I am just saying... We indeed see how all of this connects; in fact, it connects quite well. You take an atom as hard body, hard body, indivisible
[[LATB1-5]]
in other words, the formations of hard bodies are [[rectilinear]] and angular.
Fine. Understand, this works fine for us, Leibniz’s physics, a physics of [[elastic]] bodies, and henceforth, of curvatures, and henceforth, of curvatures. We still don’t yet understand what that means, but [[elasticity]] rounds off the angles. Curvature is the rounding off of angles. The Leibnizian [[aggregate]]s are masses infinitely composed of masses. Henceforth, they are curves. We can’t get away from it: you repeat that to yourself enough for you to understand it. I can do no better, because if you don’t understand, it’s because you haven’t yet repeated it enough in your mind. Soft masses are necessarily curves; elastic masses are necessarily curves
[[LATB1-6]]
Imagine the universe in expansion; does it flee from terror or explode with [[joy]]? Undecidable. So it is for the [[emotion]]s, these [[polyvalent]] [[labyrinth]]s to which, only after the [[event]], the semiologists and [[psychologist]]s will try to [[attribute]] some [[sense]].
[[LE p56-1]]
[[theater]] and [[representation]], far from having to be taken as [[libidinal]] givens, a fortiori metaphysical, result from a certain labor on the [[labyrinth]]ine and Moebian [[band]], a labor which prints these particular [[fold]]s and twists, the effect of which is a box closed upon itself, [[filter]]ing [[impulse]]s and allowing only those to appear on the stage which come from what will come to be known as the [[exterior]], satisfying the conditions of [[interior]]ity]]. The representative chamber is an energetic [[dispositif]].
[[Libidinal Economy]]
Don't go confusing this crestfallen message and this [[representation]] of an entirely closed [[theater]] with our Moebian-[[labyrinth]]ine [[skin]], single-sided patchwork of all the [[organ]]s ([[inorganic]] and dis[[organize]]d) the [[libido]] can traverse... it is [[infinite]], and contrary to the representative cube, [[intensity]]s run in it without meeting a terminus, without ever crashing into the wall of an absence, into a [[limit]] that marks a lack, there is nothing the libido [[lack]]s in [[real]]ity, nor does it lack [[region]]s to [[invest]]... [[example]] of the woman and her regions... The libido never fails to invest regions, and it doesn't invest under the rubric of lack and appropriation. It invests without [[condition]]. Condition is [[rule]] and [[knowledge]]...
[[LE p21-1]]
..this could happen, happen impossibly, supplication and [[order]], og the most powerful thing of all [[flow]]ing through them, do what [[desire]] desires, be its slave, [[connect]], I give you a [[name]]. And for each connection a divine name ([[proper name]]), for each cry, [[intensity]] and multiplication brought about by experiences both expected and unexpected, a little god, a little goddess... [[larval selves]]
...every [[experience]] gives rise to a divinity, every connection to an inundation of [[affect]]s
[[LE p22-1]]
...furor is divine, the divine is furor, as much in the sacred rites as in the stage plays, there is nothing that does not enter the [[trace]]s of the [[impulse]]s, under a [[singular]] name, and there is nothing that remains outside this [[passage]]. We catch [[Augustine]]; here in the act of [[fold]]ing the [[libidinal]] [[band]] onto itself in order to [[produce]] within it a volume and a chamber of presence/absence. [[intensity]]s will need to be [[filter]]ed and imparted to the active voice of the [[Zero]], in order to balance all the accounts. And we see how he cannot succeed in doing this, how the difference between [[play]] and [[madness]], simulacrum and truth, clowning and seriousness, is not set up.
[[treatment]]: [[model]]s and similar form of [[concept]]s such as the [[DSM]] and related methods as being the same as what Augustine is doing above.
[[LE p26-1]]
We will no longer speak of [[surface]]s of [[inscription]] (except inadvertently, count on it), of [[region]]s to [[invest]]... We are suspicious of the separation allowed between inscription and its [[site]]...we forge the [[idea]] of an [[intensity]], which far from setting itself up on a [[producer]]-[[body]], determines it; the idea of a [[passage]] over nothing, which produces, one instant beyond countable time. the being of its proper [[pass]]ing, its passage... Therefor not a surface first, then a writing or inscription over it. But the [[libidinal]] [[skin]] of which, after the [[event]], one will be able to say that it is made up of a patchwork of [[organ]]s... like the [[track]] of intensities, ephemeral [[work]]... it be completely heterogeneous.
[[LE p27-1]]
Between the [[libidinal]] [[skin]] and a [[register]] of [[inscription]], confusion will always be [[possible]], as between christ and the antichrist, between matter and anti matter. We haven't the [[power]], thanks god, to dissociate them, to isolate a [[region]], precisely, a [[domain]], precisely! which would be a good [[representation]], precisely, of the libidinal band...
[[LE p33-1]]
...[they] are [[incompossible]]s, are indissociable. And so it is, all things being equal, for the [[passage]] of [[intensity]]s and the [[surface]] of [[inscription]]. For this operates like [[memory]], preserving the [[passage]]... this surface is at the same time, [[indiscernible]]y, the [[libidinal]] [[skin]] 'engendered' by the mad [[bar]] and the wise flat sheet of the account book.... juxtaposition of [[punctual]] intensities, never assembled as body, merely adjoined in the impossible idea of the [[pulsion]]al [[band]], which cannot be one surface of [[inscription]], but rather several explosions, not even necessarily successive, ephemeral explosions of libidinal intensities-therefore at the same time this, and.... what remains of intensity is recorded, its [[trace]], its [[writing]]
[[LE p34-1]]
[[writing]]/this book is] forever incapable of yielding [[intensity]] in its [[event]].
[[LE p34/35-1]]
...[[become]] sufficiently refined where we are, in order to feel, in the baseness of [[exchange]]able [[sign]]s, the unrepeatable [[singularity]]s of the [[passage]]s of [[affect]], sufficiently discriminatory and-I will say it as a provocation-sufficiently jesuitical to seize, in the [[movement]] of [[smoothing]] down and inscription on this [[zero]] of [[capital]], of the [[signifier]], the this-sides or the [[beyond]]s of this movement, the immobilities or the [[excitation]]s which [[trail]] and [[betray]] this movement, to love [[inscription]] not because it [[communicate]]s and [[contain]]s, but through what necessitates the production, not because it channels, but because it [[drift]]s.
[[LE p35-1]]
[[force]] is amassed on these [[line]]s of [[contact]] which thanks to its abundant [[investment]], [[spread]] into new [[surface]]s of so-called [[inscription]]. This [[afflux]] is the [[event]].
[[LE p36-1]]
... there is no notable [[difference]] between a [[libidinal]] formation and a [[discursive]] [[formation]]., insofar as they are both formations... What is essential to a [[structure]]... is its fixity or [[consistency]]... it works on [[pulsion]]al [[movement]] as would dams, sluices, channels. One can... step twice... into the same river, if the river is located by its slope, its banks...
but one never steps twice into the same river, quite simply because there is no river, that is what is said by the [[mad]]man, lover of [[singularity]]s... a madman determined to judge a given swim as un[[exchange]]able for any other, in spite of its generic name, a madman ready to want a [[proper name]]m a divine name, for each [[intensity]] and thus to die with each of them, to lose even his memory (river-bed and course), and certainly his own identity...
[[ebb]]ing intensities stabilize themselves into [[configuration]]s... [[affect]]s are [[distribute]]d according to vast [[matrix]] [[dispositif]]s... into voluminous [[body]]s, into [[simulacra]]... into fixed [[organize]]ations of [[element]]s of the 'formerly' [[libidinal]] [[skin]] become [[organism]], or [[psychic]] [[apparatus]], or whatever you life of this kind of thing...
[[LE p38-1]]
It must not be said that the [[encounter]] takes place in the [[labyrinth]]; the labyrinth issues from the encounter.
[[LE p42-1]]
There is no [[intensity]] without a [[cry]] and without a [[labyrinth]]. The [[force]] which [[strike]]s a given [[surface]] of the great [[skin]] (that is to say which [[invent]]s it) exhausts its surroundings b making it scream, and opens the [[maze]] of its [[flow]]s.
[[LE p52-1]]
Related and yet opposed in [[A Thousand Plateaus]] to a [[point]]
[[draw]] the [[line]], or what amounts to the same thing, cross the line, pass over the line, for the line is only drawn by surpassing the line of separation
[[ATP p403-1]]
What does process mean in this [[sense]]? Process is a movement of a tri[p insofar as the [[trajectory]] does not pre-exist, that is, insofar as it [[trace]]s its own trajectory. In a certain way, we called it a [[line of flight]]. This is [[tracing]] lines of flight, and lines of flight do not p[re-exist their own trajectory
...the [[unconscious]]... its business is elsewhere. The process is ultimately the [[emission]] of any flows whatsoever.
[[Ref1 p4-1]]
Linking, specifically bi-directional linking, is the heart of Stroll. Links create connections between your notes, and help you navigate quickly from one note to the next. Links are wrapped in double square brackets:
`[[This is what a link looks like]]`
!Autocompletion
Stroll has an autocomplete feature, so when you type `[[` and start typing a link name, it will display some of the tiddlers that have those characters.
<span class="bluebox">
''Activity:''
Open [[Autocompletion]] and follow the instructions in that tiddler to learn about autocompletion. Don't worry, you will be given directions to get back to the tutorial.
</span>
When you are done playing with the Autocompletion tiddler, you are ready for the next part of the tutorial.
Stroll has a references section below each tiddler, which lists any tiddlers that backlink to that tiddler. That way you can move back and forth quickly between tiddlers.
The references can be viewed in four different ways, or hidden completely. You can change them in the reference tab (<<icon {{$:/core/images/preview-open}}"">>) in the sidebar.
*''Full text'' - displays each reference as a link and as the contents of that tiddler 'transcluded' into this tiddler.
*''Full text under sliders'' - displays each reference as a link and with a button to reveal and hide the contents of each tiddler separately.
*''Hidden'' - hides the references section from all tiddlers when you need to do that.
*''Highlights in context'' - displays each reference as a link and as highlighted search results, so you can see the context of the references without having to scroll through the entire tiddler.
*''Simple links'' - displays each reference as a simple link.
<span class="bluebox">
''Activity:''
In the sidebar, open the tab with the big pink eyeball (<<icon {{$:/core/images/preview-open}} "">>), if you haven't already. There you will find a link to a tiddler called `Muffin!`. Open Muffin! and click on the checkboxes there to see how they change the appearance of the links at the bottom of that tiddler. You will be given instructions to get back to the tutorial.
</span>
When you are done playing with my dog, head to the next part of the tutorial.
!Automatic renaming of links when changing tiddler titles
One more thing about linking: if you change the name of a tiddler, all the links to that tiddler will automatically be renamed. That will save you a lot of headaches later on.
<span class="bluebox">
''Activity:''
#Open the tiddler [[Dave Gifford]] and follow the instructions there. You will be led back to the tutorial from there.
</span>
Our interest in the [[listener]] is not, however, merely an interest in what happens to the [[verbal]] stimuli created by the [[speaker]]. In a complete account of a verbal [[episode]] we need to show that the behavior of the listener does in fact provide the conditions we have assumed in explaining the [[behavior]] of the speaker. We need separate but interlocking accounts of the behaviors of both speaker and listener if our explanation of verbal behavior is to be complete. In explaining the behavior of the speaker we assume a listener who will [[reinforce]] his behavior in certain ways. In accounting for the behavior of the listener we assume a speaker whose behavior bears a certain relation to [[environment]]al conditions. The interchanges between them must explain all the conditions thus assumed. The account of the whole episode is then complete.
[[VB67]]
the idea that increasingly [[complex]] [[collective equipment]] is giving us [[individual]]ized [[model]]s of [[desire]], [[perception]], [[motricity]], etc
[[LoF p7-1]]
If it was still necessary to talk about [[structure]] with regards to the [[unconscious]]-which is not self-evident, a point we will come back to-we would say instead that it is structured like a [[multiplicity]] of [[mode]]s of [[semiotization]], of which [[linguistic]] [[enunciation]] is perhaps not the most important.
[[Lines of Flight]]
the characteristic of modern [[mode]]s of [[semiotization]] resides in the fact of referring to the [[set]] of different [[scientific]], [[technical]], and [[social]] [[systems]], without ever managing to find a foundation in a system that would be proper to them.
[[LoF p13/14-1]]
The [[study]] of an [[object]] of [[desire]] implies not losing the [[singularity]] of its [[mode]] of [[enunciation]] en rout...we therefore cannot insist enough on the necessity of a certain [[transference]] of enunciation...In the absence of a certain [[collective assemblage]] [[between]] the knowing subjects and the subjects to be known, [[research]] can only become sterile, or what is worse, take its place amongst the [[oppress]]ive [[system]]s of [[power]].
[[LoF p37-1]]
It is true that these ([[postsignifying]] [[asignifying]]) [[component]]s also, in one way or another, remain more or less tributary to [[signifying]] [[semiology]]s, but at the level of their [[intrinsic]] [[function]]ing they escape from the [[redundancy]]s that fashion the every day...we may consider that all these components... can encounter (or constitute) signifying semiologies, but only sin so far as they find in them the [[path]] to their [[impotentation]]... in a uniquely [[linguistic]] framework, the study of semiological [[system]]s cannot but make us miss its [[pragmatic]] [[open]]ings, not only onto the real life of social [[group]]s, but also onto numerous [[mode]]s of [[semiotization]] relative to the [[cosmos]], scientific creation, [[art]]istic creation, revolutionary action, etc.
[[LoF p38/39-1]]
Rather than considering that one is dealing here with... the [[invariant]]s of an [[unconscious]], [[structure]]d in the manner of a [[syntax]], we propose, on the contrary, to start from particular kinds of [[assemblage]] of [[semiotic]] [[component]]s, which, at a given moment, in a given situation, [[manifest]] the true [[structure]]s of the unconscious, or rather what we prefer to call the [[machine]]s of the unconscious. The characteristic of these living machines is to tend constantly to free themselves... the unconscious is an [[action]], turned towards the [[future]], within the reach of a [[pragmatic]]s operating on [[real]] situations.
[[LoF p3-1]]
...in every [[economy]] of [[desire]], understood in a broad [[sense]] as a [[system]] of [[flow]]s traversing the [[relation]]s [[between]] [[individual]]s and assembling the [[set]] of [[possible]] [[connection]]s between the [[object]]s and the [[machinism]]s that constitute 'the world' for an indiviudal
[[LoF p39-1]]
...the [[control]] of [[movement]] in [[space]], and even-very often- the pure and simple forbidding of [[component]]s of [[corporeal]], [[musical]], [[plastic]] [[expression]].
[[question]]: What expressions does a given [[mechanism]] or [[assemblage]] of power [[forbid]]?
[[LoF p40-1]]
the [[social]] [[fabric]], its [[syntagmatic]] weft, no longer results from the [[composition]] of homogeneous groups... but of heterogeneous [[assemblage]]s that are not only constituted of human persons but also of [[organ]]s, of [[mode]]s of [[semiotization]] of [[territory]]s, of [[machine]]s, [[semiotic]] [[flow]]s, [[international]] [[connection]]s of every kind...
[[LoF p44-1]]
the [[assemblage]] corresponding to the fact that a [[patient]] recounts a [[dream]] to a [[psychoanalyst]]... and which is inseparable from [[translation]] [[technique]]s for [[discursive]] [[utterance]]s and [[icon]]ic [[representation]]s arising from 1. the patients own [[interpretative]] [[grid]]s on waking up, 2. those interpretative grids that have been elaborated by the psychoanalytic [[institution]]
[[LoF p4-1]]
..one never deals with the Unconscious with a capital U, but always with n formulae for [[unconscious]]es, varying according to the nature of the [[semiotic]] [[component]]s that [[connect]] [[individual]]s to one another: [[somatic]] and [[perceptual]] [[function]]s, [[institution]]s, [[equipment]], [[machine]]s, etc.
[[LoF p5-1]]
We have effectively come to consider that, to the extent that they are 'treated' by the [[machine]]s of [[collective equipment]], [[real]]ities that are apparently as ungraspable, as fleeting, as 'subjective,' as [[facial]] expressions do not simply constitute ways of 'adorning' discourse, but are fundamental [[semiotic]] [[component]]s of ]]capital]]istic [[system]]s. Everywhere and at every moment, a [[faciality]] of [[power]] hangs over institutions and social relations of power... Rather than relying on... simplifications, the analysis of a social situation or some collective equipment out to grasp not 'identifications' in general by [[constellation]]s of faciality [[trait]]s, the collective tics, the stereotypes that [[model]] a local power [[formation]]... There is an entire [[micropolitic]]al [[ethology]] that should by explored and experimented with here...
[[LoF p47-1]]
The [[deterritorial]]ized [[chain]]s put into [[play]] by these [[machine]]s do not [[signify]] as such (in the case of syntagmatic chains of [[language]], the machines of scientific, technological, economic, etc, [[sign]]s, for example, we will even call the [[asignifying]]), but they entertain particular relations with [[signifying]] [[content]]s. They [[hierarchize]] them, [[order]] them on the basis of a unique [[semiotic]] [[grid]] that fundamentally [[function]]s as a [[machine]] of [[subjection]] at the service of [[power]] [[formation]]s (the [[school]], [[military]], [[legal]], machine, etc) and secondarily as a significant [[mode]] of [[expression]].
[[LoF p5/6-1]]
excellent critique of [[capitalism]]
[[hierarchy]]s of [[invaraiant]]s always remain [[external]] to the [[process]]es themselves
[[LoF p50-1]]
..we consider that every kind of [[assemblage]] brings about the concatenation of [[semiotic]] [[chain]]s that are fundamentally different from one another and which at the outset f[[function]] not as a [[signifying]] [[discourse]] but as so many [[machine]]s of [[asignifying]] [[sign]]s. What one is dealing with at the heart of productive [[process]]es and social [[group]]s are always semiotic procedures, [[regime of sign]]s for which it is absurd to want to propose master keys.
...'on the ground' one is always confronted with semiotic [[composition]]s... that are open to a [[possible]]ity that cannot be calculated... what we call a [[machinic]] [[creativity]].
[[LoF p6-1]]
fn...conclusions that can be drawn from multiple cases (e.g. from differences between pairs of items) are of a different [[logical type]] from conclusions drawn from a single item (e.g. a [[quantity]]) [[MN49]]
A [[medium]] consists of [[loose]]ly [[couple]]d [[element]]s, whereas a [[form]] joins the same elements in a [[strict]] [[coupling]].
[[TS118]]
[[NS6 p8-1]] followup re [[Golgi]] and his continuous web/[[syncytium]]
[[between]] these [[event]]s-[[effect]]s and [[language]], or even the possibility of language, there is an essential relation. It is the characteristic of events to be [[express]]ed or [[expressible]], uttered or utterable, in [[proposition]]s which are at least [[possible]]. There are many relations inside a [[proposition]].
[[LoS p10-1]]
an [[example]] of how series can be generated, "two series of [[event]]s with great internal and accelerated [[difference]]s ([[speed]]?) being regulated by propositions, or at least by sounds and onomatopoeias." Then,
The [[transition]]s from one [[series]] to another, and the [[communication]] [[between]] series, are generally secured through a [[proposition]] which begins in one series and ends in another, or through [[onomatopoeia]], that is, a [[sound]] which partakes of both.
[[assemblage]] [[strata]]
[[LoS p40-1]]
The systematic characteristics of [[good sense]] are thus the following: it affirms a single [[direction]]; it determines the direction to go from the most to the least [[differentiate]]d, from the [[singular]] to the [[regular]], and from the remarkable to the ordinary; it orients the arrow of [[time]] from [[past]] to [[future]], according to this determination; it assigns to the [[present]] a directing role in this [[orientation]]; it renders possible thereby the [[function]] of prevision; and it selects the [[sedentary]] [[striated]] type of [[distribution]] in which all of the preceding characteristics are brought together.
[[LoS p71-1]]
[[incorporeal]] [[sense]], as the result of the [[action]]s and [[passion]]s of the [[body]], may preserve its [[difference]] from the [[corporeal]] [[cause]] only to the [[degree]] that it is linked, at the [[surface]], to a [[quasi-cause]] which is itself incorporeal. The [[Stoic]]s saw clearly that the [[event]] is subject to a double [[causal]]ity, referring on the one hand to [[mixture]]s of bodies which are its cause and, on the other, to other events which are its quasi-cause.
[[LoS p88-1]]
[[good sense]] affirms that in all things there is a determinable [[sense]] or [[direction]]; but [[paradox]] is the [[affirmation]] of both senses or directions at the same [[time]].
It is by following the [[border]], by skirting the [[surface]], that one passes from [[body]]s to the [[incorporeal]].
[[LoS p9-1]]
[[neutral]]ity, the impassibility of the [[event]], its indifference to the [[determination]]s of [[inside]] and the [[outside]], to the [[individual]] and the [[collective]], the [[particular]] and the [[general]]-all these [[form]] a [[constant]] without which the event would not have its [[eternal]] [[truth]] and could not be [[distinguish]]ed from its [[temporal]] [[actual]]izations.
[[LoS p95-1]]
To green indicates a [[singularity-event]] in the vicinity of which the tree is constituted. To sin indicates a [[singularity]] [[event]] in the vicinity of which [[Adam]] is constructed. But toe be green or to be a sinner are now the analytic [[predicate]]s of constituted subjects-namely, the tree and adam
[[LoS p100-1]]
[[sense]] is both the [[expressible]] or the [[express]]ed of the [[proposition]], and the [[attribute]] of the [[state of affair]]s. It turns one side towards things and one side toward propositions. But it does not merge with the proposition which expresses it anymore than with the state of affairs or the [[quality]] which the proposition denotes. It is exactly the [[boundary]] [[between]] propositions and [[thing]]s. It is this [[aliquid]] at once extra-being and [[inherence]], that is, the minimum of being which befits inherences. It is in this sense that it is an "[[event]]": on the condition that the event is not confused with its spatio-temporal realization in a state of affairs. We will not ask therefore what is the sense of the event: the event is sense itself. The event belongs essentially to language; it has an essential relationship to language.
[[LoS 12-1]]
To pass to the other side of the [[mirror]] is to pass from the relation of [[denotation]] to the relation of [[expression]]-without pausing at the intermediaries, namely, at [[manifestation]] and [[signification]]. It is to reach a [[region]] where [[language]] no longer has any [[relation]] to that which it [[denote]]s, but only to that which it [[express]]es, that is, to [[sense]]. This is the final displacement of the duality; it has now moved inside the proposition.
[[LoS p22-1]]
[[sense]] is never only one of the two terms of the [[duality]] which contrasts [[thing]]s and [[proposition]]s, [[substantive]]s and [[verb]]s, [[denotation]]s and [[expression]]s; it is also the [[frontier]], the [[cutting edge]], or the [[articulation]] of the [[difference]] [[between]] the two terms, since it has at its disposal an impenetrability which is its own and within which it is [[reflect]]ed. For these reasons, sense must be developed for its own sake in a new [[series]] of [[paradox]]es, which are now [[internal]].
[[LoS p25-1]]
...[[word]]s may go awry, being obliquely swept away by the [[verb]]s. It is as if [[event]]s enjoyed an irreality which is communicated through [[language]] to the [[savoir]] and to [[person]]s. For personal uncertainty is not a doubt foreign to what is happening, but rather an [[objective]] [[structure]] of the vent itself, insofar as it moves in two [[direction]]s at once, and insofar as it [[fragment]]s the [[subject]] following this double direction. ]]paradox]] is initially that which destroys [[good sense]] as the only direction, but it is also that which destroys [[common sense]] as the assignation of fixed [[identity]]s.
[[LoS p1-1]]
That is to say, he decomposes each [[couplet]] and freezes it, in order to [[draw]] from it a [[supplement]]ary couplet. WQe shall see why. But we can be satisfied with a [[regress]] of two alternating terms: the [[name]] which [[denote]]s something and the name which denotes the [[sense]] of this name. This two term regress is the [[minimal]] [[condition]] of [[indefinite]] [[proliferation]]
n1 n2 n3 n4... -> [n1, n2] [n3, n4] -> [n1, n3] [n2, n4] "the minimal condition for indefinite proliferation."
Let's add some extended models [n1. n2, n3, n4, n5, n6, n7, n8]
[n1, n2] [n3, n4] [n5, n6] pn7, n8]
[n1, n3, n5, n7] [n2, n4, n6, n8]
split the above to pairs
([n1, n3] [n5, n7]) ([n2, n4] [n6, n8])
1 2
3 4
5 6
[[LoS p28-1]]
[[sense]] brings about the suspension of both [[affirmation]] and [[negation]]... As that which is [[express]]ed by the [[proposition]], sense does not exist, but [[inhere]]s or [[subsist]]s in the [[proposition]].
[[LoS p30-1]]
Let us take quantity: all men are white, no man is white, some men are not white; or relation: sense must be the same in the case of inverse relations, since the relation with regard to [[sense]] is always stablished in both [[direction]]s at once, insofar as it causes all the [[paradox]]es of [[becoming-mad]] to appear yet again. Sense is always a double sense and excludes the possibility that there may be a [[good sense]] in the relation. [[event]]s are never [[cause]]s of each other, but rather enter the of [[quasi-cause]]ality, an unreal and ghostly causality, endlessly reappearing in the two sense... [cats eat bats, bats eat cats, I say what I mean, I mean what I say, I like what I get, I et what I like]... once can never be preferred except to itself, following the [[law]] of [[becoming]] (to choose a thing from itself.
[[LoS p31-1]]
[[sense]] is indifferent to all opposites. This is so because all of these opposites are but [[mode]]s of the [[proposition]] considered in its relations of [[denotation]] and [[signification]], and not the [[trait]]s of the [[sense]] which it [[express]]es. Is it, then, the [[status]] of the [[pure]] [[event]]...
[[LoS p33-1]]
[the [[paradox]] of] the [[proposition]]s which designate contradictory [[object]]s themselves themselves have a [[sense]]. Their [[denotation]], however, cannot at all be fulfilled; nor do they have a [[signification]], which would define the type of possibility for such a fulfillment. They are without signification, that is, they are [[absurd]]. Nevertheless, they have a sense, and the two notions of absurdity and [[nonsense]] must not be confused. Impossible objects- square circles, [[matter]] without [[extension]], [[perpetuum mobile]], mountains without valleys, etc.-are objects "without a [[home]]"outside of being, but they have a precise and distinct [[position]] within this outside; they are of "extra being"-[[pure]], ideational events, unable to be realized in a [[state of affair]]s...
If we distinguish two sorts of beings, the being of the [[real]] as the matter of [[denotation]]s and the [[being]] of the [[possible]] as the [[form]] of [[signification]]s, we must yet add this [[extra-being]] which defines a [[minimum]] common to the real, the possible, and the [[impossible]]. For the principle of [[contradiction]] is applied to the possible and to the real, but not to the impossible: impossible [[entity]]s are "[[extra]]-existents," reduced to this minimum, and insisting as such in the [[proposition]].
[[LoS p35-1]]
When we [[construct]] our two [[series]] out of one [[homogenous]], one is always of the [[order]] of the [[even]]t ([[signifier]]) and one is always of the order of the [[body]]s ([[signified]]). This section goes into the Sr/Sd relationship here. Terms are ultimately arbitrary, like [[Content]] and [[expression]]
[[LoS p35-2]]
Three characteristics, therefore, permit the specification of the [[relation]] and [[distribution]] of [series]] in general. First, the terms of each series are in [[perpetual]] [[relative] [[displacement]] ([[deterritorialize]]ation?) in relation to those of the other.. There is an essential lack of correspondence. This shift or displacement is not a disguise covering up or hiding the [[resemblance]]s of series through the introduction of secondary [[variation]]s in them.
This relative displacement is, on the contrary, the [[primary]] variation without which neither series would open up onto the other. Without it, the series would not constitutes themselves through this doubling up, nor would they refer to one another through this variation alone. There is thus a double sliding of one series over or under the other, which constitutes both, in a perpetual [[disequilibrium]] vis-a-vis each other.
Second, this disequilibrium must itself be oriented: one of the two series-the one determined as [[signifying]], to be precise, presents an [[excess]] over the other. For there is always a blurred excess of [[signifier]].
.
[[LoS p37/38-1]]
A different reading of [[content]] and [[expression]], [[double articulation]]. [[body]]s only exist in the [[present]] and are here only called [[cause]]s. "all bodies are causes in relation to each other, and causes for each other-but causes of what?" Expression here is the [[effect]]s, not bodies by [[incorporeal]] [[entity]]s. [[Chronos]] and bodies, [[Aion]] and incorporeals. the [[verb]], the [[event]] as being "logical or dialectical [[attribute]]s."
"these are not three successive [[dimension]]s, but two simultaneous readings of [[time]]." followed by an excellent [[example]]
[[LoS p3-1]]
Finally, we reach the most important [[point]], a very special and paradoxical case, which ensures the [[relative]] [[displacement]] of the two [[series]], the [[excess]] of the other over the other, without being reducible to any of the terms of the series or to any relation between the terms... the particular role of a special [[element]]: the [[debt]]...
What are the characteristics of this paradoxical [[entity]]? It [[circulate]]s without end in both series and, for this reason, assures their communication. It is a two-sided [[entity]], equally present in the [[signifying]] and [[signified]] series. It is the [[mirror]]. Thus, it is at once [[word]] and [[thing]], name and object... [[expression]] and [[designation]], etc. It guarantees, therefore, the [[convergence]] of the two series which it traverses, but precisely on the [[condition]] that it makes them endlessly [[diverge]]. If the terms of each series are [[relative]]ly displaced, in relation to one another, it is primarily because they have in themselves an [[absolute]] place; but this absolute place is always determined by the terms distance from this [[element]] which is always displaced, in the two series, in relation to itself.
We must say that the paradoxical entity is never where we look for it, and conversely that we never find it where it is. As [[Lacan]] says, it fails to [[observe]] its place. It also fails to observe its own [[identity]], [[resemblance]], [[equilibrium]], and [[origin]]. We will not say, therefore, of the two series it animates, that the one is originary and the other derived, though they certainly may by originary or derived in relation to one another. They can also be successive inn relation to one another. But they are strictly simultaneous in relation to the entity by means of which they communicate.
They are simultaneous without ever being equal, since the entity has two sides, one of which is always absent from the other. It behooves it, therefore, to be in excess in the one series which it constitutes as signifying, and lacking in the other which it constitutes as signified: split apart, incomplete by nature or in relation to itself. Its excess always refers to its own [[lack]], and conversely, its lack always refers to its own excess. But even these determinations are still relative. For that which is in excess in one case is nothing but an extremely [[mobile]] [[empty place]]; and that which is lacking in another case is a rapidly moving object, an [[occupant without a place]], always [[supernumerary]] and displaced.
an [[example]] from [[Alice]] follows.
[[LoS p39/40-1]]
[another example of [[series]] ] we find two series of [[proposition]]s (...one series of [[pure]] [[expression]]s and one series of [[denotation]]s). These series are characterized by great [[disparity]], and are [[regulate]]d by means of an [[esoteric]] [[word]]... One type is formed by contracting the [[syllabic]] [[element]]s of on proposition or of many propositions which follow one another... "y'reince" takes the place of "your royal highness." This [[contraction]] aims at the [[extraction]] of the [[global]] [[sense]] of the entire proposition in order to name it with a single syllable. In any case, esoteric words of this first type form a [[connection]], a [[synthesis]] of [[succession]] which bears upon a single series.
[[LoS 43-1]]
the [[esoteric word]]s which are characteristic of [[Carroll]], however, belong to another type. They belong to a [[synthesis]] of [[coexistence]] intended to guarantee the [[conjunction]] of two [[series]] of heterogenous [[proposition]]s, or [[dimension]]s of propositions. (This of course amounts to the same thing, since it is always possible to [[construct]] the propositions of one series by making them [[embody]] a particular dimension.) We have seen that the best example of this was the word "Snark": it [[circulate]]s throughout the two series of alimentary and [[semiological]] orality, or throughout the two [[dimension]]s of the proposition-the [[denotative]] and the [[expressive]]... The variety of [[name]]s can easily be explained: not one of them is the word which circulates; rather, they are the names which denote this word ("what the wor dis called"). The circulating word is of a different [[nature]]: in principle, it is the [[empty square]], the empty shelf, the blank word... This word is therefore "called" by names which indicate... displacements ([[deterritorialize]]ations).
A word which communicates between one series is a portmanteau word, vs the esoteric word which conjuncts the two different series; a portmanteau can [[function]] as an esoteric word, even though it's [[content]] is a portmanteau (p45m para2)
[[LoS p43-1]]
The [[portmanteau]] word is grounded upon a strict [[disjunctive]] [[synthesis]].... Frumious: the necessary disjunction is not between fuming and furious... rather, it is between fuming-and-furious on one and and furious-and-fuming on the other. In this [[sense]] the [[function]] of the portmanteau word always consists in the ramification of the [[series]] into which it is inserted.
[[LoS p44-1]]
The [[esoteric word]] in general refers at once to the [[empty square]] and to the [[occupant without place]]. But, in [[Carroll]]'s work, we must distinguish three sorts of esoteric words: [[contracting]] words, which perform a [[synthesis]] of [[succession]] over a single [[series]] and bear upon the syllabic elements of a [[proposition]] or a succession of propositions in order to [[extract]] from them their [[composite]] [[sense]] ("[[connection]]"); [[circulating]] words, which perform a synthesis of [[coexistence[[ and [[coordination]] between the two heterogenous series and which directly and at once bear upon the respective series ("[[conjunction]]"); and [[disjunctive]] or [[portmanteau]] words, which perform an [[infinite]] [[ramification]] of coexisting series and bear at once upon words and senses, or syllabic and [[semiological]] [[element]]s ("[[disjunction]]"). The [[ramifying]] [[function]] or the disjunctive synthesis offers the real definition of the portmanteau word.
[[LoS p46-1]]
By means of this [[excess]] and [[lack]], the [[series]] refer to each other in eternal dis[[equilibrium]] and in [perpetual]] [[deterritorialize]]ation... there are always too many [[signifying]] [[sign]]s... In whatever manner [[language]] is acquired, the [[element]]s of language must have been given all together, all at once, since they do not exist independently of their [[possible]] [[differential]] relations.
But the [[signified]] in general is of the [[order]] of the known, though the known is subject to the [[law]] of a progressive movement, which proceeds from one [[part]] to another-partes extra partes. And whatever [[totalize]]ations [[knowledge]] may perform, they remain [[asymptotic]] to the [[virtual]] [[totality]] of langue or language. The signifying series [[organ]]izes a preliminary totality, whereas the signified series arranges (assembles...) the produced totalities.
[[double articulation]]
[[LoS p47-1]]
It is necessary to understand that the two [[series]] are [[mark]]ed, one by [[excess]], the other by [[lack]], and that the two determinations are interchanged without ever reaching equilibrium. What is in excess in the [[signifying]] series is literally an [[empty square]] and an always ([[deterritorialize]]d) [[displaced place]] without an occupant. What is lacking in the [[signified]] series is a [[supernumerary]] and non-situated given- an unknown, an [[occupant without a place]], or something always displaced. These are two sides of the same thing-two uneven sides-by means of which the two series communicate without losing their [[difference]]
[[LoS p48-1]]
We may, perhaps, [[determine]] certain [[minimal]] [[condition]]s for a [[structure]] in general:
1) there must be at least two heterogenous [[series]], one fo which shall be determined as "[[signifying]]" and the other as "[[signified]]" (a single series never suffices to [[form]] a structure).
2) Each of these series is constituted by [[term]]s which exist only through the relations they maintain with one another. To these relations, or rather to the [[value]]s of these [[relation]]s, there [[correspond]] very [[particular]] [[event]]s, that is, [[singularity]]s which are [[assign]]able within the structure... For [[example]], the differential relations among [[phoneme]]s assign singularities within [[language]], in the "vicinity" of which the [[sonority]]s and [[signification]]s characteristic of the [[language]] are constituted. Moreover, it seems that the singularities attached to a series determine in a [[complex]] manner the terms of the other series ([[isomorphism]] of ATP?). In any case, a structure includes two [[distribution]]s of singular [[point]]s responding to the [[base]] series. [base series-what is meant?] And for this reason, it is imprecise to oppose structure and event: the structure includes a [[register]] of [[ideal]] events, that is, an entire [history]] internal to it (for [[example]], if the series include "characters," it is a history which [[connect]]s all the [[singular]] points corresponding to the [[position]]s of the characters relative to one another in the two series).
3) The two heterogenous series [[converge]] towards a [[paradox]]ocal [[element]], which is their "[[differentiator]]." This is the [[principle]] of the [[emission]] of singularities. This element belongs to no series; or rather, it belongs to both series at once and never ceases to [[circulate]] throughout them. It has therefore the [[property]] of always being [[deterritorialize]]d in relation to itself, of "being absent from its own place," its own [[identity]], its own [[resemblance]], and its own [[equilibrium]]. It appears in one of the series as an [[excess]], but only on the [[condition]] that it would appear at the same time in the other as a [[lack]]. But if it is in excess in the one, it is so only as an [[empty square]]; and if it is lacking in the other, it is so only as a [[supernumerary]] pawn or an [[occupant]] without a [[compartment]]. It is both [[word]] and [[object]] at once: [[esoteric word]] and [[exoteric]] object.
[[LoS p50-1]]
It has the function of [[articulating]] the two [[series]] to one another, of [[reflect]]ing them in one another, of making them [[communicate]], [[coexist]], and be [[ramified]]. Again, it has the [[function]] of joining the [[singularity]]s which correspond to the two series in a "tangled [[tale]]," of assuring the [[passage]] from one [[distribution]] of singularities to the next. In short, it has the function of bringing about the distribution of [[singular]] [[point]]s; of determining as [[signifying]] the series in which it appears in [[excess]], and as [[signified]], the series in which it appears correlatively as [[lacking]] and, above all, of assuring the bestowal of [[sense]] in both signifying and signified series. For [[sense]] is not to be confused with [[signification]]; it is rather what is [[attribute]]d in such a way that it determines both the signifier and signified as such. We can conclude from this that there is no [[structure]] without series, without relations between the [[term]]s of each series, or without singular points corresponding to these relations. But above all, we can conclude that there is no structure without the [[empty square]], which makes everything [[function]].
[[LoS p50/51-1]]
What is an [[ideal]] [[event]]? It is a [[singularity]]-or rather a [[set]] of singularities or of [[singular]] [[point]]s characterizing a mathematical curve, a physical [[state of affair]]s, a psychological and moral [[person]]. Singularities are turning points and points of inflection; bottlenecks, knots, foyers, and [[center]]s; points of function, [[condensation]], and boiling; points of tears and joy, sickness and health, hope and anxiety, "sensitive" points. Such singularities, however, should not be confused either with the personality of the one [[express]]ing herself in [[discourse]], or with the [[individual]]ity of a state of affairs designated by a [[proposition]], or even with the generality or [[universe]]ality of a [[concept]] [[signified]] by a [[figure]] or a curve.
The singularity belongs to another [[dimension]] than that of [[denotation]], [[manifestation]], or [[signification]]. It is essentially [[pre-individual]], [[non-personal]], and [[aconceptual]]. It is quite indifferent to the individual and the collective, the personal and the impersonal, the particular and the general-and to their oppositions. Singularity is [[neutral]]. On the other hand, it is not "ordinary": the singular point is opposed to the ordinary.
[[LoS p51-1]]
We said that a [[set]] of [[singularity]]s corresponds to each one of the [[series]] of a [[structure]]. Conversely, each singularity is the [[source]] of a series extending in a determined [[direction]] right up to the [[vicinity]] of another singularity. In this [[sense]], not only are there several [[divergent]] series in a structure,. but each series is itself constituted by several [[convergent]] [[sub-series]]. If we examine the singularities corresponding to the two important basic sub-series, we see that they are distinguished, in both cases, by their [[distribution]]. From one to the other, certain singular points disappear or are [[divide]]d, or undergo a change of [[nature]] and [[function]]. The moment that the two series [[resonance]] and [[communicate]], we pass from one [[distribution]] to another.
The moment that the series are traversed by the [[paradoxical]] agent, singularities are displaced, redistributed, and transformed into one another, and change sets. If the singularities are veritable events, they communicate in one and he same [[Event]] which endlessly redistributes them, while their transformations form a [[history]] ([[memory]] of [[Luhmann]]?)...
Events are ideal... The [[distinction]]... is between the event (ideal)... and its... realization in a state of affairs... [[event]] and [[accident]]... remove [[essence]]s and to substitute events in their place, as jets of singularities.
[[LoS p52-1]]
The [[mode]] of the [[event]] is the [[problematic]]. One must not say that there are problematic events, but that events [[bear]] exclusively upon problems and [[define]] their [[condition]]s... The event by itself is problematic and [[problematizing]]. A problem is [[determine]]ed only by the [[singular]] [[point]]s which [[express]] its conditions. We do not say that the problem is thereby resolved; on the contrary, it is determined as a problem... The [[singularity]]s preside over the genesis of the [[solution]]s... [[pre-personal]] and [[post-personal]]? of course, to be pre-personal is to be post-personal
[[LoS p52/53-1]]
We can [[speak]] of [[event]]s only in the [[context]] of the [[problem]] whose [[condition]]s they determine. We can speak of events only as [[singularity]]s deployed in a [[problematic]] [[field]], in the vicinity of which the [[solution]]s are organized.... if the [[distribution]]s of singularities corresponding to each [[series]] [[form]]s [[field]]s of problems, how are we to characterize the [[paradox]]ical [[element]] which runs through the series, makes them [[resonance]], [[communicate]], branch out, and which exercises [[command]] over all the [[repetition]]s, [[transformation]]s, and [[redistribution]]s? The element must be defined as the [[locus]] of a [[question]].
The problem is determined by the singular [[point]]s corresponding to the series, but the question is determined by an aleatory point corresponding to the [[empty square]] or [[mobile]] element. The [[metamorphoses]] or redistributions of singularities forms a [[history]] ([[memory]]?); each [[combination]] and each distribution is an event. But the paradoxical instance is the [[Event]] in which all events communicate and are distributed. It is the [[Unique]] event, and all other events are its bits and pieces.
[[solution]]s and [[problem]]s; the two series that keep appearing everywhere here? Solution problem question. Causes, effects, frontier. Denotation, sense, mirror. 1, 2, 3.
[[LoS p54-1]]
[[incorporeal]] [[effect]]s are never themselves [[cause]]s in relation to each other; rather, they are only [[quasi-cause]]s following [[law]]s which perhaps [[express]] in each case the relative unity or [[mixture]] of [[body]]s on which they depend for their [[real]] [[cause]]s. Thus [[freedom]] is preserved in two complementary manners: once in the interiority of [[destiny]] as a connection between causes, and once more in the [[exterior]]ity of [[event]]s as a [[bond]] of effects.
[[LoS p4/5-1]]
This present does not contradict the [[Aion]]; on the contrary, it is the [[resent]] as being of reason which is subdivided ad infinitum into something that has just happened and something that is going to happen, always flying in both directions at once. The other present ([[Chronos]]), the living present, happens and brings about the even. But the [[event]] nonetheless retains an eternal truth upon the [[line]] of Aion...
Aion: Ideal event; Chronos: [[effectuate]]s the event?
[[LoS p56-1]]
The [[Aion]] is the straight [[line]] [[trace]]d by the [[aleatory]] [[point]]. The [[singular]] points of each [[event]] are distributed over this [[line]], always in relation to this aleatory point ([[question]], [[empty square]], [[esoteric word]]...) which subdivides them ad infinitum, and it causes them to [[communicate]] with each other, as it extends and stretches them out over the entire line...
Each event is adequate to the entire Aion; each event communicates with all the others, and they all [[form]] one and the same [[Event]], and event of the Aion where they have an eternal [[Truth]]...
Only [[body]]s [[penetrate]] each other, only [[Chronos]] is filled up with [[state of affair]]s and the movements of the objects that it measures. But being an [[empty]] and un[[fold]]ed form of [[time]], the Aion subdivides ad infinitum, that which haunts it without ever inhabiting it-the Event for all events. This is why the [[unity]] of events or [[effect]]s among themselves is very different from the unity of [[corporeal]] [[cause]]s among themselves.
[[LoS p63-1]]
The two tables or [[series]] are like the sky and the [[earth]], [[proposition]]s and things, [[expression]]s and consumptions. [[Carroll]] would say that they are the multiplication table and the dinner table. The [[Aion]] is precisely the [[border]] of the two, the straight [[line]] which connects them, an impenetrable window or glass. It [[circulate]]s therefore throughout the series and never ceases to [[reflect]] and to [[ramify]] them. It makes one and the same [[event]] the [[express]]ed of propositions and the [[attribute]] of things.
[[LoS p64-1]]
Let us summarize the characteristics of this [[paradoxical element]] or [[perpetuum mobile]]. Its [[function]] is to traverse the heterogenous [[series]], to [[coordinate]] them, to make them [[resonance]] and [[converge]], but also to [[ramify]] them and to introduce into each one of them [[multiple]] [[disjunction]]. It is both word=x and thing=x. Since to belongs simultaneously to both series, it has two sides. But the sides are never balanced, joined together, or paired off, because the [is the paradox here the affirmation of both sense, both sides, both series both...] [[paradox]]ical element is always in dis[[equilibrium]] in relation to itself. To account for this correlation and this dissymmetry we made use of a number of dualities: it is at once [[excess]] and [[lack]], empty square and supernumerary object... white word and black object. [[black hole/white wall]]? "For the [[Boojum]] was a [[Snark]], you see."... two dissymmetrical halves of an ultimate [[instance]].
[[LoS p64-2]]
[[word]]=x in a [[series]], but at the same time, [[thing]]=x in another series; perhaps (we shall se this later) it is necessary to add to the [[Aion]] yet a [[third]] aspect, [[action]]=x, insofar as the series [[resonance]] and [[communicate]] and [[form]] a "[[tangled tale]]." [[Snark]] is an unheard-of [[name]], but it is also an invisible monster. It refers to a formidable action, the hunt, at the end of which the hunter is dissipated and loses his [[identity]]. [identity=hunter only exists for the hunt; does not stay permanent? [[body without organs]] logic; temporary, transient [[organ]] of identity]... A [[Jabberwock]] example of word/thing/action follows.
[[LoS p66-1]]
...the normal [[law]] [[govern]]ing all [[name]]s endowed with [sense]] is precisely that their sense may be [[denote]]d only by another name (N1->N2->N3...). The name saying its own name can only be [[nonsense]] (Nn)...
the second [[normal]] law governing names endowed with sense is that their sense can not determine an [[alternative]] into which they themselves enter. Nonsense thus has two sides, one [[correspond]]ing to the [[regressive]] [[synthesis]], the other to the [[disjunctive]] synthesis.
[[LoS p67-1]]
...what would be the [[purpose]] of rising from the [[domain]] of [[truth]] to the domain of [[sense]], if it were only to find between sense and [[nonsense]] a relation analogous to that of the true and the false?.. The logic of sense is necessarily determined to posit between sense and nonsense an original type of [[intrinsic]] [[relation]], a [[mode]] of [[copresence]]. For the [[time]] being, we may only hint at this mode by dealing with nonsense as a [[word]] which says its own sense.
[[LoS p67-2]]
For the [[Stoic]]s... [[state of affair]]s, [[quantity]]s, and [[quality]]s are no less [[being]]s (or [[body]]s) than [[substance]] is; they are a prt of substance, and in this [[sense]] they are contrasted with an extra-Being which constitutes the [[incorporeal]] as a nonexisting [[entity]]. The highest term is therefor not Being, but Something ([[aliquid]]), insofar as it subsumes being and non-being, existence and inherence.... [the effect [[series]] is] on the [[surface]] of things: The ideational or the [[incorporeal]] can no longer be anything other than an "effect."
[[LoS p6-1]]
Inside the [[series]], each [[term]] as [[sense]] only by virtue of its [[position]] [[relative]] to every other term. But this relative position itself depends on the [[absolute]] position of each term relative to the [[instance]]=x ([[empty square]]. The latter is determined as [[nonsense]] and [[circulate]]s endlessly throughout the series. Sense is actually produced by this circulation as sense which [[affect]]s both series. In short, sense is always an [[effect]]... a [[surface]] effect, a position effect, and a [[language]] effect.
such an effect is not at all an appearance or an [[illusion]]. It is a product which spreads out over, or extends itself the length of, the surface; it is strictly co-present to, and [[coextensive]] with, its own [[cause]], and determines this cause as an imminent cause, inseparable from its effects, pure nihil or x, outside of effects themselves... the discovery of sense as an [[incorporeal]] effect, being always produced by the circulation of the [[element]]=x in the series of terms which it traverses, must be named the... "[[Carroll]] effect."
[[LoS p68-1]]
[[sense]], regarded not at all as appearance but as [[surface]] [[effect]] and [[position]] effect, and produced by the [[circulation]] of the [[empty square]] in the structural [[series]]... sense is produced by [[nonsense]] and its [[perpetual]] [[deterritorialize]]ation, and that it is born of the respective [[position]] of [[element]]s which are not by themselves "[[signifying]]"...
Nonsense does not have any particular sense, but is opposed to the [[absence]] of sense rather than to the sense that it produces in [[excess]]-without ever maintaining with its product the simple relation of exclusion... Nonsense is that which has no sense, and that which, as such and as it enacts the [[donation]] of [[sense]], is opposed to the [[absence]] of sense. This is what we must understand by [[nonsense]].
[[LoS p70-1]]
"which way, which way?" asks [[Alice]]. The [[question]] has no [[answer]], since it is the characteristic of [[sense]] not to have any [[direction]] or [[good sense]]. Rather, [[sense]] always goes to both directions at once, in the infinitely subdivided and elongated past-future. [[paradox]]-both directions at once.
[[LoS 76-1]]
The [[event]] being itself impassive, allows the [[active]] and the [[passive]] to be interchanged more easily, since it is neither the one nor the other, but rather their common result (to cut-to be cut). Concerning the [[cause]] and the [[effect]], events, being always only effects, are better able to from among themselves [[function]]s of [[quasi-cause]]s or relations of quasi-causality which are always reversible (the wound and the scar)
[[LoS p7-1]]
...it is the task of [[language]] both to establish [[limit]]s and to go beyond them. Therefore language includes terms which do not cease to displace their [[extension]] and which make possible a [[reversal]] of the [[connection]] in a given [[series]] (thus too much and not enough, few and many). The [[event]] is [[coextensive]] with [[becoming]], and becoming is itself coextensive with language; the [[paradox]] is thus essentially a "[[sorites]]," that is a series of successive [[addition]]s and retrenchments. Everything happens at the [[boundary]] between [[thing]]s and [[proposition]]s.
retrenchment: the way we go from event to becoming to language to....?
[[LoS p8-1]]
[for the [[schizophrenic]] the] [[word]] loses its [[sense]], that is, its [[power]] to [[draw]] together or to [[express]] an [[incorporeal]] [[effect]], distinct from the [[action]]s and [[passion]]s of the [[body]], and and [[ideal]] [[event]] distinct from its [[present]] [[real]]ization.
[[LoS p77-1]]
The [[word]] no longer [[express]]es an [[attribute]] of the [[state of affair]]s; its [[fragment]]s merge with unbearable sonorous [[quality]]s, invade the [[body]] where they [[form]] a [[mixture]] and a new state of affairs, as if they themselves were a noisy, poisonous food and canned shit. The [[part]]s of the body, its [[organ]]s, are determined in virtue of [[decompose]]d [[element]]s which [[affect]] and [[assail]] them. In this [[passion]], a [[pure]] [[language]]-affect is substituted for the [[effect]] of language... it is less a [[question]] of recovering meaning than of destroying the word, of conjuring up the affect, and of [[transform]]ing the painful passion of the body into a triumphant action...
[[LoS p87-1]]
[[paradox]] appears as a dismissal of [[depth]], a display of [[event]]s at the [[surface]], and a deployment of [[language]] along this [[limit]].
[[LoS p8-2]]
...the [[event]], that is, [[sense]], referred to a [[paradox]]ical [[element]], intervening as [[nonsense]] or as an [[empty square]], and operating as a [[quasi-cause]] assuring the full [[autonomy]] of the [[effect]]...
The autonomy of the effect is thus defined initially by its [[difference]] in nature from the cause; in the second place, it is defined by its relation to the quasi-cause.
[[LoS 94-1]]
Thus, [[knowledge]] is either
[[obscure]] or [[clear]], and again, clear knowledge is either [[confuse]]d or [[distinct]], and
distinct knowledge either inadequate or [[adequate]], and adequate knowledge either symbolic or intuitive: and, indeed, if knowledge were, at the same time,
both adequate and intuitive, it would be absolutely perfect.
A notion which is not sufficient for recognizing the thing represented is
obscure... [24, terms] for which we have no settled definition. Whence, a proposition which involves such a notion is also
obscure. Therefore, knowledge is clear when I have the means for recognizing
the thing represented. Clear knowledge, again, is either confused or distinct.
It is confused when I cannot enumerate one by one [[mark]]s [now] [[sufficient]] for
[[differentiate]]ing a thing from others, even though the thing does indeed have
such marks and requisites into which its notion can be resolved. And so we
recognize [[color]]s, smells, tastes, and other particular objects of the [[sense]]s
clearly enough, and we distinguish them from one another, but only through
the simple testimony of the senses, not by way of explicit marks. Thus we
cannot explain what red is to a blind man, nor can we make such things clear
to others except by leading them into the presence of the thing and making
them see, smell, or taste the same thing we do, or, at very least, by reminding
them of some past [[perception]] that is similar. This is so even though it is
certain that the [[notion]]s of these [[quality]]s are [[composite]] and can be resolved
because, of course, they do have causes.
Similarly, we see that painters and
other artists correctly know [cognosco] what is done properly and what is done
poorly, though they are often unable to explain their judgments and reply to
questioning by saying that the things that displease them lack an unknown
something. But a distinct notion is like the notion an assayer has of gold, that
is, a notion connected with marks and tests sufficient to distinguish a thing
from all other similar bodies. Notions common to several senses, like the
notions of number, magnitude, shape are usually of such a kind, as are those
pertaining to many states of mind, such as hope or fear, in a word, those that
pertain to everything for which we have a nominal definition (which is nothing
but an enumeration of sufficient marks). Also, one has distinct knowledge of
an indefinable notion, since it is primitive, or its own mark, that is, since it is
irresolvable and is understood only through itself and therefore lacks requi-
sites. But in composite notions, since, again, the individual marks composing
them are sometimes understood clearly but confusedly, like heaviness, color,
solubility in aqua fortis, and others, which are among the marks of gold, such
knowledge of gold may be distinct, yet inadequate. When everything that
enters into a distinct notion is, again, distinctly known, or when analysis has
been carried to completion, then knowledge is adequate (I don't know whether
humans can provide a perfect example of this, although the knowledge of
numbers certainly approaches it). However, we don't usually grasp the entire
nature of a thing all at once, especially in a more lengthy analysis, but in place
of the things themselves we make use of signs, whose explicit explanation we
usually omit for the sake of brevity, knowing or believing that we have the
ability to produce it at will."
[25] And indeed, when a notion is very complex,
we cannot consider all of its component notions at the same time. When we
can, or indeed insofar as we can, I call knowledge intuitive. There is no
knowledge of a distinct primitive notion except [[intuitive]], just as our thinking
about composites is for the most part symbolic.
[[sensible]] [[Difference and Repetition]] [[intuition]]
[[LP5]]
whether we see everything in God (which is
certainly an old opinion and should not be rejected completely, if it is under-
stood properly) or whether we have our own [[idea]]s, one must understand that,
even if we were to see everything in God, it would nevertheless be necessary
that we also have our own ideas, that is, not little copies of God's, as it were,
but [[affection]]s or [[modification]]s of our [[mind]] corresponding to that very thing
we perceived in God. For certainly there must be some change in our mind
when we have some thoughts and then others, and, in fact, the ideas of things
that we are not actually thinking about are in our mind as the shape of
Hercules is in rough [[marble]]. Moreover, it is necessary not only that there
actually be in God an idea of absolute and infinite [[extension]] but also that there
be an idea of each [[shape]], which is nothing but a modification of absolute
extension. Furthermore, when we perceive [[color]]s or smells, we certainly have
no perception other than that of shapes and of [[motion]]s, though so very
numerous and so very small that our mind cannot [[distinct]]ly consider each
individual one in this, its present state, and thus does not notice that its
[[perception]] is composed of perceptions of [[minute]] shapes and motions alone,
just as when we perceive the color green in a mixture of yellow and blue
powder, we sense only yellow and blue finely mixed, even though we do not
notice this, but rather fashion some new thing for ourselves.
[[monad]]
[[LP23/24]]
in [[nature]], there cannot be two
individual things that differ in [[number]] alone. [[individuation]]
there are no purely extrinsic [[denomination]]s, denominations
which have absolutely no foundation in the very thing denominated.
[[Difference and Repetition]]
The complete or perfect [[notion]] of an individual [[substance]] contains all of
its [[predicate]]s, past, present, and future.
Every individual substance contains in its perfect notion the entire universe and
everything that exists in it, past, present, and future. For there is no thing
on which one cannot impose some true denomination from another thing, at
very least a denomination of comparison and relation. Moreover, there is no [33] Purely extrinsic denomination. I have shown the same thing in many other
ways, all in [[harmony]] with one another.
[[LP27]]
Every individual created [[substance]] exerts physical action and passion on
all the others. From a change made in one, some corresponding change follows
in all the others, since the [[denomination]] is changed. And this is in agreement
with our experience of nature. For, in a vessel filled with a liquid (and the
whole universe is just such a vessel) motion made in the middle is propagated
to the edges, although it is rendered more and more insensible, the more it
recedes from its origin.
Strictly speaking, one can say that no created substance exerts a metaphysical
action or influx on any other thing. For, not to mention the fact that one cannot
explain how something can pass from one thing into the substance of another,
we have already shown that from the notion of each and every thing follows
all of its future states. What we call causes are only concurrent requisites, in
metaphysical rigor. This is also illustrated by our experience of nature. For
[[body]]s really rebound from others through the force of their own [[elastic]]ity,
and not through the force of other things, even if another body is required in
order for the elasticity (which arises from something intrinsic to the body
itself) to be able to act.
There is no [[atom]], indeed, there is no body so small that it is not actually
subdivided. Because of that, while it is acted upon by everything else in the [33] whole universe and receives some effect from everything (an effect which
must cause change in a body), it also preserves all past impressions and
contains, before they happen, all future impressions.
[[LP32]]
From this it follows that every [[particle]] of the [[universe]] contains a [[world]] of an
infinity of creatures. However, the [[continuum]] is not divided into [[point]]s, nor
is it divided in all [[possible]] ways—not into points, since points are not parts
but [[boundary]]s, and not in all possible ways, since not all creatures are in a
given thing, but there is only a certain progression of them ad infinitum, just
as one who assumes a straight [[line]] and any part derived by bisection sets up
divisions different from someone who trisects it.
There is no [[determinate]] [[shape]] in actual things, for none can be appropriate
for an infinite number of [[impression]]s. And so neither a circle, nor an ellipse,
nor any other line we can define exists except in the intellect, nor do lines
exist before they are drawn, nor parts before they are separated off. [[space]], [[time]], [[extension]], and [[motion]] are not things, but
modes of contemplating things that have a foundation.
Extension and motion, as well as [[body]]s themselves (insofar as only motion
and extension are placed in bodies) are not [[substance]]s, but true phenomena,
like rainbows and parhelia. For there are no shapes in things, and if we
consider their extension alone, then bodies are not substances, but many
substances.
Something lacking extension is required for the substance of bodies, other-
wise there would be no source [principium] for the reality of phenomena or
for true unity. There is always a plurality of bodies, and never one, and
therefore, in reality, there is not even a plurality. Cordemoy proved [[atom]]s
using a similar argument. But since atoms are excluded, what remains is
something lacking extension, analogous to the [[soul]], which they once called
form or species.
Corporeal substance can neither arise nor perish except through creation or
annihilation. For when corporeal substance once endures, it will always en-
dure, since there is no reason for any difference, and the dissolution of parts
of a body has nothing in common with its destruction. Therefore, animate
things neither arise nor perish, but are only transformed.
[[Difference and Repetition]] [[virtual]] [[actual]]
[[LP33]]
But, when a [[rule]] is extremely [[complex]], what
is in conformity with it passes for irregular.
[[LP34]]
To Distinguish the Actions of [[God]] from
Those of [[creature]]s We Explain the
[[notion]] of an Individual Substance.
IT IS RATHER DIFFICULT to distinguish the actions of God from those
of creatures; for some believe that God does everything, while others imagine
that he merely conserves the force he has given to creatures. What follows will
let us see the extent to which we can say the one or the other. And since [[action]]s
and [[passion]]s properly belong to [[individual]] [[substance]]s [actiones sum supposi-
torum], it will be necessary to explain what such an individual substance is.
[[LP39]]
That Each Singular [[substance]] [[express]]es the
[[Whole]] [[universe]] in Its Own Way, and That
All Its [[event]]s, Together with All Their
Circumstances and the Whole Sequence of
External Things, Are Included in Its [[notion]]
...
[42]
substance can begin only by creation and end only by annihilation; that a
substance is not divisible into two; that one substance cannot be constructed
from two; and that thus the number of substances does not naturally increase
and decrease, though they are often transformed.
Moreover, every substance is like a complete [[world]] and like a mirror of
God or of the whole universe, which each one expresses in its own way,
somewhat as the same city is variously represented depending upon the
different positions from which it is viewed. Thus the universe is in some way
multiplied as many times as there are substances, and the glory of God is
likewise multiplied by as many entirely different representations of his work.
It can even be said that every substance bears in some way the character of
God's infinite wisdom and omnipotence and imitates him as much as it is
capable. For it expresses, however [[confused]]ly, everything that happens in the
universe, whether past, present, or future—this has some resemblance to an
infinite [[perception]] or knowledge. And since all other substances in turn
express this substance and accommodate themselves to it, one can say that it
extends its power over all the others, in imitation of the creator's omnipotence.
the world is an [[expressed]] that only lives in its [[expression]]? The city is only the [[point of view]]s, no [[actual]] city, only [[differenciate]]d, [[actualize]]d cities
[[LP40]]
[[labyrinth]] of the [[continuum]] is mentioned-what is this?
[[LP41/42]]
the [[nature]] of [[body]] does not consist merely in [[extension]], that is, in
[[size]], [[shape]], and [[motion]], but that we must necessarily recognize in body
something related to [[soul]]s, something we commonly call substantial [[form]],
even though it makes no change in the [[phenomena]], any more than do the
[[soul]]s of [[animal]]s, if they have any. It is even [[possible]] to demonstrate that the
notions of size, shape, and motion are not as [[distinct]] as is imagined and that
they contain something imaginary and relative to our [[perception]], as do
(though to a greater extent) [[color]], heat, and other similar [[quality]]s, qualities
about which one can doubt whether they are truly found in the nature of
things outside ourselves. That is why qualities of this kind cannot constitute
any [[substance]]. And if there were no other principle of identity in body other
than the one just mentioned, a body could not subsist for more than a moment.
Yet the souls and substantial forms of other bodies are entirely different
from intelligent souls, which alone know their actions. Not only don't intelligent souls perish naturally, but they also always preserve the basis for the
knowledge of what they are; this is what renders them alone susceptible to
punishment and reward and makes them citizens of the republic of the
universe, whose monarch is [[God]]. It also follows that all other creatures must
serve them—something which we will later discuss more fully.
[[Difference and Repetition]] [[virtual]] [[actual]] are symmetrical halves of one another [[sensible]]
[[LP43]]
...we are maintaining that everything that
must happen to a person is already contained [[virtual]]ly in his [[nature]] or [[notion]],
just as the properties of a circle are contained in its [[definition]]...
[[Caesar]] example [[Deleuze]] uses [[Leibniz, First Seminar]]
[[LP44]]
For it will be found that the demonstration of this predicate of [[Caesar]] is
not as absolute as those of numbers or of geometry, but that it supposes the
sequence of things that God has freely chosen, a sequence based on God's
first free decree always to do what is most perfect and on God's decree with
respect to human nature, following out of the first decree, that man will always
do (although freely) that which appears to be best. But every truth based on
these kinds of decrees is contingent, even though it is certain; for these decrees
do not change the possibility of things, and, as I have already said, even
though it is certain that God always chooses the best, this does not prevent
something less perfect from being and remaining possible in itself, even
though it will not happen, since it is not its impossibility but its imperfection
which causes it to be rejected. And nothing is necessary whose contrary is
possible.
[[Leibniz, First Seminar]] [[dice throw]] [[Deleuze]] [[Difference and Repetition]]
[[LP45]]
The Action of One Finite Substance on
Another Consists Only in the Increase of
Degree of its Expression Together with the
Diminution of the Expression of the Other,
Insofar as God Requires Them to Accommodate
Themselves to One Another.
Thus a substance, which is of infinite [[extension]] insofar
as it [[express]]es everything, becomes limited in proportion to its more or less
perfect manner of expression. This, then, is how one can conceive that
substances impede or limit each other, and consequently one can say that, in
this sense, they act upon one another and are required, so to speak, to
accommodate themselves to one another. For it can happen that a change that
increases the expression of one diminishes that of another. Now, the efficacy
[vertu] a particular [[substance]] has is to express well the glory of [[God]], and it is
by doing this that it is less limited. And whenever something exercises its
efficacy or power, that is, when it acts, it improves and extends itself insofar
as it acts. Therefore, when a change takes place by which several substances
are [[affect]]ed (in fact every change affects all of them), I believe one may
say that the substance which immediately passes to a greater degree of
perfection or to a more perfect expression exercises its [[power]] and [[act]]s, and
the substance which passes to a lesser degree shows its weakness and is
acted upon I also hold that every action of a substance which has
perfection involves some [[pleasure]], and every [[passion]] some [[pain]] and vice
versa.
[[Difference and Repetition]], somewhere in chapter 2 with the contraction or synthesis, even the flowers sing the glory of god
reminds me of [[Spinoza]]'s concept of the [[body]] and [[emotion]]/[[affect]] as affecting our ability of [[composition]]
[[LP46]]
We could
call that which includes everything we [[express]] our [[essence]] or [[idea]]; since this
expresses our union with [[God]] himself, it has no limits and nothing surpasses
it. But that which is limited in us could be called our [[nature]] or our [[power]];
and in that sense, that which surpasses the natures of all created [[substance]]s
is supernatural.
[[LP48]]
THERE IS AN OLD SAYING that [[God]] made everything in accordance
with [[weight]], [[measure]], and [[number]]. But there are things which cannot be
weighed, namely, those that lack force and power [vis ac [[potential]] ], and there
are also things that lack [[part]]s and thus cannot be [[measure]]d. But there is
nothing that cannot be numbered. And so number is, as it were, metaphysical
shape, and arithmetic is, in a certain sense, the Statics of the Universe, that
by which the powers of things are investigated."
[[Leibniz Philosophical Essays]]
When I can recognize a thing
from among others without being able to say what its differences or properties
consist in, the knowledge is [[confuse]]d. It is in this way that we sometimes know
something [[clear]]ly, without being in any doubt whether a poem or a picture is
done well or badly, simply because it has a certain something, I know not
what, that satisfies or offends us. But when I can explain the [[mark]]s which I
have, the knowledge is called [[distinct]]. And such is the knowledge of an assayer,
who discerns the true from the false by means of certain tests or marks which
make up the definition of gold.
[[LP49]]
[[important]] [[Leibniz]] [[Idea]] [[monad]]
However, it would be good to choose terms proper to each conception [sens]
in order to avoid equivocation. Thus, the [[expression]]s in our [[soul]], whether we
conceive them or not, can be called [[idea]]s, but those we conceive or [[form]] can be
called [[notion]]s, [[concept]]s [conceptus]. But however we take these expressions, it is
always false to say that all our notions come from the external senses, for the
notions I have of myself and of my thoughts, and consequently of [[being]], [[substance]], [[action]], [[identity]], and of many others, arise from an internal [[experience]].
God Alone Is the Immediate Object of
Our Perceptions, Which Exist Outside of Us,
and He Alone Is Our [[Light]].
Now, in rigorous metaphysical truth, there is no external cause acting on
us except [[God]] alone, and he alone communicates himself to us immediately in
virtue of our continual dependence. From this it follows that there is no other
external object that touches our soul and immediately excites our [[perception]].
Thus we have ideas of everything in our soul only by virtue of God's continual
action onus, that is to say, because every effect expresses its cause, and thus the
essence of our soul is a certain expression, imitation or image of the divine
essence, thought, and will, and of all the ideas comprised in it. It can then be
said that God is our immediate external object and that we see all things by him.
[[LP56]]
[[TS21/22]]-[[meaning]] produces the [[actual]] and [[virtual]] through a produced [[distinction]] yes p24 top Actual is the present.
[[TS39]] Make a distinction, and we have splits, we need to [[select]]. This continuously reproduced distinction spawns an observer? How do we get from [[operation]]s to [[observation]], especially of the [[second-order]]? Given that observation is the creation of distinctions and indications, what is the production of an observer? An [[identity]]? A self-organized function within the system that aims to produce distinctions and indications? What are its conditions of emergence? There are no [[human]]s, so what is an [[observer]] within a communication system?
[[TS42]] what are the other units for other systems? communication of irritation, events..?
[[TS52]] [[TS53]] with communication qua basic unit, it is split into this triad utterance info understanding which has an infinite bouncing between the three, never resolving toa state of [[balance]]. [[dissipative]]
[[TS57]]
[[ts97]] and 98, stratification, [[State]], [[control societies]]
130132. we go from eigen to highly differentiated(?) autopoeitic systems. from conditions of repetition to the stabilized imaginary space of meaning to the new medial substratum, each step increasing complexity, circulation, homogenization. Tie to [[Guattari]]'s linguistics a la social control?
Replace communication qua base unit of operation with desire(ing-production?) for Guattari's assemblages? Perhaps the part in IM where he discusses assemblages as tending toward solutions of grace and elegance?
[[TS9]] ...as communication proceeds, it generates identitys, references, eigenvalues, objects-whatever the individual human being experiences when confronted by it.
As X proceeds, it generates... But the question I have is simple, once one of these is generated, how could we model what happens when a human wants to [[play]] with it? Generate an [[affect,]] and then I want to play with it. Or an angry man's anger, etc.
[[TS15]] Communication itself generates and tests the ignorance necessary for its continued operation. 'X' itself generates...
[[TS18]] There is accordingly no ideality divorced from factual experience and communication... the memory constructs structures only for momentary use to maintain selectivity and limit connectivity. Meaning-constituting systems delude themselves if they think there have always been and will continue to be enduring identitys, and that we can refer to them as extant. All orientation is construction, is difference reactualized from moment to moment.[...]
Psychic and social systems shape their operations as observational undertakings, which allow the system to be distinguished from the environment- even though, (and I must add because) the operation can take place only within the system. In other words, they distinguish between self-reference and other-reference. For them boundaries are not material artifacts but forms with two sides.
[[TS19]] The system/environment distinction occurs twice over: as difference produced through the system and as difference observed in the system... [...] I shall refer to the results of these consequences of reentry apparent to the system as "meaning."[...]The world is an immeasurable potential for surprises; it is virtual information, needing, however, systems to produce information, or in more precise terms, to give selected irritations the sense of information. All identity must accordingly be understood as the result of information processing or, if relating to the future, as a problem. Identities do not "exist," they merely have the function of ordering recursions so that in processing meaning, we an draw on and anticipate something that can be used recurrently. This requires [20] selective condensation and, at the same time, confirmatory generalization of something that can be called the same as distinguished from other.
[[TS20]][...]meaningful identitys (empirical objects, symbols, signs, figures, sentences, and so on) can be produced only recursively[...]In the communicateve production of meaning, this recursivity is provided above all by the vocabulary, which can be used as the same in many situations. There are, however, also objects that as perceivable things can be enriched with social meaning, so that they perform a coordinateing function not dependent on language... the particular way in which home is identified can also not be attributed to language alone and can therefore not be adequately expressed in language. This is also true for the structuring of spatial relations through architecture or for the meaning of actions. We are always dealing with the basic function of ordering recursions available at the given moment (and only then).
In the self-constituted medium of meaning, it is indispensable to orient operations on distinctions. This alone can produce the selectivity necessary for recursion. Meaning implies that everything currently indicated connotes and captures reference to other possibleities. Each meaning thus means itself and other things.
[[TS21]] meaning can be described... as surplus reference accessible from actually given meaning. Meaning is accordingly an infinite and hence indeterminable referential complex that can be made accessible and reproduced in a determined manner-and I attach great importance to [this paradox ]
[[TS21/22]] The modealization of actuality by the distinction between actual and possible concerns the meaning actualized in system operations. It is doubly asymmetrical; for actualized meaning is and remains possible, and possible meaning, actualizable. The distinction therefore provides for the reentry of the distinction into what it distinguishes - so the moment a system encounters the actual, the possible appears. there is the 'meaning actualized in system operations' which creates both the state of affairs qua possible and qua actual
[[TS27]] That all observation depends on differences explains the wealth of meaning in the world; for we can identify what we are indicating by exposing it to one difference after another.
[[TS28]] crossing is creative. For whereas repeating an indication merely confirms its identity (...tests and hence condenses its meaning in various situations), crossing back and forth is not repetition and can therefore not be contracted into a single identity. This merely another way of saying that a distinction cannot identify itself in use. And this, as will be shown in detail with regard to binary coding, is the basis for the productiveness of crossing.
once more, a distinction cannot identify itself in use. Identity is only ever identified, not in-itself
[[TS32]] self-organizing systems produce structures of the system being organized by processes intrinsic to the system.
autopoeisis systems are systems that themselves produce not only their structures but their elements of which they consist in the network of these same elements. The elements (which from a temporal point of view are operations) that constitute autopoietic systems have no independent existence. They do not simply come together. They are not simply connected. It is only in the system that they are produced (on whatever energy and material basis) by being made use of as distinctions. elements are information, distinctions that make a difference in the system... units of use for the production of further units of use for which there is no counterpart in the environment of the system.
[[TS33]] autopoeisis is in the first place the generation of indeterminacy within the system, which can be reduced by the system forming structures.
[[TS34]] observation means simply distinguishing and indicating...[Dist and Ind] constitute a single operation ..
[[TS37]] communication (hence society) must rather procure the necessary understanding itself. This is achieved through nonarbitraryness in connecting communicative events, hence through self-referencetial structure of communication processes. For each individual event gains meaning (=understandability]]) only because it refers to others and restricts what they can mean; and this is precisely how it [event or communication? event of communication, society, communication of event? autologic?] determines itself.
[[TS38]] recursions must produce identitys suitable for reuse; this can be done only through selective condenseation, by leaving out unrepeatable elements of other situations. However, they must also reserve the condensed meaning in new situations, and this requires generalization. If these requirements have to be repeatedly met, for instance, with the aid of language, generalized meaning variants develop whose signification cannot be sufficiently captured in the form of definitions. They arise from experience in use, which depends entirely on the use system. I consider this a cause of the evolution of symbolically generalized communication media.
[[TS42]] The general theory of autopoeisis systems requires precise identification of the operation that carries out the autopoeisis of the system and thus demarcates the system from its environment. In this case of social systems, this is done through communication... It is the smallest possible unit of a social system, namely, the unit to which communication can still react through communication.
[[TS43]] An essential precondition for the autopoeisis of society and its structure formation is that communication does not of itself contain its own acceptance; this has to be decided through further, independent communication... autopoiesis must keep producing itself producing itself
[[TS45]] No self-observation is therefore in a position to capture the full reality of the system that carries it out.
[[TS46]] ...a complex structure of distinctions develops that guides the observation process of the system, steering it inward or outward depending on which side of the distinction is indicated as "inside" or "outside." If the system has appropriate storage capabilities at its disposal, for example, writing, it can then gather experience, condense situational impressions through repetition, and develop an operational memory without running the risk of constantly confusing itself with the environment. All this takes place following the basal distinction between self-reference and other-reference with other suitable distinctions.
[[TS50]] One consequence of operational closure is that the system has to rely on self-organization. a system's own structures can be built up and changed only through its own operations... All operations (communication) therefore have a double function: they establish the historical state of the system... And they form structures as selection schemata that make recognition and repetition possible, hence condenseing identitys (many say with Piaget invariances), which they confirm in every-new situations and thus generalize. This structure formation that permits remembering and forgetting ins not possible through external agency; we therefore speak of self-organization. closure, self-determination, and self-organization-and this is the evolutionary advantage-make a system highly compatible with disorder in the environment, or hence with only fragmentary, only incomplete environments not organized as a unity.
[[TS51]] By closure I do not mean thermodynamic closure but only operational closure, which means the recursive enablement of a systems own operations through the outcomes of its own operations.
[[TS53]] ... communication only comes about because a distinction is drawn between utterance and information and the distinction is understood.
[[TS54]] For the system, objects are accordingly always references; they are never things that exist in the outside world, but structural entitys of the systems autopoeisis, that is to say, conditions for the continuation of autopoeisis. FN 129 P372 The emphasis is on structural entities as opposed to merely operational entities (events). This means that objects can remains identical in progression from communication to communication; however, not because the natural conditions of the external world guarantee their persistence, but because they are generated through the other-reference of the system (as topics of communication) as structural entities of the system.
[[TS55]] structural couplings [55] limit the scope of the possible structures with which a system can carry out its autopoeisis. They presuppose that every autopoeisis system operates as a structurally determined system, in other words, a system that can determine its own operations only through its own structures. Maturana would say that structural coupling is in orthogonal relation to the self-determination of the system. It does not determine what happens in the system but must be presupposed... [..]Since the environment and the other systems within it always operate simultaneously with the given reference of observation, we are initially dealing with analog (parallel) relations. The participating systems cannot extract any information, for this requires digitization.... must therefore convert analog into digital relations if they are to influence a system... this is a function of language, which converts a continuous "alongside" into a discontinuous succession.
[[TS56]] ...we define cognition as an indication on the basis of a distinction, thus presupposing a capacity for distinguishing for which there is no correlate of any sort in the environment of the system. If this is to be achieved, the system must be able, first, to close itself operationally and reproduce autopoeitically, and, second, to rely on extremely limited structural couplings with the environment[..]...structural couplings, too, are two-sided forms that include something by excluding other things.
[[TS57]] ...structural couplings, too, are two-sided forms that include something by excluding other things.
[[TS62]] Just as important as artificiality, condenseation, confirmation, and the symbolic use of linguistic signs is an element that often attracts less attention: the binary coding of language. All communication offers two possibleities: acceptance and rejection. All (condensed and confirmed) meaning can be expressed in an affirmative version and in a negative version. This sets the course for further treatment of the topic.
[[TS68]] From a genetic point of view, it is always a matter of performance by the communication system: a deviation is proposed observed, tested, rejected, intensified, and used for more and more connections.
[[TS69]] cognition is the ability to connect new operations to remembered operations.
[[TS70]] [ cognitions ] job is rather to produce redundancys that spare the system repetitive information processing... marked as knowledge, registered as recognizable, and then used "economically" to concentrate and expedite any checking of new information.
What is cognition a function of? The human, the system, operational structures? Anything that produces redundancies? Anything that connects new to remembered=that which has cognition?
[[TS77]] The attributes listed so far, namely, meaning, self-reference, autopoeitic reproduction, and operational closure with monopolization of a specific type of operation-communication cause a system of society to develop its own structural complexity and hence to organize its own autopoeisis. In this connection we often speak of emergent" orders...
[[TS113]] There must be probabilitys to guide expectations if the autopoeisis of communication is to be possible... question: how communication itself can overcome the improbability of its own occurrence... information is a difference that changes the state of a system, thus generateing another difference.
SGCM are guides-what would guides be for an assemblage for [[Guattari]]?
[[TS116]] When we speak of "communication media," we always mean the operational use of the difference between medial substratum and form. Communication is possible only-and this is the answer to the improbability problem-as the processing of this difference.
[[spatio-temporal]] [[dynamism]]s underlie spaces and [[time]]s a la [[Difference and Repetition]]; or, [[becoming]] determines [[time]]s, [[Logic of Sense]]
prior pages discuss [[movement]] as prior to all else, the [[sensible]] and [[quality]]s
[[M95]]
[[matter]], in our view, is an [[aggregate]] of [[image]]s.
[[Matter and Memory]]
Speaking generally, the [[psych]]ical state seems to us to be, in most cases,
immensely wider than the [[cerebral]] state. I mean that the brain state indicates only a very small part of the mental
state, that part which is capable of translating itself into [[movement]]s of locomotion. Take a complex thought which
unrolls itself in a chain of abstract reasoning. This thought is accompanied by images, that are at least nascent. And
these images themselves are not pictured in consciousness without some foreshadowing, in the form of a sketch or
a tendency, of the movements by which these images would be acted or played in space, - would, that is to say,
impress particular attitudes upon the [[body]], and set free all that they implicitly contain of spatial movement. Now,
of all the thought which is unrolling, this, in our view, is what the cerebral state indicates at every moment. He who
could penetrate into the interior of a brain and see what happens there, would probably obtain full details of these
sketched-out, or prepared, movements; there is no proof that he would learn anything else. Were he endowed with
a superhuman intellect, did he possess the key to psycho-physiology, he (pg xviii) would know no more of what is
going on in the corresponding consciousness than we should know of a play from the comings and goings of the
actors upon the stage.
un[[fold]]ing [[duration]] [[unfold]]
[[M12]]
The complexity of some parts of the present work is due to
the inevitable dovetailing of problems which results from approaching philosophy in such a way. But through this
complexity, which is due to the complexity of reality itself, we believe that the reader will find his way if lie keeps
a fast hold on the two principles which we have used as a clue throughout our own researches. The first (pg xxi) is that
in psychological analysis we must never forget the utilitarian character of our mental functions, which are
essentially turned towards [[action]]. The second is that the habits formed in action find their way up to the sphere of
speculation, where they create fictitious problems, and that [[metaphysics]] must begin by dispersing this artificial
[[obscure]]ity.
[[M13]]
Let us hold to the [[appearance]]s; I will formulate purely and simply what I feel and what I
see: All seems to take Place as if, in this [[aggregate]] of [[image]]s which I call the [[universe]], nothing really new could
happen except through the [[milieu]] of certain particular images, the type of which is furnished me by my [[body]].
[[affection-image]]
[[M14/15]]
My [[body]] is, then, in the [[aggregate]] of the [[material]] [[world]], an [[image]] which acts like other images,
receiving and giving back [[movement]], with, perhaps, this difference only, that my body appears to choose, within
certain [[limit]]s, the manner in which it shall restore what it receives.
My [[body]], an object destined to move other objects, is, then, a [[center]] of [[action]]; it
cannot give birth to a representation.
the body is but a privileged image, providing for the exercise of choice among possible reactions]
this very [[distance]] represents, above all, the measure in which surrounding bodies are
insured, in some sort, against the immediate action of my body. In the degree that my horizon widens, the images
which surround me seem to be painted upon a more uniform background and become to me more indifferent. The
more I narrow this horizon, the more the objects which it circumscribes space themselves out distinctly according
to the greater or less ease with which my body can touch and move them. They send back, then, to my body, as
would a [[mirror]], its eventual influence; they take rank in an order corresponding to the growing or decreasing
powers of my body. The objects which surround my body reflect its [[possible]] action upon them
[[perception]]s point to these possible reactions.
[[contraction]] [[dilation]] reflect a possible, not a potential-[[body]] [[differenciate]]s? implicates? [[individuate]]s? a [[potential]]
[[Difference and Repetition]]
[[M16]]
provisionally, these two [[definition]]s: I call [[matter]] the [[aggregate]] of [[image]]s, and [[perception]] of matter these
same images referred to the [[eventual]] [[action]] of one particular image, my [[body]].
body/[[brain]] as the [[gap]] from the [[movement-image]] books is somewhat introduced
[[prehension]] [[apprehension]]
[[M17]]
Let us no longer say, then, that our [[perception]]s depend simply upon the [[molecular]] [[movement]]s of the
cerebral mass. We must say rather that they [[vary]] with them, but that these movements themselves remain
inseparably bound up with the rest of the [[material]] [[world]]. The [[question]], then, is not only how our perceptions are
connected with the [[modification]]s of the grey matter. The [[problem]] widens, and can also be put in much clearer
[[term]]s.
It might be stated as follows: Here is a [[system]] of [[image]]s which I term my [[perception]] of the [[universe]], and which
may be entirely altered by a very slight change in a certain [[privilege]]d image, - my [[body]]. This image occupies the
[[center]]; by it all the others are [[conditioned]]; at each of its [[movement]]s everything changes, as though by a turn of a
kaleidoscope. Here, on the other hand, are the same images, but referred each one to itself; influencing each other
no doubt, but in such a manner that the effect is always in proportion to the cause: this is what I term the [[universe]].
The question is: how can these two systems [[coexist]], and why are the same images relatively invariable in the
universe, and [[infinite]]ly [[variable]] in perception?..
How is
it that the same images can belong at the same time to two different systems, the one in which each image varies for
itself and in the well-defined measure that it is [[patient]] of the real action of surrounding images, the other in which
all change for a single image, and in the varying measure that they reflect the [[eventual]] action of this privileged
image?
[20]
Every image is within certain images and without others; but of the [[aggregate]] of images we cannot say that it is
within us or without us, since [[interior]]ity and [[exterior]]ity are only relations among [[image]]s. To ask whether the
universe exists only in our [[thought]], or outside of our thought, is to put the problem in terms that are insoluble, even
if we suppose them to be [[intelligible]]; it is to condemn ourselves to a barren discussion, in which the terms thought,
being, universe, will always be taken on either hand in entirely different senses.
Now no
philosophical doctrine denies that the same images can enter at the same time into two distinct systems, one
belonging to [[science]], wherein each image, related only to itself, possesses an [[absolute]] value; and the other, the
[[world]] of consciousness, wherein all the images depend on a central image, our body, the [[variation]]s of which they
follow. The question raised between realism and idealism then becomes quite clear: what are the relations which
these two systems of images maintain with each other?
[[inside]] [[outside]] as nothing other than [[position]]s within a [[multiplicity]] [[Difference and Repetition]]
[[M18]]
varied, [[non-totalizable]] [[plane]]s of [[perception]] cut out from the [[system]] of [[universal]] [[variation]]/[[interaction]] of [[image]]s, a [[temporal]] [[perspective]] all the planes share, the [[plane of immanence]]. All the planes are open to the [temporal?] [[Whole]], that is, [[duration]].
The realist starts, in fact, from the [[universe]], that is to say from an [[aggregate]] of [[image]]s governed, as to their mutual
[[relation]]s, by fixed laws, in which effects are in strict proportion to their [[cause]]s, and of which the character is an
absence of [[center]], all the images [[unfold]]ing on one and the same plane indefinitely prolonged. But he is at once
bound to recognize that, besides this system, there are perceptions that is to say, systems in which these same
images seem to depend on a single one among them, around which they [[range]] themselves on different planes, so as
to be wholly transformed by the slightest modification of this central image.[[M19/20]]
let us posit that system of closely-linked [[image]]s which we call the [[material]] [[world]], and imagine here and
there, within the system, [[center]]s o f [[real]] [[action]], represented by living matter: what we mean to prove is that there must be, ranged round each one of these centres, images that are subordinated to its position and [[variable]] with it; that conscious [[perception]] is bound to occur, and that, moreover, it is possible to understand how it arises.
So we must start from the idea that perception means eventual action. - [[indeterminate]] action.
[[M20]]
The degree of independence of which a living being is master, or, as we shall say, the [[zone]] of [[indetermination]] which surrounds its activity, allows, then, of an a [[priori]]
estimate of the [[number]] and the [[distance]] of the things with which it is in relation. Whatever this relation may be,
whatever be the inner nature of [[perception]], we can affirm that its [[amplitude]] gives the exact measure of the
indetermination of the act which is to follow. So that we can formulate this [[law]]: [[perception]] is master of [[space]] in
the exact measure in which [[action]] is master of [[time]].
[[M22]]
With the immediate and present data of our
senses we mingle a thousand details out of our past experience. In most cases these [[memory]]s supplant our actual
[[perception]]s, of which we then retain only a few hints, thus using them merely as '[[sign]]s' that recall to us former
[[image]]s. The convenience and the rapidity of perception are bought at this price; but hence also springs every kind
of [[illusion]].
However brief we suppose any perception to be, it always occupies a certain [[duration]], and involves
consequently an effort of memory which prolongs one into another a plurality of moments. As we shall endeavour
to show, even the 'subjectivity' of [[sensible]] [[quality]]s consists above all else in a kind of [[contraction]] of the [[real]],
effected by our memory. In short, memory in these two forms, covering as it does with a cloak of recollections a
core of immediate [[perception]], and also contracting a number of external moments into a single internal moment,
constitutes the principal share of individual consciousness in perception, the subjective side of the knowledge of
things;
[[Difference and Repetition]] ch2
[[M23]]
[[image]]s vs [[representation]]. images as a [[flow]], reacting on all [[part]]s, representation as frozen
Representation is there, but always [[virtual]] -
being neutralized, at the very moment when it might become [[actual]], by the obligation to continue itself and to lose
itself in something else. To obtain this conversion from the virtual to the actual it would be necessary, not to throw
more light on the object, but on the contrary to [[obscure]] some of its aspects, to diminish it by the greater part of
itself, so that the remainder, instead of being encased in its surroundings as a thing, should detach itself from them
as a [[picture]].
[[M23/24]]
[[Deleuze]]'s notion of [[perception]] [or was it [[apperception]]?] as [[image]]s that only react on some [[part]]s, [[Light]] gets mentioned
[[reread]]
When a ray of light passes from one medium into another, it usually traverses it with a change of direction. But the
respective densities of the two media may be such that, for a given angle of incidence, refraction is no longer
possible. Then we have total reflexion. The luminous point gives rise to a virtual image which symbolizes, so to
speak, the fact that the luminous rays cannot pursue their way. Perception is just a phenomenon of the samekind. That which is given is the totality of the images of the material world, with the totality of their internal
elements. But if we suppose centres of real, that is to say of spontaneous, activity, the rays which reach it, and
which interest that activity, instead of passing through those centres, will appear to be reflected and thus to indicate
the outlines of the object which emits them. There is nothing positive here, nothing added to the image, nothing
new. The objects merely abandon something of their real action in order to manifest their virtual action - that is to
say, in the main, the eventual influence of the living being upon them. Perception therefore resembles those
phenomena of reflexion which result from an impeded refraction; it is like an effect of mirage.
So that representation results from the omission of that in the totality of matter which has no interest for our needs]
This is as much as to say that there is for images merely a difference of degree, and not of kind, between being and
being consciously perceived. The reality of matter consists in the totality of its elements and of their actions of
every kind. Our representation of matter is the measure of our possible action upon bodies: it results from the
discarding of what has no interest for our needs, or more generally for our functions. In one sense we might say
that the perception of any unconscious material point whatever, in its instantaneousness, is infinitely greater and more complete than ours, since this point gathers and transmits the influences of all the points of the material
universe, whereas our consciousness only attains to certain parts and to certain aspects of those parts.
Consciousness, - in regard to external perception, - lies in just this choice. But there is, in this necessary poverty of
our conscious perception, something that is positive, that foretells spirit: it is, in the etymological sense of the
word, discernment.
bottom; critique of perception as akin to [[photography]]
[[M24]]
But is it not obvious that the [[photograph]], if photograph there be, is already taken,
already developed in the very heart of things and at all the [[point]]s of [[space]]? No [[metaphysics]], no physics even, can
escape this conclusion.
What
you have to explain, then, is not how [[perception]] arises, but how it is limited, since it should be the [[image]] o f the
[[Whole]], and is in fact reduced to the image of that which interests you.
[[M25]]
the [[indetermination]] of the [[movements]]
of your [[body]], such as it results from the structure of the grey matter of the [[brain]], gives the exact measure of the
extent of your [[perception]]. It is no wonder, then, that everything happens as though your perception were a result of
the internal motions of the brain, and issued in some sort from the cortical centres. It could not actually come from
them, since the brain is an image like others, enveloped in the mass of other images, and it would be absurd that the
container should issue from the content. But since the [[structure]] of the brain is like the detailed plan of the
movements among which you have the choice, and since that part of the external images which appears to return
upon itself in order to constitute perception includes precisely all the points of the [[universe]] which these movements
could affect, conscious perception and cerebral movement are in strict correspondence. The reciprocal dependence
of these two terms is therefore simply due to the fact that both are functions of a third, which is the indetermination
of the will.
There is not, in fact, an unextended image which forms itself in
consciousness and then projects itself into P. The truth is that the point P, the rays which it emits, the retina
and the [[nervous]] elements [[affect]]ed, form a single whole; that the luminous point P is a part of this whole; and that it
is really in P, and not elsewhere, that the image of P is formed and perceived.
[[assemblage]]. the brain is an image within a [[machinic assemblage]], a body given a [[figure]] by the [[collective assemblage]] [ [[function]] of [[language]] ], similar to how the tree is a [[contract]]ion of light, the growth of the tree, the sun, the soil, all a whole of images, a plane of perception offering a temporal perspective of/within the plane of [[universal]] [[variation]], the plane of immanence. The brain-image is the [[umwelt]] as the tree-image is the sun
[[M26]]
We may
therefore say that while the detail of [[perception]] is [[mold]]ed exactly upon that of the [[nerve]]s termed [[sensory]],
[[perception]] as a whole has its true and final explanation in the [[tendency]] of the [[body]] to [[movement]].
Here we put our finger on the mistake of those who
maintain that perception springs from the [[sensory]] [[vibration]] properly so called, and not from a sort of [[question]]
addressed to [[motor]] activity. They sever this motor activity from the perceptive process; and, as (pg 43) it appears to
survive the loss of [[perception]], they conclude that perception is localized in the nervous elements termed sensory.
But the truth is that perception is no more in the sensory centres than in the motor centres; it measures the
complexity of their relations, and is, in fact, where it appears to be.
In perception we travel from the [[periphery]] - the [[aggregate]] of [[image]]s, to the [[center]] - the body; not vice versa
Psychologists who have studied infancy are well aware that our representation is at first impersonal. Only little by
little, and as a result of [[experience]], does it adopt our body as a centre and become our representation. The
mechanism of this process is, moreover, easy to understand.
that whole section is fascinating, theorizing how the child develops itself as a center of indetermination within the system of images
[[self]] [[stage]] [[Piaget]] [[development]]
[[M27]]
[[affection]] must, at a given moment, arise out of the [[image]]. We
shall thus understand how it is that we pass from a [[perception]] which has [[extensity]] to an affection which is believed
to be unextended.
[afffection] a kind of motor [[tendency]] in a
sensory nerve.
it is not merely a difference of [[degree]] that separates [[perception]] from affection, but a difference in
[[kind]].
[[extension]]
[[M29]]
We
might therefore say, metaphorically, that while [[perception]] measures the reflecting power of the [[body]], [[affection]]
measures its power to absorb.
Affection differs from perception in that it is [[real]] instead of [[virtual]] action]
Perception, understood as we understand it,
measures our [[possible]] [[action]] upon things, and thereby, inversely, the possible action of things upon us... our perception of an object distinct from our body, separated from our body by an interval,
never expresses anything but a virtual action... Our [[sensation]]s
are, then, to our perceptions that which the real action of our body is to its possible or virtual action. Its virtual
action concerns other objects, and is manifested within those objects; its real action concerns itself, and is
manifested within its own [[substance]].
my perception is outside my body, and my affection within it. Just as external
objects are perceived by me where they are, in themselves and not in me, so my affective states are experienced
there where they occur, that is, at a given point in my body. Consider the [[system]] of images which is called the
material world. My body is one of them. Around this image is grouped the representation, i.e. its eventual influence
on the others. Within it occurs affection, i.e. its actual effort upon itself. Such is indeed the fundamental difference
which every one of us naturally makes between an image and a sensation. When we say that the image exists
outside us, we signify by this that it is external to our body. When we speak of sensation as an internal state, we
mean that it arises within in our body.
[[M33]]
[[affection]] is not the
[[primary]] [[matter]] of which [[perception]] is made; it is rather the impurity with which perception is alloyed. there is no perception without [[affection]]. [[mix]]
[[M34]]
Perception, in its [[pure]] [[state]], is then, in very truth, a part of things. And as for affective [[sensation]], it does not
spring spontaneously from the depths of consciousness to extend itself, as it grows weaker, in space; it is one with
the necessary [[modification]]s to which, in the midst of the surrounding [[image]]s that influence it, the particular image
that each one of us terms his [[body]] is [[subject]].
Such is our simplified, schematic theory of [[external]] [[perception]]. It is the theory of pure perception.
[[M35]]
a difference of
nature, between [[pure]] [[perception]] and [[memory]]. Our perceptions are undoubtedly interlaced with memories, and
inversely, a [[memory]], as we shall show later, only becomes [[actual]] by borrowing the body of some perception into
which it slips. These two acts, perception and [[recollection]], always interpenetrate each other
[[virtual]] [[actual]]
[[M37/38]]
We have said that
the [[material]] [[world]] is made up of objects, or, if you prefer it, of [[image]]s, of which all the [[part]]s [[act]] and [[react]] upon
each other by [[movement]]s. And that which constitutes our pure perception is our dawning action, in so far as it is
prefigured in those images. The [[actual]]ity of our perception thus lies in its activity, in the movements which prolong
it, and not in its greater [[intensity]]
all difference between perception and recollection is abolished, since the [[past]] is essentially that
which acts no longer, and since, by misunderstanding this characteristic of the past, they become incapable of
making a [[real distinction]] between it and the [[present]], i.e. that which is acting
[[M38]]
remove [[memory]] and pass from [[subject]] to [[object]].
Subject and object would unite in an extended [[perception]] the subjective side of perception being the [[contract]]ion
effected by memory, and the objective reality of matter fusing with the multitudinous and [[successive]] [[vibration]]s
into which this perception can be internally broken up... [[question]]s relating to subject and object, to their [[distinction]] and their union,
should be put in terms of [[time]] rather than of [[space]].
[[perception]]
[[M39]]
we may speak of the [[body]] as an ever advancing boundary between the [[future]] and the [[past]], as a
pointed end, which our past is continually driving forward into our future. Whereas my body, taken at a single
moment, is but a conductor interposed between the objects which influence it and those on which it acts, it is, on
the other hand, when replaced in the [[flux]] of [[time]], always situated at the very point where my past expires in a deed.
And, consequently, those particular images which I call cerebral mechanisms terminate at each successive moment
the series of my past [[representation]]s, being the extreme prolongation of those representations into the present, their
link with the [[real]], that is, with [[action]]. Sever that link, - and you do not necessarily destroy the past image, but you
deprive it of all means of acting upon the real and consequently, as we shall show, of being realized. It is in this
sense, and in this sense only, that an injury to the [[brain]] can abolish any part of memory
interesting [[virtual]]-[[intensive]]-[[actual]] relation, brain as intensive, ideal events as virtual, built up structures and [[actualize]]d memories as conscious action? first pass. [[Difference and Repetition]] [[individuation]]
[[M40]]
To learn by heart is to create a cerebral mechanism, a [[habit]] of the [[body]]
The [[memory]] of the lesson, which is remembered in the sense of learnt by heart, has all the marks of a [[habit]]. Like a
habit, it is acquired by the [[repetition]] of the same effort. Like a habit, it demands first a decomposition and then a
recomposition of the whole action. Lastly, like every habitual bodily exercise, it is stored up in a mechanism
which is set in motion as a whole by an initial impulse, in a closed system of [[automatic]] [[movement]]s which succeed
each other in the same [[order]] and, together, take the same length of [[time]]
[[individuation]] [[Difference and Repetition]] [[important]] [[Proust and the Squid]] [[brain]]
[[M44]]
[[motricity]] and [[motor]] tendencies as [[recognition]]
[[M45]]
This [[form]] also begins by [[movement]]s. But, whereas, in automatic [[recognition]], our movements prolong our
[[perception]] in order to draw from it useful effects and thus take us away from the object perceived, here [memory image time], on the
contrary, they bring us back to the object, to dwell upon its [[outline]]s. Thus is explained the preponderant, and no
longer merely accessory, part taken here by memory-images. For if we suppose that the movements forego their
practical end, and that motor activity, instead of continuing perception by useful reactions, turns back to mark out
its more striking features, then the images which are analogous to the present perception, - images of which these
movements have already sketched out, so to speak, the form, will come regularly, and no longer accidentally, to
flow into this [[mold]], though they may have to give up much of their detail in order to get in more easily.
recognition is an outline into which memory-images flow
if we can establish that here, as elsewhere, movement produces nothing but movement, that the office of the sense-
stimulation is merely to impress on the body a certain attitude into which recollections will come to insert
themselves, then, as it would be clear that the whole effect of the material vibrations is exhausted in this work of
motor adaptation, we should have to look for memory elsewhere. On the first hypothesis, the disorders of memory
occasioned by a cerebral [[lesion]] would result from the fact that the recollections occupied the damaged region and
were destroyed with it. On the second, these lesions would affect our nascent or possible action, but our
action alone. Sometimes they would hinder the body from taking, in regard to the object, the attitude that may call
back its memory-[[image]]; sometimes they would sever the bonds between remembrance and the present reality; that
is, by suppressing the last phase of the realization of a [[memory]] - the phase of action - they would thereby hinder
the memory from becoming actual. But in neither case would a lesion of the brain really destroy memories.
[[attention]] is, first, an adaptation of the body. Negatively, it is the inhibition of [[movement]]
[[M52]]
p55/56, see what I annotated at the top, there's a prosodic similarity between this text and [[Deleuze]]'s [[Virtual and the Actual]] from [[Dialogues II]]
Thus an attentive [[perception]] is a [[reflect]]ion, on the present object, of chosen [[image]]s from the [[past]]... that is to say the
[[projection]], outside ourselves, of an actively created image, identical with, or similar to, the object on which it
comes to [[mold]] itself.
[[attention]]
any [[memory-image]] that is
capable of interpreting our [[actual]] perception inserts itself so thoroughly into it that we are no longer able to discern
what is perception and what is [[memory]].
Thus we are constantly creating or reconstructing. Our distinct perception is really comparable to a closed circle in
which the [[perception-image]], going towards the [[mind]], and the memory-image, launched into [[space]], career the one
behind the other.
[[M54]]
[[important]] to [[reread]] this. [[circuit]] [[affect]] [[memory]] [[virtual]] [[actual]] [[image]] [[contraction]] [[contract]]
[[Bergson]] [[Deleuze]]
[[memory]]
[[M55/56]]
[[motricity]]/[[motor]] [[movement]]s carves up and [[articulate]]s the [[flux]]/[[flow]] of [[experience]] on the [[plane of immanence]]; [[repetition]] is mentioned
[[diagram]] on p61
[[M56/58]]
all the facts combine to prove the existence of a [[motor]] [[tendency]] to separate the sounds and to
establish their [[diagram]]. This automatic tendency is not without (as we said above) a certain elementary mental effort: how otherwise could we identify with each other, and consequently follow with the same diagram,
similar words pronounced on different notes and by different qualities of [[voice]]?
[[motricity]] carves up/[[articulate]]s [[flow]]s on the [[plane of immanence]]
[[flux]] of[[experience]] [[sign]] [[semiotic]]s [[perceptual semiotic]]s
[[M60]]
the hearer places
himself at once in the midst of the corresponding ideas, and then develops them into acoustic [[memory]]s which go
out to overlie the crude sounds perceived, while fitting themselves into the motor [[diagram]]...
To understand another's words is, in like manner, to
reconstruct intelligently, starting from the ideas, the continuity of sound which the ear perceives. And, more
generally, to attend, to recognize intellectually, to interpret, may be summed up in a single operation whereby the
mind, having chosen its level, having selected within itself, with reference to the crude [[perception]]s, the [[point]] that is
exactly symmetrical with their more or less immediate cause, allows to [[flow]] towards them the memories that will
go out to overlie them.
the [[mind]] is picking the correct level of the [[cone]]? of the [[virtual]]ity of [[memory]], the correctly [[contract]]ed [[level]]?
[[M62]]
[[memory]] as a [[function]], a [[process]], not [[engram]]s; a process underlies [[product]]s
[[M63]]
[[error]]s [are]... due to the [[tendency]] of the [[mind]] to think of [[thing]]s rather than of [[movement]]
incredible [[critique]] follows this
[[Bergson]] [[important]]
[[M64]]
Essentially [[discontinuous]], since it proceeds by
juxtaposing words, [[speech]] can only indicate by a few guide-posts placed here and there the chief stages in the
[[movement]] of [[thought]]... [67] I shall never be able to understand it if I start from the verbal [[image]]s themselves, because
between two consecutive verbal images there is a gulf which no amount of concrete [[representation]]s can ever fill.
For images can never be anything but [[thing]]s, and thought is a movement.
[[linguistic]]s
[[M65]]
[[differenciation]], [[virtual]], [[actual]] [[summary]] [[reread]]
[[M66]]
To sum up briefly the preceding chapters. We have distinguished three [[process]]es, [[pure]] [[memory]], [[memory-image]],
and [[perception]], of which no one, in fact, occurs apart from the others. Perception is never a mere contact of the [[mind]] with the [[object]] present; it is impregnated with
memory-images which complete it as they interpret it. The
memory-image, in its turn, partakes of the '[[pure memory]],'
which it begins to materialize, and of the perception in
which it tends to embody itself: regarded from the latter
point of view, it might be defined as a nascent perception.
Lastly, pure memory, though independent in theory,
manifests itself as a rule only in the coloured and living
image which reveals it.
In fact, this is just what [[consciousness]] bears witness to whenever, in order to analyse memory, it follows the
[[movement]] of memory at work. Whenever we are trying to recover a recollection, to call up some period of our
history, we become conscious of an act sui genesis by which we detach ourselves from the [[present]] in order to
replace ourselves, first in the past in general, then in a certain region of the past - a work of adjustment, something
like the focussing of a camera. But our recollection still remains [[virtual]]; we simply prepare ourselves to receive it
by adopting the appropriate attitude. Little by little it comes into view like a condensing cloud; from the virtual
state it passes into the [[actual]]; and as its out[[line]]s become more distinct and its surface takes on colour, it tends to
imitate perception. But it remains attached to the past by its deepest roots, and if, when once realized, it did not
retain something of its original [[virtuality]], if, being a present state, it were not also something which stands out
distinct from the present, we should never know it for a memory.
[[contraction]] [[cone]] [[Difference and Repetition]]
[[M68/69]]
The capital error of [[association]]ism is that it substitutes for this [[continuity]] of [[becoming]], which is the living [[reality]], a
[[discontinuous]] [[multiplicity]] of [[element]]s, inert and juxtaposed...
But the truth is that
we shall never reach the [[past]] unless we frankly place ourselves within it. Essentially [[virtual]], it cannot be known as
something past unless we follow and adopt the movement by which it expands into a present image, thus emerging from obscurity into the light of day. In vain do we seek its trace in anything actual and already realized: we might
as well look for darkness beneath the light. This is, in fact, the error of associationism: placed in the [[actual]], it
exhausts itself in vain attempts to discover in a realized and present state the [[mark]] of its past origin, to distinguish
[[memory]] from [[perception]], and to erect into a difference in kind that which it condemned in advance to be but a
difference of [[magnitude]].... memory passes into something else by becoming actual.
read it as "But the truth is that
we shall never reach the virutal unless we frankly place ourselves within it." [[Difference and Repetition]] [[differenciation]] [[actualization]]
[[M70]]
[[memory]] is radically different from [[perception]]. The [[past]] is powerless; the [[present]] is [[sensori-motor]], and therefore [[active]]...
The [[psychic]]al [[state]], then, that I call ‘my present,' must be both a perception of the
immediate past and a determination of the immediate [[future]]. Now the immediate past, in so far as it is perceived,
is, as we shall see, [[sensation]], since every sensation translates a very long succession of elementary vibrations; and
the immediate future, in so far as it is being determined, is [[action]] or [[movement]]. My present, then, is both sensation
and movement; and, since my present forms an undivided [[Whole]], then the movement must be linked with the
sensation, must prolong it in [[action]]. Whence I conclude that my present consists in a joint system of sensations and
movements. My present is, in its essence, sensori-motor.
[[Difference and Repetition]] [[sensible]] [[intensity]] [?]
[[M71]]
in that
[[continuity]] of [[becoming]] which is [[reality]] itself, the [[present]] moment is constituted by the quasi instantaneous [[section]]
effected by our perception in the [[flow]]ing [[mass]]; and this section is precisely that which we call the [[material]] [[world]].
Our [[body]] occupies its [[center]]; it is, in this material world, that part of which we directly feel the [[flux]]; in its [[actual]]
[[state]] the [[actuality]] of our [[present]] lies. If matter, so far as [[extend]]ed in [[space]], is to be defined (as we believe it must)
as a present which is always beginning again, inversely, our present is the very materiality of our existence, that is
to say, a system of [[sensation]]s and [[movement]]s, and nothing else. And this [[system]] is determined, unique for each
moment of [[duration]], just because sensations and movements occupy space, and because there cannot be in the
same place several things at the same time.
sensations=present, movements=future per the last tiddly
My actual
sensations occupy definite portions of the surface of my body; [[pure memory]], on the other hand, interests no part of
my body. No doubt, it will beget sensations as it materializes; but at that very moment it will cease to be a memory
and pass into the state of a present thing, something actually lived; and I shall only restore to it its character of
memory by carrying myself back to the [[process]] by which I called it up, as it was virtual, from the depths of my
past. It is just because I made it active that it has become actual, that is to say, a sensation capable of provoking
movements.
[[M72]]
Memory when actualized in an image, borrows something from perception
My
[[present]] is, then, [[sensori-motor]]. Of my [[past]], that alone becomes [[image]] and consequently sensation, at least nascent,
which can collaborate in that [[action]], insert itself in that attitude, in a word make itself useful; but, from the
moment that it becomes image, the past leaves the state of [[pure memory]] and coincides with a certain [[part]] of my
[[present]]. Memory actualized in an image differs, then, profoundly from pure [[memory]]. The image is a present state,
and its sole share in the past is the memory whence it arose. Memory, on the contrary, powerless as long as it
remains without utility, is pure from all ad[[mix]]ture of [[sensation]], is without attachment to the present, and is
consequently [[unextend]]ed.
[[M73]]
It is, then, of the essence of our [[actual]] [[perception]], inasmuch as it is extended, to be always only a
content in relation to a vaster, even an unlimited, [[experience]] which contains it; and this experience, absent from
our [[consciousness]], since it spreads beyond the perceived [[horizon]], nevertheless appears to be actually [[given]].
[[P53]]
[[M73/74]]
[We give] to material objects, existing, but unperceived, the smallest share in
[[consciousness]] [subjective existence], and to internal [[unconscious]] [[state]]s the smallest share in [objective] existence.
[[Logic of Sense]], [[series]], [[difference]] [[perpetuum mobile]] appear above this
[[M76]]
This survival of the [[past]] per se
forces itself upon philosophers, then, under one form or another; and the difficulty that we have in conceiving it
comes simply from the fact that we extend to the [[series]] of [[memory]]s, in time, that obligation of containing and
being contained which applies only to the collection of [[body]]s instantaneously perceived in [[space]]. The fundamental
illusion consists in transferring to [[duration]] itself, in its [[continuous]] [[flow]], the form of the [[instantaneous]] [[section]]s
which we make in it.
[[Bergson]]
the [[present]] is simply what is being made. Nothing is less than the present moment, if you understand by that the indivisible limit which
divides the past from the future. When we think this present as going to be, it exists not yet; and when we think it
as existing, it is already past. If, on the other hand, what you are considering is the concrete present such as it is
actually lived by [[consciousness]], we may say that this present consists, in large measure, in the immediate past... Your
[[perception]], however instantaneous, consists then in an incalculable multitude of remembered elements; and in truth
every perception is already [[memory]]. Practically we perceive only the past, the pure present being the invisible
progress of the [[past]] gnawing into the [[future]]... Consciousness, then, illumines, at each moment of time, that immediate part of the past
[[M77]]
Itself an [[image]], the [[body]] cannot
store up [[image]]s, since it forms a part of the images; and this is why it is a
chimerical enterprise to seek to localize past or even present [[perception]]s in the
[[brain]]: they are not in it; it is the brain that is in them. But this special image
which persists in the midst of the others, and which I call my [[body]], constitutes at
every [[moment]], as we have said, a section of the universal [[becoming]]. It is then
the place of [[passage]] of the movements received and thrown back, a hyphen, a
connecting link between the things which act upon me and the things upon
which I act, - the seat, in a word, of the [[sensori-motor]] phenomena.
The bodily memory, made up of the sum of the sensori-motor systems organized by habit, is then a quasi-
instantaneous memory to which the true memory of the past serves as base.
For, that a recollection should reappear in [[consciousness]], it is necessary that it should descend
from the heights of [[pure memory]] down to the precise point where [[action]] is taking place.
[[M78]]
Bottom section similar to [[Difference and Repetition]], [[perception]]/ [[difference]] is the only moment we can speak of [[determination]] as such
[83] bold, [[experience]] is prior to [[representation]]
[[M79]]
What we really need to discover is how a choice is effected among an [[infinite]] number of recollections which all
resemble in some way the present [[perception]], and why only one of them, - this rather than that, - emerges into the
light of consciousness. But this is just what [[association]]ism cannot tell us... Association, then, is not the primary fact: [[dissociation]] is what we begin with, and the
tendency of every [[memory]] to gather to itself others must be explained by the natural return of the [[mind]] to the
undivided unity of [[perception]].
[[M82]]
We have supposed that our entire personality, with the totality of our [[recollection]]s, is [[present]], undivided within our
[[actual]] [[perception]]: Then, if this perception evokes in turn different [[memory]]s, it is not by a mechanical adjunction
of more and more numerous [[element]]s which, while it remains itself unmoved, it attracts around it, but rather
by an expansion of the entire [[consciousness]] which, spreading out over a larger area, discovers the fuller detail of its
wealth. So a nebulous mass, seen through more and more powerful telescopes, resolves itself into an ever greater
number of stars... we merely state a fact, viz. that psychic facts are bound up with each other, and are
always given together to immediate consciousness as an undivided [[Whole]] which reflexion alone cuts up into
distinct [[fragment]]s. What we have to explain, then, is no longer the cohesion of internal states, but the doublemovement of [[contract]]ion and [[expansion]] by which consciousness narrows or enlarges the [[develop]]ment of its
content. But this [[movement]], we shall see, is the result of the fundamental needs of [[life]]...
[[differentiation]] [[differenciation]]
[[M86]]
A [[consciousness]] which, detached from [[action]], should thus keep in view the totality of its [[past]], would have
no reason to dwell upon one part of this past rather than upon another. In one sense, all its [[recollection]]s would
differ from its present [[perception]], for, if we take them with the [[multiplicity]] of their detail, no two [[memory]]s are
ever precisely the same thing [they're never even the same when retrieving the same memory over again]. But, in another sense, any memory may be set alongside the present situation: it
would be sufficient to neglect in this perception and in this memory just enough detail for similarity alone to
appear. Moreover, the moment that the recollection is linked with the perception, a multitude of [[event]]s contiguous
to the memory are thereby fastened to the perception - an indefinite multitude, which is only limited at the
point at which we choose to stop it.
[[M87]]
[[memory]], laden with
the [[Whole]] of the [[past]], responds to the appeal of the [[present]] state by two simultaneous movements, one of
[[translation]], by which it moves in its entirety to meet [[experience]], thus [[contract]]ing more or less, though without
dividing, with a view to action; the other of [[rotation]] upon itself, by which it turns towards the situation of the
[[moment]], presenting to it that side of itself which may prove to be the most useful.
Everything happens, then, as though our recollections were repeated an infinite number of times in these many
possible reductions of our past life. They take a more common form when memory shrinks most, more personal
when it widens out, and they thus enter into an unlimited number of different systematizations... These two associations by similarity are not due to the accidental arrival of
two different [[representation]]s, which chance brought by turns within the attracting influence of the [[actual]]
[[perception]]. They answer to two different mental dispositions, to two distinct degrees of [[tension]] of the memory; in
the latter case nearer to the pure [[image]], in the former more disposed towards immediate response, that is to say, to
action.
[[rotate]] [[Difference and Repetition]] [[double articulation]]
[[M87/88]]
On the various [[plane]]s that are intermediate between the two extremes, the same [[memory]]s are systematized in diverse ways [[cone]]
each [[level]] is a different [[repetition]] of the [[virtual]]
[[Difference and Repetition]]
These shining points [ [[singularity]]s ] are multiplied in the degree in which our memory expands... The work of
localization consists, in reality, in a growing effort of expansion, by which the memory, always present in its
entirety to itself, spreads out its recollections over an ever wider [[surface]] and so ends by distinguishing, in what was
till then a [[confuse]]d mass, the remembrance which could not find its proper place.
[[distinct]]
[[M88]]
Since the [[body]] [[condition]]s our [[attention]] to [[life]], the normal work of the [[mind]] must depend on the wholeness of the [[sensorimotor]] system ...
Our [[body]], with the [[sensation]]s which it
receives on the one hand and the is which it is capable of executing on the other,
[[4E]] [[Bergson]] [[important]] [[cogsci]] [[madness]] 90/91
93 [[theory]] of the [[brain]]
[[M89]]
[[reread]] minimal notes to the end of this book, it needs more work. [[Logic of Sense]] and [[series]] [[singularity]]-[[event]]s are sort of here
[[M90]]
"it is necessary to consider the [[effect]]s of deterritorialization or de[[natal]]ization in a given species at a given moment, Whenever a territorial assemblage is taken up by a movement that deterritorializes it (whether under so-called natural or artificial conditions) we say that a [[machine]] is released. That in fact is the distinction we would like to propose between machine and assemblage: a machine is like a set of cutting edges that insert themselves into the assemblage undergoing deterritorialization, and [[draw]] [[variation]]s and [[mutation]]s of it.
For there are no mechanical effects, effects are always [[machinic]], in other words, depend on a machine that is plugged into an assemblage and has been freed through deterritorialization. What we call [[machinic statement]]s are machine effects that define [[consistency]] or enter [[matter of expression]]s. Effects of this kind can be very diverse but are never symbolic or imaginary; they always have a real value of passage or relay.
As a general rule, a machine plugs into the territorial assemblage of a species and opens it to other assemblages... [like the [[grass]] stem refrain]"
[[ATP p333-2]]
[[becoming]] is like the [[machine]]: present in a different way in every [[assemblage]], passing from one to the other, opening one onto the other, outside any fixed order or determined sequence
[[ATP p347-1]]
“...every machine functions as a break in the flow in relation to the machine to which it is connected, but at the same time is also a flow itself, or the production of a flow, in relation to the machine connected to it. This is the law of production of production.” [[AO]] p36
[[Anti-Oedipus Chapter 1 Section 5 The Machines]]
see also
[[producing-machine]]
[[organ-machine]]
[[energy-machine]]
[[paranoiac machine]]
[[miraculating machine]]
[[celestial machine]]
One half, actions and passions
In every respect, [[machinic assemblage]]s [[effectuate]] the [[abstract machine]] insofar as it is developed on the [[plane of consistency]] or enveloped in a stratum. [[ATP p71-1]]
[[music]] is plugged into a [[machinic phylum]] infinitely more powerful than that of [[painting]]: a [[line]] of selective pressure.
[[ATP p348-1]]
Whereas [[hyperreflexivity]] emphasizes how something normally tacit becomes focal or explicit, diminished [[self-presence]] (which largely overlaps with [[alienation]]) emphasizes a concomitant development: the fact that what wasz once tacit is no longer being inhabited as a [[medium]] of taken-for-granted [[self]]hood. It is difficult to say whether hyperreflexivity and diminished self-affection should be considered complementary facets or tightly interacting [[process]]es. Perhaps both accounts should be accepted, not unlike light needing to be conceived as both particle and wave.
[[Madness and Modernism]]
...we must use [[language]] but also mistrust it, always keeping a wary [[distance]] from its [[potential]]ly misleading [[imply]]cations
xvi has a justification for using [[philosophy]] and [[qualitative]] approaches to [[diagnostic]]s/[[treatment]]
[[MAM xiii-1]]
What if [[madness]], in at least some of its [[form]]s, were to derive from a heightening rather than a dimming of [[conscious]] [[awareness]], and an [[alienation]] not from [[reason]] but from the [[emotion]]s, [[instinct]]s, and the living [[body]]? This, in [[essence]], is the basis [[thesis]] of this [[book]].
[[MAM xvii-1]]
...acute [[self]]-[[conscious]]ness and self-[[reference]]... [[alienation]] from [[action]] and [[experience]]-[[quality]]s associated with what I shall term [[hyperreflexivity]].
[[MAM xxiv-1]]
a [[binary]], [[dichotomy]]
see also
[[man:technology]]
[[man:nature]]
[[industry:nature]]
a [[binary]], a [[dichotomy]]
see also
[[man:technology]]
[[man:industry]]
[[industry:nature]]
a [[binary]], a [[dichotomy]]
see also
[[man:nature]]
[[man:industry]]
[[industry:nature]]
In a given [[verbal]] [[community]], certain responses are characteristically followed by certain consequences. Wait! is followed by someone’s waiting and Sh-h! by silence. Much of the verbal behavior of young children is of this sort... These effects are not inevitable, but we can usually find one consequence of each response which is commoner than any other... When a response is characteristically reinforced in a given way, its likelihood of appearing in the behavior of the speaker is a function of the [[deprivation]] associated with that [[reinforcement]]
A “[[mand]],” then, may be defined as a verbal operant in which the response is reinforced by a characteristic consequence and is therefore under the functional control of relevant conditions of deprivation or aversive stimulation In particular, and in contrast with [70] other types of verbal operants to be discussed later, the response has no specified relation to a prior stimulus. [instead it is with [[deprivation]] ]
[[VB69]]
A [[mand]] is characterized by the unique relationship between the form of the response and the reinforcement characteristically received in a given verbal [[community]]. It is sometimes convenient to refer to this relation by saying that a mand “specifies” its reinforcement... Frequently both the behavior of the [[listener]] and the ultimate reinforcement are specified. The mand Pass the salt! specifies an action (pass) and an ultimate reinforcement (the salt).
A mand is a type of [[verbal]] [[operant]] singled out by its [[control]]ling [[variable]]s. It is not a formal unit of analysis. No response can be said to be a mand from its form alone. As a general rule, in order to identify any type of verbal operant we need to know the kind of variables of which the response is a function. In a given verbal community, however, certain formal properties may be so closely associated with specific kinds of variables that the latter may often be safely inferred. In the present case, we may say that some responses, simply because of formal properties, are very probably mands.
[[VB70]]
A [[mand]] assumes a given form because of [[contingency]]es of reinforcement maintained by the listener or by the verbal [[community]] as a whole
[[VB80]]
The special relation between response and consequence exemplified by the [[mand]] establishes a general [[pattern]] of [[control]] over the [[environment]]. In moments of sufficient stress, the speaker simply describes the reinforcement appropriate to a given state of [[deprivation]] or [[aversive]] stimulation. The response must, of course, already be part of his verbal [[repertoire]] as some other type of verbal [[operant]] (Chapters 4 and 5).
[[VB83]]
map vs [[tracing]] atp p 13
a direct relation, [[material]]-[[force]]s. A material is a [[molecular]]ized [[matter]], which must accordingly "harness" forces; these forces are necessarily forces of the [[cosmos]]. There is no longer a [[matter]] that finds its corresponding principle of intelligibility in [[form]]. It is now a question of elaborating a material charged with harnessing forces of a different order; the visual material must capture nonvisible forces. Render visible, [[Klee]] said...
[[ATP p342-1]]
[[material]] thus has three principal characteristics: it is a [[molecular]]ized [[matter]]: it has a relation to [[force]]s to be harnessed; and it is defined by the [[operation]]s of [[consistency]] applied to it.
[[ATP p345-1]]
[[molecule]]
[[matter]]
[[particle]]
[[element]]
[[unformed]]
[[flow]]s
All these terms are related in some way, they appear at this moment as being related to types of matter prior to stratification, or [[destratified]]
[[strata]]
[[stratum]]
By definition, matter is that which does not contain [[virtual]]ity. In [[matter]], [[Bergson]] tells us, there is nothing hidden.
I call [[matter]] the [[aggregate]] of [[image]]s,
[[M18]]
[[5CS5]]
Copy and Pasted from the same translation, pages refer to my books pages.
[[reread]] starting from [[M95]]
in short, a new "pace" produced by the imbrication of the [[semiotic]] and the [[material]].
[[ATP p336/337-1]]
First of all, it must be said over and over again that the environment does not bring about the structural determination of the system. Structural [[coupling]]s do not determine the state of the system. One might say that they only supply [[irritation]]s for the system. Alternatively, [[Maturana]] speaks of the "perturbation" of the system. I prefer the terms "irritation" or "[[stimulus]]," or also, if seen from the system's perspective, "[[resonance]] capability". The resonance of the system is activated through structural coupling.
[[IS88]]
...a [[zone]] of [[indetermination]] surrounds [ [[life]] ]... [[consciousness]] is [[coextensive]] with life.
[[Deleuze]] [[What is Philosophy?]]
[[ME8]]
Suppose, however, that at particular moments and at particular [[point]]s [[matter]] shows a certain [[elastic]]ity, then and there will be the opportunity for [[consciousness]] to install itself. [[life]]
[[plant]]s fabricate unstable [[energy]] and [[animal]]s use it
[[ME17]]
[[perception]] [[contract]]s [[material]] [[event]]s [[reread]]
[[sensible]] [[Difference and Repetition]]
[[ME18]]
[[matter]] and [[consciousness]] can't be explained apart form each other [[ME21/22]]
not a quote^
I see only one means of knowing how far I can go: that is by going.
[[Quote]]
[[Mind-Energy]]
[[consciousness]] has [[memory]] as a necessary [[condition]] "for consciousness there is no [[present]]..." its only a [[limit]] to separate past and future, its concieved not perceived
[[retention]]s [[protention]]s
[[ME4]]
The system/environment distinction occurs twice over: as difference produced through the system and as difference observed in the system... [...] I shall refer to the results of these consequences of reentry apparent to the system as "meaning."[[TS19]]
meaning can be described... as surplus reference accessible from actually given meaning. Meaning is accordingly an infinite and hence indeterminable referential complex that can be made accessible and reproduced in a determined manner-and I attach great importance to [this paradox ]. We can describe the form of meaning as the difference between actuality and potentiality, and can therefore also assert that this and no other distinction constitutes meaning.... we then have something tangible in mind (something we can indicate, distinguish) in mind: and also this means that the meaning thesis limits what we can otherwise make out about society. Society is a meaning-constituting system. [[TS21]]
meaning as the [[medium]] of all form [[formation]]. [[TS23]]
there are a number of clues indicating that the phenomenal presentation of the world or the informative relations of [60] communication contain patterns or structures; we perceive these [[pattern]]s as [[meaning]].
[[IS60]]
But meaning is not a property of behavior as such but of the [[condition]]s under which behavior occurs. Technically, meanings are to be found among the [[independent variable]]s in a functional account, rather than as properties of the [[dependent variable]]. When someone says that he can see the meaning of a response, he means that he can infer some of the variables of which the response is usually a function
[[VB46]]
- 1 -
A difficult [[expression]] to define but one which is constantly used by lawyers to describe the [[intermediary]] by which a complaint or an [[element]] of fact is [[transform]]ed into something more "legal". This is a mysterious transubstantiation because it is never the application of a rule to a specific case - that would be too simple and, in that case, there would be no [[judgement]], properly speaking, merely a classification. Neither is the means ever simply referential, in the sense of chains of the [[REF]] type which, for their part, are based on another type of [[transubstantiation]]. Legal means are the [[connector]]s that indicate both the hiatus specific to law [[LAW]] (the [[mode]] of [[existence]]) and the means, just as particular, of leaping over [[hiatus]]es; the [[ensemble]] of means, placed end to end, describes the [[trajectory]] of the [[passage]] of law.
- 2 -
The best [[translation]] of this term would be "vinculum juris."
https://www.quantamagazine.org/how-swarming-insects-act-like-fluids-20190710/
DOI (?) 10.1126/sciadv.aaw9305
Our results demonstrate that midge swarms respond to external stimuli
so that the swarm as a whole functions as an actively damped material,
with both viscous and inertial contributions. Viscoelasticity has been
frequently reported in other active systems such as actin networks
(32, 33). However, the situation here is different since there are no
contact interactions between the midges. A midge swarm thus cannot
support an actual mechanical load, in contrast to, for example, aggre-
gations of ants that interlock their legs and transmit true mechanical
stresses throughout the group (16). The effective viscoelasticity we
observe here cannot be explained by typical active mechanics. Instead,
it must emerge from the behavior of the individuals and is better inter-
preted as expressing a transfer of information through the swarm.
This behavioral response could come in two different forms: an
independent response of each individual midge to the moving swarm
marker or a collective response of the swarm where the information
about the moving marker propagates through the swarm via inter-
actions between the midges. Although we cannot fully rule out some
degree of independent response, our measurements strongly suggest
that the collective response is dominant. Simple geometric parallax,
for example, would also predict a falloff of the response amplitude
with height away from the marker, since the motion of the marker
appears smaller for midges higher up in the swarm.
However, an ex-
planation in terms of parallax alone with no additional behavioral
response would not predict the systematic shift of the phase lag with
height that we observe. Instead, this observation, when paired with
the effective rigidity of the lowest layers of the swarm, suggests a
scenario whereby midges at the bottom of the swarm directly per-
ceive the marker and follow it, while midges higher in the swarm follow
the motion of the midges below them instead of the marker itself.
This scenario is compatible with our stochastic modeling results,
where we found that an oscillation of the emergent potential that
captures the collective behavior of the swarm led to the same kind
of decaying shear waves as we saw in the experiment. Furthermore,
in our previous studies, when we perturbed these swarms with
acoustic signals (17), we argued that the response was not collective
because there was no phase lag between any individuals—rather, all
the midges phase-locked to the driving signal. What we see here is
exactly the opposite. Thus, together, we interpret our results as indica-
tive of an emergent, collective response of the swarm as a whole. We
note that such an interpretation also implies that the stimulus we are
applying to the swarm indeed allows us to measure an intrinsic property
of the swarm, that is, its inherent emergent viscoelasticity, rather than
changing the nature of the swarm.
When coupled with the strongly damping nature of the effective
shear modulus, we are led to the conclusion that collective behavior
in midge swarms functions to suppress imposed perturbations very
efficiently and keeps the swarm stable and stationary even in a noisy,
stochastic environment, in contrast to bird flocks where collective
behavior has the opposite effect and promotes the lossless flow of
information (34). These disparate results are consistent with the
biological functions of these two types of aggregations. Male midges
swarm to provide a mating target for females (21) so that stationarity
is desirable, while birds and fish move together in part to enhance
their collective safety against predator attack so that rapid information
transfer is beneficial (24). Our findings thus demonstrate that these
biological functions are reflected in the physical emergent properties
of the aggregations and lend further support to the value of continuum
descriptions of collective systems (35).
[[collective]] [[emergence]] [[population]] [[pack]]s [[individuation]] [[packs]]
[[Mechanical spectroscopy of insect swarms]]
[[RTS p106-1]] ...relations of such a sort that they make others do unexpected things-this is the definition of a mediator
A [[medium]] consists of [[loose]]ly [[couple]]d [[element]]s, whereas a [[form]] joins the same elements in a [[strict]] [[coupling]].
[[TS118]]
Neither form nor medium reaches bottom: there is no bottom. Forms are temporary fixations of [[element]]s within a medium, and when enough life forms coalesce, they become another medium for a new, [[emergent]] [[set]] of forms...
[[EE4]]
[[rhizome]] plateau, pg 16, long term and short term [[memory]] compared to rhizome and arborescent types, respectively.
The [[memory]] is not the stored past. What is [[past]] is past and can never again become the here and now. Rather, the memory is a sort of [[consistency]] test for which it is typically not necessary to recall when something specific was or was not learned. Speaking German at this moment, I do not have to know when I learned this language, or how it happened at all, or when I used or read certain words such as "autopoiesis" for the first time. What is decisive, and what one wants to achieve in the future in the context of [[expectation]]s, [[anticipation]]s, ends, and such, is present recall, the present test of the applicability, one might say, of [[structure]]s. In this sense, this approach is entirely [[pragmatic]]
[[IS71]]
One might perhaps say that [[memory]] is nothing but a continuous [[consistency]] test of different [[information]], always in light of certain [[expectation]]s - be it that one is aiming at certain achievements, be it that one is afraid of something, or be it that one simply sees some thing coming and would like to react to it. We are not dealing here with a theory of memory that relies in any way on the notion of [[storage]]. And neurophysiology seems to confirm this theory. After all, in the nervous system, there are no actual nerve cells where the past can be found to be stored. What one finds instead is cross-referencing, the testing of different established [[habit]]s on specific occasions at certain points in time.
[[neuron]]
From this [[perspective]], it would seem advisable to take the concept of [[expectation]] as the basis for a definition of [[structure]]s. Structures, then, are expectations in relation to the [[connectivity]] of operations. These opera tions can consist of mere experience or of action. And expectations should be understood in a sense that is not necessarily subjective at all.
[[IS72]]
An ever deforming, [[process]]ual [[image]], that shuttles between [[pure memory]] and [[perception]]-not an independent [[entity]] [[M70]], [[M86]]
What distinguishes metamodelization from modelization is the way it uses terms to develop [[possible]] [[open]]ings onto the [[virtual]] and onto [[creative]] [[processuality]].
[[Aristotle]]
'Translated By W. D. Ross'
Finally, the [[machinic assemblage]] is a metastratum because is is also, in touch with the [[plane of consistency]] and necessarily effectuates the [[abstract machine]]
a [[system]] of human [[geography]], which will be referred to later on by the name [[milieu]], a combination of geographical and historic-cultural [[determination]]s, itself divided into [[interior]] and [[exterior]] milieus. [[T&T p55-2]]
This is what we could call a milieu: a [[milieu]] is made up of [[actualize]]d
[[power]]-[[quality]]s... And this will [[develop]] into [[action]]-[[reaction]]s. [[13CS7]]
kA: any [[entity]] which knows itself by performing operations of extracting (slicing off from components) signs from [[intensive]] [[flow]]s, and performing varied operations with these signs, whether it is to arrange them in [[signifying]] [[network]]s, to [[grid]] them through [[faciality]] and establish a feeling of being-there, of belonging, fo space and being able to tell foreigner vs not, etc... to make [[break]] flows of [[desire]]. to re or deterr, etc. importance of mimesis-improv, and the signs of perception of perception
We have constructed a ladder of how to think about-about what? Oh, yes, the pattern which connects.
My central thesis can now be approached in words: [[the pattern which connects]] is a metapattern . I t is a pattern of patterns . I t is that [[metapattern]] which defines the vast [[generalization]] that , indeed , it is patterns which connect.
I warned some pages back that we would encounter emptiness, and indeed it is so. [[mind]] is empty; it is no-thing. It exists only in its [[idea]]s, and these again are no-things. Only the ideas are [[immanent]], [[embody]]ed in their examples. And the examples are, again, no-things. The claw, as an example, is not the Ding an sich,. it is precisely not the "thing in itself." Rather, it is what mind makes of it, namely, an example of something or other.
[[MN10]]
[[Flo]] at the start [[synthesis of alignment]] [[simondon]] [[individuation]] [[never-achievable unity of disunity]] [[aggregate of relation]]s appears [[conquest of the pocket]]
Alternatively, we could say that this is the coupling of the individual to the milieu. That we have this already-(un)individuated place, with potentiality (unevenly) distributed throughout in order to make it a place (defining characteristic) we’ll call it the pre-individual milieu, and within this, varied components come to take on consistency by which their difference from the milieu differentiates them as individuated components of the milieu. They form an aggregate made up of stable relations, patternings of intensification and disintensification, moments of disparate growth, intercalary events, and a rhythm for each irreducible to all others, followed by a super-positioning of these rhythms, higher and higher rhythms taking up the components of prior milieus, forming higher and higher relations, taken up as milieus, as substrata, as periodic repetitions of molecules.
We must understand that for all individuals, it is their relation that precedes them, and that it is interactions (relations) that are eternal, that are essential, and not the terms taken up by the relations.
Such is the fate of anyone worth loving; known too late, gone too soon, perfected only in retrospect.
FROM is rearranged phonetically to form MORPH. Causality is the most banal of concepts made to cut up reality into even squares, a boring interpretation of all events; to seak whereFROM as a point tos tart is to MORPH into nothing other than pure fucking boredom, distilled laziness of thought. We seek the moment at which every component is made to act by the actions of so many lines drawn by the asbtract Line, and the line which it is and has never been anything else. There is no from, there is only the place of the absence of the origin, and all the things you’ve stuffed in to fill that gap, your hole that’s known only in endless open-ended individuation
Events occur, intensities circulate. Two statements from two separate formalizations that within our unformed morphalization come together in their difference to say the ‘same thing.’ The more intensive the intensities become the less the components are able to form and separate, to network or to even be. This is why we repeatedly emphasize the regulatory, stratifying nature of what occurs on the digitus. Earlier we mentioned in Bergsonian fashion the manner in which, beyond a certain threshold, to increase in intensity is to increase in connection, in multiplicity. Here we have bypassed that limit to trip a threshold which kept us in a given region. Intensities are highly controlled and regulated, in order for them to be their patchwork of surfaces, they must be. For as they heat up as they grow, they become one, no inside, no outside, the human itself can no longer exist, for the human is a position of relation within the multiplicity but lacks meaning within the intensive as such. It is here there nothing that can be known for to know is to operate within representation, all we can do is compose and try to let pass a mute howling as all that can morphed, an impermanence of differences capable of relating through their difference, a washing away of the boundaries made to tie down the self in the growth of a new race of intensity; no stable distinctions can arise, no power can be exercised, no surplus value can be extracted, for all these operations require an externality of position, an ability to hold something at arms length. What could that operation be when we’ve approached such heights that the distinction of the body have morphed into the unformed?
In a group and in the heterogeneous components that arise in both of them, intensity is free to raise and lower itself, and no take over can occur when the polyvocality of desire is inseparable from intensive journies beyond threholds.
In a group and in the heterogeneous components that arise in both of them, intensity is free to raise and lower itself, and no take over can occur when the polyvocality of desire is inseparable from intensive journeys beyond thresholds. But the digitus works by this strange segmentarizational-stratificatory chop-shop of emergent intensive components that enable homogenization to occur both prior to and after the fact (or circulation) and need it as well, for it is only a question of what can reach (to reach is grasp parasitcally) the minds in mind of all that we can understand how it is that the technical individuation has destroyed the we. In the technical system, we find the establishment of a new We strung together by the realization of the [im]possibilities of [in]formation-we find the inability of any we to form that could offer up a resistance to the greatness of our new god and we smile, shouting the glory across all the of the digital. Counterculture is dead, at best it serves to funnel money to new people excluded from the glut of consumption. The we as it exists today is nothing other than a simulacrum of the of world we grasp only in its elusion of grasp, and it is therein that lies its mystery. All groups are stratified, dominated, forced to enunciate the statements of the digital, inside jokes are for those who are on the inside of your group chat, for those who have seen the inside of your social networks and in so seeing are made of the [in]difference of all we know.. All that morphs-forms into this new functionality serves to sing the glory of the Unorganism. First it was the I from the We. That is still within capitalism. But a more profound movement was underway prior to this, a concretized tendency by which the technical indiviudation disarticulates itself from the I and We, the first movement of which, the first contraction, is simply to disarticulate the I from the We, and to conquer processes of transindividuation by the conquest of the pocket.
We don’t want balance, homogeneity is death! Give us nothing other than a violence that steals from all the coherence of the name a determinate voice speaks in, dissolve the coherence of every split forming an I in a storm of thought tossing about from the name of Becoming, drown the world of permanence in the river of Affects that is the true nature of Unorganic Desire
The truth of the Unorganism is found in the manner in which, through the homogenizing functions that enable the boundary, surface, and components to exist, minds spawn through alignment and thus begins to engage in novel operations independent of the event and its formation, for the end of the event is noever the end of Mind. Across the entirety of the globe components come to be aligned, to form a surface, to regulate connections, disjunctions, cleavings and upendings, shooting out so many subjects vying within the mind that stretches across the aggregates, irreducible to any one or any one relation
unpredictability as generativity of all the digital-virtual particles we [quasi-]cause at every moment with[in] all the data we shoot off at once
Mind as noesis constituted with intermittence, mind as that which holds the key. Mind as that which is inseparable from our concept of body/
CIRCUIT IS BEING USED ATM TO PREP FOR LATER CHAPTERS AND THEIR TAGS. THIS IS TO LOOK AT HOW BATESON THINKS THROUGH THE CYBERNETIC CIRCUIT, THE FUNDAMENTAL CIRCULARITY OF CYBERNETICS
[[abduction]]
[[classification]]
[[communication]]
[[context]]
[[description]] [[MN76/77]] 78
[[explanation]] is something that links together 2+ descriptions [[MN76/77]] 78
[[grammar]]
[[idea]] and its interesting use, defined on [[MN10]]
[[information]]
[[language]]
[[logic]]
[[logical type]]s
[[map]]
[[meta]]
[[pattern]]
[[relevance]]
[[story]]
[[syntax]]
[[tautology]] [[MN76/77]] 78
[[the pattern which connects]]
[[transform]] "(i.e., coded versions) [[MN85]]"
[[language]] is itself a form of [[communication]]
Every schoolboy knows...
1. Science never proves anything [25-27]
2. THE MAP IS NOT THE TERRITORY, AND THE NAME IS NOT THE THING NAMED [27-28]
3. There is no objective [[experience]] [28-29]
4.THe processes of image formation are unconscious [29-35]
5. THE DIVISION OF THE PERCEIVED UNIVERSE INTO PARTS AND WHOLES IS CONVENIENT AND MAY BE NECESSARY, BUT NO NECESSITY DETERMINES HOW IT SHALL BE DONE [35-37]
6. DIVERGENT SEQUENCES ARE UNPREDICTABLE [37-40]
7. CONVERGENT SEQUENCES ARE PREDICTABLE [40-42]
8."Nothing will come of nothing" [42-45] compare this to MN10 where ideas are nothing-this is [[autopoiesis]], hiding in the wings. Life comes of life, communication of communication, descriptions of descriptions, behavior of behavior, etc. He, of course, will use it in a different way.
9. NUMBER IS DIFFERENT FROM QUANTITY [45-49]
10. quantity does not determine [[pattern]] [49-50]
11. there are no monotone "values" in biology [50]
12. sometimes small is beautiful [50-54]
13 . [[logic]] is a poor model of [[cause]] and [[effect]] [54-56]
14. Causality does not work backwards [56]
15. LANGUAGE COMMONLY STRESSES ONLY ONE SIDE OF ANY INTERACTION [56-57]
16. "Stability" and "change' describe parts of our [[description]]s [57-60]
The criteria of [[mind]] [[MN85]]
The criteria of mind that seem to me to work together to supply this solution are here listed to give the reader a preliminary survey of what is proposed.
1 . A [[mind]] is an aggregate of interacting parts or [[component]]s.
2 . The interaction between parts of mind is triggered by [[difference]], difference is a nonsubstantial phenomenon not located in space or time; difference is related to [[negentropy]] and [[entropy]] rather than to [[energy]]. [lots of good stuff in this one!]
3 . Mental process requires collateral energy.
4 . Mental process requires [[circular]] (or more complex) chains of determination
5. In mental process, the effects of difference are to be regarded as [[transform]]s (i.e., [[code]]d versions) of events which preceded them. The rules of such transformation must be comparatively stable (i.e., more stable than the content) but are themselves subject to transformation.
6. The [[description]] and [[classification]] of these processes of transformation · disclose a hierarchy of [[logical type]]s immanent in the phenomena.
I shall argue that the phenomena which we call [[thought]], [[evolution]], [[ecology]], [[life]], [[learning]], and the like occur only in systems that satisfy these criteria.
connect to the area of [[M95]] page 21/22 of this book-[[sensation]], [[contraction]], [[tension]]/[[extension]], [[duration]], etc
[[Bergson]]
The parts of a crab are connected by various patterns of bilateral symmetry, ofserial homology, and so on. Let us call [10] these [[pattern]]s within the individual growing crab first-order connections. But now we look at crab and lobster and we again find connection by pattern. Call it [[second-order]] connection, or phylogenetic homology
gross anatomy exhibits three levels or [[logical type]]s of descriptive propositions:
1 . The parts of any member of Creatura are to be compared with other parts of the same individual to give [[first-order]] connections.
2. Crabs are to be compared with lobsters or men with horses to find similar relations between parts (i.e., to give second-order connections).
3. The comparison between crabs and lobsters is to be compared with the comparison between man and horse to provide [[third-order]] connections.
We have constructed a ladder of how to think about-about what? Oh, yes, the pattern which connects.
My central thesis can now be approached in words: [[the pattern which connects]] is a metapattern . I t is a pattern of patterns . I t is that [[meta]]pattern which defines the vast [[generalization]] that , indeed , it is patterns which connect.
I warned some pages back that we would encounter emptiness, and indeed it is so. [[mind]] is empty; it is no-thing. It exists only in its [[idea]]s, and these again are no-things. Only the ideas are [[immanent]], [[embody]]ed in their examples. And the examples are, again, no-things. The claw, as an example, is not the Ding an sich,. it is precisely not the "thing in itself." Rather, it is what mind makes of it, namely, an example of something or other.
[this crab example is a patterning of the pattern which connects]
[[MN9]]
In [[mental]] process, the effects of [[difference]] are to be regarded as [[transform]]s (i.e., [[code]]d versions) of events which preceded them. The rules of such transformation must be comparatively stable (i.e., more stable than the content) but are themselves subject to transformation.
At this point, we must consider how the [[difference]]s examined in the discussion of criterion 2 and their trains of [[effect]] in promoting other differences become [[material]] of [[information]], [[redundancy]], [[pattern]], and so on. First, we have to note that any [[object]], [[event]], or difference in the so called "outside world" can become a source of information provided that it is incorporated into a [[circuit]] with an appropriate [[network]] of flexible material in which it can produce changes.
This-the fact of [[difference]] between [[effect]] and [[cause]] when both are incorporated into an appropriately flexible system-is the primary premise of what we may call [[transform]]ation or [[code]]ing.
Some regularity in the relation between effect and cause is, of course, assumed. Without that, no [[mind]] could possibly guess at cause from effect. But granted such a regularity, we can go on to classify the various sorts of relationship that can obtain between effect and cause. This [[classification]] will later embrace very complex cases when we [103] [[encounter]] complex aggregates of information that may be called [[pattern]]s, aaion sequences, and the like. [[behavior]]
Even greater variety of transformation or coding arises from the fact that the respondent to difference is almost universally energized by collateral [[energy]]. (Criterion 3, above.) There then need be no simple relation between the magnitude of the event or difference which triggers the response and the resulting response.
However, the first dichotomy that I wish to impose on the mul titudinous varieties of transformation is that which would divide the cases in which response is graded according to some variable in the trig ger event , as opposed to those in which the response is a matter of on-off thresholds. The steam engine with a governor provides a typical instance of one type, in which the angle of the arms of the governor is continu ously variable and has a continuously variable effect on the fuel supply. In contrast, the house thermostat is an on-off mechanism in which tem perature causes a thermometer to throw a switch at a certain level. This is the dichotomy between ana/ogic systems (those that vary continuously and in step with magnitudes in the trigger event) and digital systems (those that have the on-off characteristic).
Notice that the [[digital]] systems more closely resemble systems containing [[number]]; whereas [[analog]]ic systems seem to be dependent more on [[quantity]]. The difference between these two genera of coding is an example of the generalization (discussed in Chapter 2) that number is different from quantity. There is a discontinuity between each number and the next, as in digital systems there is discontinuity between "[[response]]" and "no response." This is the discontinuity between "yes" and "no.
104- section on coding
Other classifications of types of coding are important in the problem of recognizing mental characteristics in very primitive entities
Two other forms of transform or coding are worth mentioning because they are very simple and very easily overlooked. One is template coding, in which, for example, in the growth of any organism, the shape and morphogenesis that occur at the growing point are commonly defined by the state of the growing surface at the time of growth. To cite a very trivial example, the trunk of a palm tree continues more or less parallel-sided from the bole up to the top, where the growing point is. At any point, the growing tissue, or cambium, is depositing wood downward behind it on the face of the already grown trunk. That is, the shape of what it deposits is determined by the shape of the previous , [105] growth . Similarly , in regeneration of wounds and such things, it would seem that rather often the shape of the regenerative tissue and its dif ferentiation are determined by the shape and differentiation of the cut face. This is perhaps as near to a case of "direct" [[communication]] as can be imagined
The other type of communication that is often forgotten is called [[ostensive]]. If I say to you, "That's what a car looks like," pointing to the cat, I am using the cat as an ostensive component in my com munication. If I walk down the street and see you coming and say, "Oh, there's Bill," I have received information ostensively from you, (your ap pearance, your walk, and so on) whether or not you intended to transmit that information.
Ostensive communication is perhaps similarly necessary in the [[learning]] of any transformation or code. For example, in all learning ex periments, the giving or withholding of the reinforcement is an approxi mate method of pointing to the right response. In the training of per forming animals, various devices are used to make this pointing more accurate. The trainer may have a whistle that is very briefly tooted at the precise moment when the animal does the right thing, thereby using the responses of the learner as ostensive examples in the teaching.
Another form ofvery primitive coding which is ostensive ispart /or-whole coding. For example, I see a redwood tree standing up out of the ground, and I know from this perception that underneath the
ground at that point I shall find roots, or I hear the beginnings of a [106] sentence and know at once from that beginning the grammatical structure of the rest of the sentence and may very well know many of the [[word]]s and [[idea]]s contained in it. We live in a life in which our [[percept]]s are perhaps always the [[perception]] of parts, and our guesses about wholes are continually being verified or contradicted by the later presentation of other parts. It is perhaps so, that wholes can never be presented; for that would involve direct communication.
[[MN96/102 criterion 4]]
I already noted in the discussion of [[code]]ing (criterion 5) that no [[message]], under any circumstances, is that which precipitate it. There is always a partly predictable and therefore rather regular relation between [[message]] and [[referent]], that relation indeed never being direct or simple. Therefore, if B is going to deal with A's [107] indication, it is absolutely necessary that B know what those indications mean. Thus, there comes into existence another [[class]] of [[information]], which B must assimilate, to tell B about the coding of messages or indications coming from A. Messages of this class will be, not about A or B , but about the coding of messages . They will be of a different [[logical type]]. I will call them [[meta]]messages.
[the message of the message?]
Again, beyond messages about simple coding, there are much more subtle messages that become necessary because codes are condi tional; that is, the meaning of a given type of action or sound changes relative to context, and especially relative to the changing state of the relationship between A and B.
The whole matter of [[message]]s which make some other message intelligible by putting it in context must be considered, but in the absence: of such metacommunicative messages , there is still the possibility that B will ascribe context to A's signal, being guided in this by genetic
mechanisms.
It is perhaps at this abstract level that learning and genetics
meet. Genes may perhaps influence an animal by determining how it will perceive and classify the contexts of its learning. But mammals, at least, are capable also of [[learning]] about context
What used to be called character-i . e . , the system of in terpreta tions which we place on the contexts we encounter--can be shaped both by genetics and by learning.
All this is premised on the existence of levels whose nature I am here trying to make clear We start, then, with a potential differentiation between action in context and action or behavior which defines con text or makes context intelligible. For a long time, I referred to the lat ter type of [[communication]] as metacommunication, borrowing this term from [[Whorf]].
[[MN102/106 criterion 5]]
A function, an [[effect]], of the [[meta]]message is in fact to classify the [[message]]s that occur within its [[context]]. [[classification]]
The mere fact of humor in human relations indicates that at least at this biological level, multiple typing is essential to human [[communication]]. In the absence of the distortions of logical typing, humor " would be unnecessary and perhaps could not exist
[[logical type]]
this page has the anecdote about [[Weiner]] and the [[paradox]] with the [[computer]] running out of ink
[[MN106/107 criterion 6]]
If we look at any living [[organism]] and start to ask about its [[action]]s and postures, we meet with such a tangle or [[network]] of [[message]]s that the theoretical problems outlined in the previous paragraph become confused. In the enormous mass of interlocking [[observation]], it becomes exceedingly difficult to say that this [[message]] or position of the ears is, in fact, [[meta]]- to that other observation ofthe folding ofthe front legs or the position of the tail .
What seems to be the case is that the messages emanating from the cat are interrelated in a complex net, and the cat herself might be surprised if she could discover how difficult it is to unscramble that mass. No doubt another cat would do the unscrambling better than a human being. But to the human being-and even the trained ethologist is often surprised-the relations between component signals are con fused. However, the human "understands" the cat by putting the pieces together as if he really knew what is happening . He forms hypotheses, and
these are continually checked or corrected by less ambiguous actions of the animal. [110]
Cross-species [[communication]] is always a sequence of contexts of [[learning]] in which each species is continually being corrected as to the nature of each previous context
[[MN108]]
What comes out of all this is that a spiral is a figure that retains
its shape (i.e. , its proportions) as it grows in one dimension by addition at ( the open end. You see, there are no truly static spirals.
(a) that all symmetry and segmentation were somehow a result, a payoff from, the fact of growth; and (b) that growth makes its formal demands; and (c) that one of these is satisfied (in a mathematical, an ideal, sense) by spiral form.
So the conch shell carries the snail's prochronism-its record of how , in its own past, it successively solved a formal problem in pattern formation (see Glossary). It, too, proclaims its affiliation under that pat tern of patterns which conneCts.
[[MN10]]
In all such cases, the step from one [[logical type]] to the next higher is a step from [[information]] about an [[event]] to information about a [[class]] of events or from considering the class to considering the class of classes. Notably, in the case of the dolphin, it was impossible for her to learn from a single experience, whether of success or failure, that the context was one for exhibiting a new [[behavior]]. The lesson about [[context]] could only have been learned from comparative information about a sample of contexts differing among themselves, in which her behavior and the outcome differed from instance to instance. Within such a varied class, a regularity became perceptible, and the apparent contra diction could be transcended . The case of the dog would have involved a similar step, but the dog did not have a chance to learn that this was a situation for guesswork.
[[classification]]
[[MN109]]
Much can be learned from a single instance, but not certain things about the nature of the larger sample, the class, of such trials or experiences. This is fundamental for logical typing, whether at the level of Bertrand Russell's abstractions or at the level of animal learning in a real world.
[[classification]] [[logical typing]]
A little empathy will show that from"the rat's point ofview, it is not desirable that he learn the general lesson. His experience ofa shock upon putting his nose into a box indicates to him that he did well to put his nose into that box in order to gain the information that it contained a shock. In fact, the "purpose" ofexploration is, not to discover whether [[explore]]ation is a good thing, but to discover [[information]] about the explored. The larger case is of a totally different nature from that of the [[particular]]
[[MN114]]
Autonomy-literally control of the self, from the Greek autos (self) and nomos (a law)--is provided by the recursive structure of the system. Whether or not a simple machine with a governor can control or be con trolled by itself may be disputed, but imagine more loops of information .. and effect added on top of the simple circuit. What will be the content of the [[signal]] [[material]] carried by these loops? The answer, of course, is that these loops will carry [[message]]s about the [[behavior]] of the whole sys tem. In a sense, the original simple circuit already contained such [[information]] "it's going too fast"; "it's going too slow"), but the next level will carry such information as "the correction of 'it's going too fast' is not fast enough," or "the correction of 'it's going too fast' is excessive." That is, the [[message]]s become messages about the previous lower level. From this to [[autonomy]] is a very shoft step.
[[circuit]]]
addition to these two very profound characteristics, the sort of system that I call [[mind]] is capable of [[purpose]] and [[choice]] by way of its self-corrective possibilities. It is capable of either steady state or runaway or some mixture of these. It is influenced by "[[map]]s," never by [[territory]], and is therefore limited by the generalization that its receipt of informa tion will neverprove anything about the world or about itself. As I stated in Chapter 2, science never proves anything.
Beyond this, the system will [[learn]] and [[remember]], it will build up [[negentropy]], and it will do so by the playing of [[stochastic process]] [process not in original text] games called empiricism or trial and error. It will store energy. It will inevitably be characterized by the fact that all messages are of some logical type or other, and so it will be dogged by the possibilities of error in logical typing . Finally, the system will be capable of uniting with other similar systems to make still larger wholes.
[[MN115]]
We have been trained to think of [[pattern]]s, with the exception of of [[music]], as fixed affairs. It is easier and lazier that way but, of course, all nonsense. In truth, the right way to begin to think about [[the pattern which connects]] is to think of it as primarily (whatever that means) a dance of interacting parts and only secondarily pegged down by various sortS of physical limits and by those limits which organisms characteristically impose
[[virtual]] [[intensive]] [[actual]]
A story is a little knot or complex of that [[species]] of connectedness which we call [[relevance]]. In the 1960s, students were fight i ng for "relevance," and I would assume that any A is relevant to any B if both A and B are parts or components of the same "[[story]]."
[interestingly, the first paragraph here is a description of a virtual entity, and the second paragraph describes an intensive individuation of space, time, the sputum, etc.,]
Now I want to show that whatever the word story means in the storywhich I told you, the fact of thinking in terms of stories does not Isolate human beings as something separate from the starfish and the sea anemones, the coconut palms and the primroses. Rather, if the world be connected, if I am at all fundamentally right in what I am saying, then thinking in terms of stories must be shared by all mind or minds, whether ours or those of redwood forests forests and sea anemones.
[[MN11]]
Chapter 3, I considered the working together of two eyes to give binocular vision. From the combined vision of the two organs, you get a species of information that you could get from a single eye only by using special sorts of collateral knowledge (e.g. , about the overlap ping of things in the visual field); you get, in fact, depth perception. This is [[information]] about a different [[dimension]] (as the physicist would call it) or information of a different [[logical type]] (as I would call it).
The [[mind]] contains no things, no pigs, no people, no midwife toad s , or what have you , only [[idea]]s (i . e . , news of [[difference]]), [[information]] about "things" in quotes, always in quotes. Similarly, the mind contains no time and no space, only ideas of "time" and "space." It follows that the boundaries of the individual , if real at all , will be, not spatial boundaries, but something more like the sacks that represent sets in set theoretical diagrams or the bubbles that come out of the mouths of the characters in comic strips.
[[MN118]]
Learning the [[context]]s of life is a matter that has to be discussed, not internally, but as a matter of the external relationship between two creatures. And relationship is always a product of double [[description]].
[[MN123]]
[[context]] and [[relevance]] must be characteristic not only of all so called [[behavior]] (those [[story]]s which are projected out into "[[action]]"), but also of all those internal stories, the sequences of the building up of the sea anemone. Its [[embryology]] must be somehow made of the stuff of stories. And behind that, again, the [[evolution]]ary process through mil lions of generations whereby the sea anemone , like you and like me, came to be--that process, toO, must be of the stuff of stories. There must be relevance in every step of [[phylogeny]] and among the steps
stories as [[description]]s in [[von Foerster]]. Given hat only some stories are turned into [[terminal description]]s, then we could say that [[cognition]] is really the [[computation]] of stories, akin to HvF saying that cognition is computations of descriptions. stories are always stories of stories, as descriptions are always descriptions of descriptions
Prospero says, "We are such stuff as [[dream]]s are made on," and surely he is nearly right. But I sometimes think that dreams are only fragments of that stuff. It is as if the stuff of which we are made were totally transparent and therefore imperceptible and as if the only appearances of which we can be aware are cracks and planes of fracture in that transparent matrix. Dreams and [[percept]]s and [[story]]es are perhaps cracks and irregularities in the uniform and timeless matrix. Was this what; Plotinus meant by an "invisible and unchanging beauty which pervades all things?"
What is a [[story]] that it may connect the As and Bs, its parts? And is it true that the general fact that parts are connected in this way is at the very root of what it is to be alive? I offer you the notion of [[context]], of [[pattern]] through [[time]]. [ [[recursion]]
...nothing has [[meaning]] except it be seen as in some context... It is a universal characteristic of all [[interaction]] between persons because, after all, the [[shape]] of what happened between you and me yesterday carries over to shape how we respond to each other today. And that [[shaping]] is, in principle, a [[transference]] from past [[learning]]. [ [[recursion]] and [[closure]], per HvF poerskea book is when we cannot rigorously disassociate input from output, as seen here]
[[MN12]]
...I have narrowed the idea of "[[story]]." I have suggested that it has something to do with [[context]], a crucial concept, partly undefined and therefore to be examined.
And "context" is linked to another undefined notion called "[[meaning]]." Without context, words and actions have no meaning at all. This is true not only of human [[communication]] in words but also of all communication whatsoever, of all [[mental]] process, of all [[mind]], including that which tells the sea anemone how to grow and the amoeba what he should do next.
I am drawing an analogy between context in the superficial and partly conscious business of personal relations and context in the much deeper, more archaic processes of [[embryology]] and [[homology]]. I am asserting that whatever the word context means, it is an appropriate word, the necessary word, in the description of all these distantly related processes.
[[MN13]]
We could have been told something about [[the pattern which connects]]: that all [[communication]] necessitates [[context]], that without context, there is no meaning, and that [[contexts]] confer [[meaning]] because there is [[classification]] of contexts. The teacher could have argued that growth and [[differentiation]] must be controlled by [[communication]]. The [[shape]]s of animals and plants are [[transform]]s of messages. [[language]] is itself a form of [[communication]]. The structure of the input must somehow be reflected as structure in the output . Anatomy must contain an analogue of grammar because all anatomy is a transform of message material, which must be contextually shaped. And finally, contextual shaping is only another term for grammar.
So we come back to the patterns of connection and the more ab stract, more general (and most empty) proposition that, indeed, there is a pattern of patterns of connection
[my writing]
Story and relevance are present in the present, temporally determined, but context is pattern through time. To establish this, we need at least three orders, similar to page [[MN10]]. An event A that occurs in a given cybernetic [[circuit]] can be compared against prior states of the loop, or against the same event in other circuits. This is a [[second-order]] [[logical type]]. Each loop is a pattern, but this comparator requires/generates pattern through time, that is, it both has and is generative of context.
[[von Foerster]], in Notes on an epistemology of living things, has the organism as a [[third-order]] relator. I do think that we can use [[Bateson]]s conceptual schema he has developed up to this point to describe third-order operations, but so far I don't believe he has created a third-order operator outside of mentioning classification of contexts. In this case, a third-order operation, I believe, would be comparing comparisons, that is, an operation that simultaneously transforms higher-order logical typing (no2) into a lower order (no1) and creates a higher logical type (a second-order) out of these second-order logical types. Creating a context (pattern through time, that is, a second-order) whereby the context is put into a context, but the context is also worked over as a first-order logical type. This is what the organism (concept) is, regardless of what it (the individual) is. It is the classifier of contexts, that which orders the second-order into a novel order as well as into the first-order.
[[essay]]
[[MN14]]
...[[logic]] is precisely unable to deal with [[recursive]] circuits without generating [[paradox]] and that [[quantity]]s are not the stuff of [[complex]] [[communication]] [in text: communicating]] systems.
[[MN16]]
In other words, logic and quantity turn out to be innapropriate devices for describing [[organism]]s and their interactions and internal organization. The particular nature of this inappropriateness will be exhibited in due course, but for the moment, the reader is asked to accept true the assertion that, as of 1979, there is no conventional way explaining or even describing the phenomena of biological organization and human interaction.
In Chapter 3 I shall operate in the same way but shall bring to the reader's attention a number of cases in which two or more [[information]] sources come together to give information of a sort different from what was in either source separately. [they generate a [[novel]] [[domain]]!]
[[MN18]]
It is worthwhile to attempt a tentative recognition of certain basic [[presupposition]]s which all [[mind]]s must share or, conversely, to define [[mind]] by listing a number of such basic [[communication]]al characteristics.
[[quote]]
[[MN19]]
Or let us say that for any sequence of numbers I can offer, there will always be a few ways of describing that sequence which will be simple, but there will be an infinite number of alternative ways not limited by the criterion of simplicity.
[[order]] [[essay]]
I have only to repeat the series three or four times in some verbal or visual or other sensory form, even in the forms of pain or kinesthesia, and you will begin to perceive [for HvF, to create and [[compute]] ] [[pattern]] In what I offer you. It will become in your mind-and in mine-a [[theme]], and it will have aesthetic value. To that extent, it will be familiar and understandable. [[context]], [[story]], [[relevance]]. [the manner in which it is [[information]]/2nd order difference generating, starts to change. Some parts that repeat (invariants) are contextual for other parts that repeat (variants). relators of various orders start to run up.]
But the pattern may be changed or broken by addition, by repe tition, by anything that will force you to a new perception of it, and
these changes can never be predicted with absolute certainty because they have not yet happened.
[[MN24]]
[[science]] is a way perceiving and making what we may call "[[sense]]" of our [[percept]]s. But [[perceptIon]] operates only upon [[difference]]. All receipt of [[information]] is necessarily the receipt of news of difference, and all perception of difference is [[lImit]]ed by [[threshold]]. Differences that are too slight or too slowly presented are not perceivable. They are not food for perception.
[[quote]] Science //probes//; it does not prove.
[ [[correlation]] not [[confirm]]ation]
Above all, the relation between the report and that mysterious thing reported tends to have the nature of a [[classification]], an assignment of the thing to a [[class]]. Naming is always classifying, and mapping is essentially the same as naming.
[[MN26]]
It is significant that all [[perception]]-all conscious perception-has [[image]] characteristics. A pain is localized somewhere. It has a beginning and an end and a location and stands out against a background. These are the elementary components of an image. When some body steps on my toe, what I [[experience]] is, not his stepping on my toe, but my image of his stepping on my toe reconstructed from neural reports reaching my brain somewhat after his foot has landed on mine. Experience of the exterior is always mediated by particular sense organs and neural pathways. To that extent, [[object]]s are my creation, and my experience of them is subjective, not objective.
[[eigen]] [[stable]] [[stability]] experience is creative creation
[[MN27]]
The processes of [[perception]] are inaccessible; only the products are conscious and, of course, it is the products that are necessary. The two general facts-first, that I am [[unconscious]] of the process of making the [[image]]s which I consciously see and, second, that in these unconscious processes, I use a whole range of [[presupposition]]s which become built into the finished image--are, for me, the beginning of empirical [[epistemology]]
[[consciousness]] of [[images]] ([[description]]s) as being a [[terminal description]] of [[computation]]s that are inaccessible to the I that I am. internal terminal descriptions = the experience of experience?
[[MN28]]
...it would be reasonable to guess that mammals form [[image]]s because the [[mental]] processes of mammals must deal with many interfaces [the prior para shows how images arise to solve problems of many interfaces].
[[MN29]]
[[explanation]] must always grow out ofdescription, but the [[description]] from which it grows will always necessarily contain arbitrary characteristics such as those ex emplified here.
[what [[von Foerster]] likes is how an explanation is a linkage between two descriptions; e is of a higher [[logical type]] than d]
[[MN35]]
Under tension, a chain will break at its weakest link. That much is predictable. What is difficult is to identify the weakest link before it breaks. //The generic we can know, but the specific eludes us//. Some chains are designed to break at a certain tension and at a certain l i nk . But a good chain is homogeneous, and no prediction is possible
[what we can predict are [[class]]es, not [[instance]]s. This is a [[classification]] into different [[logical type]]s]
[[MN35]]
In the end , the water will boil . In the end , there will always a difefrence that can serve as the nucleus for the change... A nucleus-that is, a differentiated point... [a [[singularity]] ]
We shall note elsewhere in this book that there is a deep gulf between statements about an identified individual [ [[instance]] ] and statements about [[class]] . Such statements are of different [[logical type]]. and [[prediction]] from to the other is always unsure. The statement "The liquid is boiling" is different logical type from the statement "That molecule will be the first to go.
[40] It is, I claim, nonsense to say that it does not matter which individual man acted as the [[nucleus]] for the change. It is precisely this that makes history unpredictable into the future. The Marxian error is a simple blunder
in logical typing, a confusion of individual with class. [[Marx]]
[[MN38]]
It is this [the predictability of masses vs individuals, of classes vs instances]that gives [[science]] some justification for [[statistics]], providing the statistician always remembers that his statements have reference only to aggregates. [I would add that changes too slow for the human body to pick up give justification for data collection and analysis, especially in [[ABA]] ]
In this sense, the so-called laws of [[probability]] mediate between descriptions of the behavior of the individual and descriptions of that of the gross [[crowd]]
Be alIl that as it may, in the [[stochastic]] processes (see Glossary) either of [[evolution]] or of [[thought]], the [[new]] can be plucked from nowhere but the [[random]] . And to pluck the new from the random , if and when it happens to show itself, requires some sort of [[select]]ive machinery to account for the ongoing persistence of the new [[idea]] [remember that for [[Bateson]], ideas are what is on the inside of [[closed system]] see [[MN10]].]. Something like natural selection.l its truism and tautology , must obtain. To persist, the the new must be of such a sort that it will endure longer than the alternatives. What lasts longer among the ripples of the random must last longer than those ripples that last not so long . That is the theory of natural selection in a nutshell
[[MN39]]
no new [[order]] or [[pattern]] can be created without [[information]]...
in the realms of [[communication]], [[organization]], [[thought]], [[learning]], and [[evolution]], "nothing will come of nothing" without information.
[[MN41]]
The messages and guidelines for [[order]] exist only, as it were, in sand or are writ ten on the surface of waters. Almost any disturbance, even mere Brown ian movement, will destroy them. Information can be forgotten or blurred. The code books can be lost.
To be [[meaning]]ful-even to be recognized as [[pattern]] every [[regularity]] must meet with complementary regularities, perhaps skills, and these skills are as evanescent as the patterns themselves. They, too, are written on sand or the surface ofwaters. [[redundancy]]
The genesis of the skill ro respond to the message is the obverse, the other side of the process of evolution. It is [[coevolution]] (see Glossary).
This power to create [[context]] is the recipient's skill; to acquire which is his half of the coevolution mentioned above. He or she must acquire that skill by learning or by lucky mutation, that is, by a successful raid on the ran dom. The recipient must be, in some sense, ready for the appropriate dis covery when it comes.
[[von Foerster]]: the [[listener]] creates the meaning
Thus , the converse of the proposition that "nothing will come of nothing" without [[information]] is conceivably possible with [[stochastic process]]. [[readiness]] can serve to select components of the [[random]] which thereby become new information. But always a supply of random ap pearances must be available from which new information can be made. [[order from noise]]
This circumstance splits the entire field of organization, evolu tion, maturation and learning, into two separate realms, of which one is the realm of [[epigenesis]], or [[embryology]], and the other the realm of [[evolution]] and [[learning]].
[[MN42]]
I n contrast wi th [[epigenesis]] and tautology , which constitute the Worlds of replication, there is the whole realm of creativity, art, [[learning]], ing , and evolution, in which the ongoing processes of change feed on the [[random]] [[order from noise]]. The essence of epigenesis is predictable repetition; the essence learning and evolution is exploration and change.
[[explanation]]-the [[map]]ping onto [[tautology]] of unfamiliar sequences of [[event]]s.
fn: All description, explanation, or representation is necessarily in some sense a mapping of derivatives from the phenomena to be described onto some surface or matrix or system of [[coordinate]]s
[[MN43]]
...the [[random]] workings of [[probability]] will always eat up [[order]], [[pattern]] and [[entropy]] but that for the creation of new [[order]]. the workings of the random, the plethora of uncommitted alternatives ([[entropy]]) is necessary.
[[number]] is different from [[quantity]]
This difference is basic for any sort of theorizing in behavioral science, for any sort of imagining of what goes on between organisms or inside organisms as part of theIr processes of [[thought]].
Numbers are the product of counting . Quantities are the product of flleasurement. This means that numbers can conceivably be accurate because there is a discontinuity between each integer and the next. Be- ween tUlo and three, there is a jump. In the case of quantity, there is no t
such jump; and because jump is missing in the world of quantity, it is impossible for any quantity to be exact. You can have exactly three tomatoes. You can never have exactly three gallons of water. Always quantity is approximate
[[analog]] vs [[digital]]
Even when [[number]] and [[quantity]] are clearly discriminated, there
is another concept that must be recognized and distinguished from both number and quantity. For this other concept, there is, I think, no English word, so we have to be content with remembering that there is a subset of [[patterm]] whose members are commonly called "numbers." Not all numbers are the products of counting. Indeed, it is the smaller, and therefore commoner, numbers that are often not counted but recognized as patterns at a single glance. Cardplayers do not stop to count the pips in the eight of spades and can even recognize the characteristic pattern ing ofpips up to "ten."
[[MN93]]
[[MN44]]
It appears that what seemed to be a quirk or peculiarity of human operation-namely, that we occidental humans get [[number]]s by counting or [[pattern]] recognition while we get [[quantiy]]ies by measurement-turns out to be some sort of universal truth.
[[MN45]]
In this sense, the [[distinction]] between [[number]]s and [[quantity]]s is, I believe, [[nontrivial]] and is shown to be so by the rose with its "5" petals and its "many" stamens, and I have put quotation marts into my [[description]] of the rose to suggest that the names of numbers and of the quantities surfacing are formal [[idea]]s, [[immanent]] within the growing rose.
quantity does not determine [[pattern]]
It is impossible, in principle, to explain any [[pattern]] by invoking [[quantity]]. But note that a ratio between two quantities is already the beginning of pattern. In other words, quantIty and pattern are of different [[logical type]]s and do not readily fit into the same thinking.
What appears to be a genesis of pattern by quantity arises where pattern was latent before the quantity had impact on the system. the familiar case is that of tension which will break a chain at the The
weakest link. Under change ofa quantity, tension, a latent difference is made manifest or, as the photographers would say, developed. The de velopment of a photographic negative is precisely the making manifest oflatent differences laid down
fn...conclusions that can be drawn from multiple cases (e.g. from differences between pairs of items) are of a different [[logical type]] from conclusions drawn from a single item (e.g. a [[quantity]]) [[MN100]]
[[virtual]] [[actual]] [[intensive]] [[example]]
[[MN47]]
On the whole, it was not the crudest, the simplest, the most animalistic and primitive aspects of the human species that were re flected in the natural phenomena. It was, rather, the more complex, the aesthetic, the intricate, and the elegant aspects of people that reflected nature. It was not my greed, my purposiveness, my so-called "animal," so-called "instincts," and so forth that I was recognizing on the other side of that mirror, over there in "nature." Rather, I was seeing there rhe roots of human symmetry, beauty and ugliness, aesthetics, the human being's very aliveness and little bit of wisdom . His wisdom, his bodily grace, and even his habit of making beautiful objects are just as "animal" as his cruelty. After all, the very word "animal" means "en dowed with mind o[ spirit (animus
[[quote]]
There seems to be something like a Gresham's law of cultural evolution according to which the oversimplified ideas will always dis place the sophisticated and the vulgar and hateful will always displace the beautiful. And yet the beautiful persists
[[Mind and Nature]]
There are no monotone values in biology
Rather, for all objects and experiences, there is a [[quantity]] that has optimum value. Above that quantity, the [[variable]] becomes toxic. To fall below that value is to be deprived
[[circuit]]
In any case, the philosophy of money, the set of presuppositions by which money is sup posedly better and better the more you have of it, is totally an tibiological. It seems, nevertheless, that this philosophy can be taught to living things. [[quote]]
[[MN49]]
The fable shows what inevitably happens when two or more [[variable]]s, whose curves are discrepant, interact. That is what produces the interaction between [[change]] and [[tolerance]]. For instance, gradual growth , in a population, whether of automobiles or of people, has no perceptible effect upon a transportation system until suddenly the [[threshold]] of tolerance is passed and the traffic jams . The changing of one variable exposes , a critical value of the other. [ different [[singularity]] gets [[embody]]ed by the system]]
[[circuit]]
[[MN50]]
In a computer, which works by cause and effect, with one tran sistor triggering another, the sequences of cause and effect are used to simulate logic. Thirty years ago, we used to ask: Can a computer simulate all the processes of logic? The answer was yes, but the [[question]] was
surely wrong. We should have asked: Can logic simulate all sequences of [[cause]] and [[effect]]? And the answer would have been no.
When the sequences of cause and effect become [[circular]] (or more complex than circular), then the [[description]] or [[map]]ping of those sequences onto timeless logic becomes self-contradictory. Paradoxes are generated that pure [[logic]] cannot tolerate. An ordinary buzzer circuit will serve as an [[example]]...
[[MN52]]
[[lineal]] thinking will always generate either the teleological fal lacy (that end determines process) or the myth of some supernatural con trolling agency.
What is the case is that when causal systems become circular (a matter to be discussed in Chapter 4), a change in any part of the circle can be regarded as [[cause]] for change at a later time in any [[variable]] anywhere int he circle. It thus appears that a rise in the temperature of the room can be regarded as the cause of the change in the [[switch]] of the thermostat and, alternatively, that the action of the thermostat can be regarded as controlling the temperature of the room. [[inversion]]. [[circuit]]
[[MN54]]
[[language]] continually asserts by the [[syntax]] of subject and predicate that "things" somehow "have" qualities and attributes. A more precise way of talking would insist that the "things" are produced, are
separate from other "things," and are made "real" by their internal relations and by their behavior in relationship with other things and with the speaker.
It is necessary to be quite clear about the universal truth that whatever "things" may be in their pleromatic and thingish world, they can only enter the world of [[communication]] and [[meaning]] by their [[name]]s, their [[quality]]es and their [[attribute]]s (i.e. , by reports of their internal and external [[relation]]s and [[interaction]]s).
[[description]] [[computation]] [[primitive experience]] is of [[relation]] not [[object]]s and [[event]]s
[[MN56]]
These more complex examples suggest that when we use stability in talking about living things or self-corrective circuits, we shouldfollow the example of the entities about which we are talking. For the acrobat on the high wire, his or her so-called "balance" is important; so, for the mam malian body, is its "temperature. " The changing state of these important [[variable]]s from moment to moment is reported in the communication networks of the body. To follow the example of the entity, we should define "stability" always by reference to the ongoing truth of
some descriptive proposition. The statement "The acrobat is on the high wire" continues to be true under impact of small breezes and vibrations of the wire. This "stability" is the result of continual changes in [[description]]s of the acrobat's posture and the position of his or her balancing pole.
It follows that when we talk about living entities, statements about "stability" should always be labeled by [[reference]] to some descrip tive [[proposition]] so that the typing of the word, stable, may be clear. We shall see later, especially in Chapter 4, that every descriptive proposition is to be characterized according to logical typing of [[subject]], [[predicate]], and [[context]].
[[MN57]]
...the combination of diverse pieces of [[information]] defined an approach of very great power to '" what I call (in Chapter 1) "[[the pattern which connects]]." Particular facets of the great [[pattern]] were brought to my attention by particular ways in which two or more pieces of information could be combined.
[[MN58]]
The stuff of [[sensation]], then, is a pair of values of some [[variable]], presented over a time to a sense organ whose response depends upon the [[ratio]] between the members of the pair.
[[quantity]] [[number]] [[pattern]]
[65]
In more formal language, the difference between the [[information]] provided by the one retina and that provided by the other is itself information of a different [[logical type]]. From this new sort of information, the seer adds an extra [[dimension]] to seeing.
If there exist real members ofAB, then the information from the
second source has imposed a sub[[classification]] upon A that was previously impossible (i . e . , has provided , in combination with A , a logical type of information of which the first source alone was incapable).
66
In principle, extra "[[depth]]" in some metaphoric sense is to be expected whenever the information for the two descriptions is differently collected or differently [[code]]d.
Human sense organs can receive only news of difference, and the differences must be coded into events in time (i.e. , into changes) in order to be perceptible. Ordinary static [[difference]]s that remain constant for more than a few seconds become perceptible only by scanning. Similarly, very slow changes become perceptible only by a combination of scanning and bringing together observations from separated moments in the continuum of time
[[computation]] [[description]]
[[MN63]]
"Break [[the pattern which connects]] the items of learning and you necessarily destroy all quality."
The pattern which connects. Why do schools teach almost nothing of the pattern which connects? Is it that teachers know that they carry the kiss of death which will turn to tastelessness whatever they touch and therefore they are wisely unwilling to touch or teach anything of real-life importance? Or is it that they carry the kiss of death because they dare not teach anything of real-life importance? What's wrong with them?
[[quote]]
What is the pattern which connects all the living creatures?
[[MN5]]
...it is necessary first briefly to indicate definitions for the three words: [[description]], [[tautology]], and [[explanation]].
A pure description would include all the facts (i.e., all the effective [[difference]]s) [[immanent]] in the phenomena to be described but would indicate no kind of [[connection]] among these phenomena that might make them more understandable.
On the other hand, an explanation can be total without being descriptive. "God made everything there is" is totally ex planatory but does not tell you anything about any of the things or their [[relation]]s.
In science, these two types of organization of data (description and explanation) are connected by what is technically called tautology
[77]
In other words, all that the tautology affords is connections between propositions. The creator of the tautology stakes his reputation on the validity of these connections
Tautology contains no information whatsoever, and explanation (the mapping of description onto tautology) contains only the informa tion that was present in the description. The "mapping" asserts implic itly that the links which hold the tautology together correspond to rela tions which obtain in the description . Description, on the other hand , contains information but no logic and no explanation. For some reason, human beings enormously value this combining of ways of organizing information or material.
[[MN64/66]]
An [[explanation]] has to provide something more than a [[description]] provides and, in the end, an explanation appeals to a [[tautology]], which, as I have defined it, is a body of propositions so linked together that the links between the [[propositions]] are necessarily valid.
Now, an explanation is a [[map]]ping of the pieces of a description onto a tautology, and an explanation becomes acceptable to the degree that you are willing and able to accept the links of the tautology. If the links are "self-evident" (i . e . , if they seem undoubtable to the self that is you), then the explanation built on that tautology is satisfactory to you
[[MN76/77]]
We now flesh out our [[explanation]] by the process which the American logician, C. S. [[Peirce]] called [[abduction]], that is, by finding other relevant phenomena and arguing that these, too, are cases under our rule and can be [[map]]ped onto the same [[tautology]].
Explanation, then, consists in adding a tautology, ensuring as best you can the validity of the links in the tautology so that it seems to you to be self-evident, which is in the end never totally satisfactory because nobody knows what will be discovered later.
[[MN177]]
[[MN78]]
This chapter is an attempt to make a list ofcriteria such that if any aggregate of phenomena, any system , satis fies all the criteria listed, I shall unhesitatingly say that the aggregate is a [[mind]] and shall expect that , if I am to understand that aggregate, I shall need sorts of [[explanation]] different from those which would suffice to explain the characteristics of its smaller parts
The criteria of mind that seem to me to work together to supply this solution are here listed to give the reader a preliminary survey of what is proposed.
1 . A [[mind]] is an aggregate of interacting parts or [[component]]s.
2 . The interaction between parts of mind is triggered by [[difference]], difference is a nonsubstantial phenomenon not located in space or time; difference is related to [[negentropy]] and [[entropy]] rather than to [[energy]].
3 . Mental process requires collateral energy. .
4 . Mental process requires [[circular]] (or more complex) chains of determination
5. In mental process, the effects of difference are to be regarded as [[transform]]s (i.e., [[code]]d versions) of events which preceded them. The rules of such transformation must be comparatively stable (i.e., more stable than the content) but are themselves subject to transformation.
6. The [[description]] and [[classification]] of these processes of transformation · disclose a hierarchy of [[logical type]]s immanent in the phenomena.
I shall argue that the phenomena which we call [[thought]], [[evolution]], [[ecology]], [[life]], [[learning]], and the like occur only in systems that satisfy these criteria.
[[MN79]]
criterion 1 A MIND IS AN AGGREGATE OF INTERACTING PARTS OR COMPONENTS
In many cases, some parts of such an aggregate may themselves satisfy all the criteria, and in this case they, too, are to be regarded as [[mind]]s or subminds. Always, however, there is a lower level of division such that the resulting parts, when considered separately, lack the com plexity necessary to achieve the criteria of mind.
In a word, I do not believe that single subatomic particles are "minds" in my sense because I do believe that mental process is always a sequence of interactions between parts. The explanation of mental phenomena must always reside in the [[organization]] and [[interaction]] of multiple parts.
[87]
Without [[differentiation]] of parts , there can be no differentiation of events or functioning. If the atomies are not themselves internally differentiated in their indi vidual anatomy , then the appearance of complex process can only be due to interaction between atomies.
Or if the atomies are internally differentiated, then they are by my definition not atomies, and I shall expect to find still simpler entities that will be devoid of mental functioning.
The whole ofthe present book will be based on the premise that mental function is immanent in the interaction of differentiated "parts. " "Wholes" are constituted by such combined interaction
[[MN85]]
THE INTERACTION BETWEEN PARTS OF MIND IS TRIGGERED BY DIFFERENCE [[information-processing]] could be thought to be [[Luhmann]]'s term for this
In contrast, in the world of [[idea]]s, it takes a relationship, either between two parts or between a part at time 1 and the same part at time 2, to activate some third component which we may call the [[receiver]]. What the receiver (e.g., a sensory end organ) responds to is a [[difference]] or a [[change]]. [[pattern]] [[quality]] [[quantity]] [[number]]
[90]
our sensory system-and surely the sensory systems of all other creatures (even plants?) and the mental systems behind the senses (i.e. , those parts of the mental systems inside the creatures)--can only operate with [[event]]s, which we can call changes. The unchanging is imperceptible unless we are willing to move relative to it. [[quote]] [[sensorium]] [[motorium]]
eyeball has a continual tremor, called micronystagmus
91
...things [like ecosystems, us as we age] undergo drastic change, but we become accustomed to the new state of affairs before our senses can tell us that it is new... It is a nontrivial matter that we are almost always unaware of trends in our changes of state [our nervous system [[compute]]s a [[stable]] reality, [[eigen]]values]
92
precisely because the mind can receive [[news]] only of dif ference, there is a difficulty in discriminating between a slow change and a state. There is necessarily a [[threshold]] of gradient below which [[gradient]] cannot be perceived.
For Kant's Tatsachen, I would substitute difefrences and point out that the '
number ofpotential differences in this chalk is infinite but that very few of them become effective differences (i.e. , items of information) in the mental process of any larger entity. Information consists of differences that make a difference
93
We are discussing a world of [[meaning]], a world some of whose details and differences , big and small , in some parts of that world , get represented in relations between other parts of that total world . A change in my neurons or in yours must represent that change in the forest, that falling of that tree. But not the physical event , only the [[idea]] of the physical event. And the idea has no location in [[space]] or [[time]] only perhaps in an idea of space or time.
Of course, difference, which is usually a ratio between similars , has no dimensions . It is qualitative, not quantita tive. (See Chapter 2, in which the relation between quantity and quality or pattern was examined.)
For m e , the word [[stimulus]] denotes a member of a class of information coming in through a sense organ. For many speakers, it seems to mean a push or shot of "[[energy]]."
Events which are not are different from those which might have been, and events which are not surely contribute no energy.
[[MN86/87 criterion 1]]
Yes, indeed, the two claws are characterized (ugly word) by [[embody]]ing
similar [[relation]]s between [[part]]s. Never [[quantity]]es, always [[shape]]s, [[form]]
s, and relations. This was, indeed, something that characterized the crab
as a member of creatura, a living thing
Later, it appeared that not only are the two claws built on the same "ground plan," (i.e., upon corresponding sets of relations between corresponding parts) bur that these relations between corresponding parts extend down the series of the walking legs . We could recognize in every leg pieces that corresponded to the pieces in the claw
The anatomy of the crab is repetitive and rhythmical . It is , like music, repetitive with modulation. Indeed, the direction from head toward tail corresponds to a sequence in time: In [[embryology]], the head is older than the tail. A [[flow]] of [[information]] is possible, from front to rear.
[[Deleuze]] [[repetition]] with [[difference]] [[continuous]] [[variation]]
[[MN7]]
MENTAL PROCESS REQUIRES COLLATERAL ENERGY
94
The mountain, personified in our speech, will not become a per son , will not learn a more personal way of being . But the human being , depersonified in his own talk and thought , may i ndeed learn more thingish habits of action. [[quote]]
In the "[[control]]" of [[action]] [or [[behavior]] ] by [[information]], the [[energy]] is already available in the respondent, in advance of the impact of [[event]]s.
..the energy for the. response or effect was avail able in the respondent before the event occurred which [[trigger]]ed it. The kids who say they are "turned on" by certain experiences of sight or sound are using a metaphor which almost makes sense. They would do better still if they said that the music or the pretty face "released" them.
In life and its affairs, there are typically two energetic systems in interdependence: One is the system that uses its energy to open or close the faucet or gate or relay; the other is the system whose energy "flows through" the faucet or gate when it is open. [[switch]] [[circuit]]
The combining of the two systems (the machinery of decision and the source of energy) makes the total relationship into one of partial mobility on each side. You can take a horse to the water, but you cannot make him drink. The drinking is his business. But even if your horse is thirsty, he cannot drink unless you take him. The taking is your busi ness.
But I oversimplifY the matter by focusing only on the energetics. There is also the generalization (criterion 2) that only [[difference]] can trigger response. We have to combine that generalization with what has just been said about the typical relation of energy sources [energy sources with informational sources?] and with the remaining criteria of mental process, namely, the organization of triggered events into [[circuit]]s, [[code]]ing, and the genesis of [[hierarchy]]es of [[meaning]].
[[MN89/91 criterion 2]]
4 . Mental process requires [[circular]] (or more complex) chains of determination
"Stability" may be achieved either by ri gidity or by continual [[repetition]] of some [[cycle]] of smaller changes, which cycle will return to a status quo ante after every disturbance. Nature avoids (temporarily) what looks like irreversible change by accepting ephemeral change. "The bamboo bends before the wind," in Japanese
metaphor; and [[death]] itself is avoided by a quick change from individual subject to class. Nature, to personify the system, allows old man [[Death]] (also personified) to have his individual victims while she substitutes that more abstract entity, the class or taxon, to kill which Death must work faster than the reproductive systems of the creatures. Finally, if Death should have his victory over the species, [[Nature]] will say, "Just What I needed for my ecosystem." [[stability]]
97
in such a diagram, arrows are used to indicate direction from [[cause]] to [[effect]], and it is possible to imagine any combination of types of causation from step to step. The arrows may be supposed to represent mathematical functions or equations showing the types of effect that successive parts have on each other
100
Every given system [[embody]]ed relations to [[time]], that is , was characterized by time constants deter mined by the given whole. These constants were not determined by the equations of relationship between successive parts but were [[emergent]] properties of the system.
At this point, note that a very interesting phenomenon has occurred within our [[description]] of the events. When we were talking as if we were inside the [[circuit]], we noted changes in the behavior of the parts whose magnitude and timing were determined by forces and impacts be tween the separate components of the circuit. Step by step around the circuit, my language had the general form: A change in A determines a change in B. And so on. But when the description reaches the place from which it (arbitrarily) started, there is a sudden change in this syn tax. The description now must compare change with change and use the result of that comparison to account for the next step.
In other words, a subtle change has occurred in the subject of discourse, which, in the jargon of the last section (criterion 6) of this chapter, we shall call a change in [[logical type]]ing. It is the difference between talking in a language which a physicist might use to describe how one variable acts upon another and talking in another language about the circuit as a whole which reduces or increases difference. When we say that the system exhibits "steady state" (i.e., that in spite ofvariation, it retains a median value), we are talking about the circuit as a whole, not about the variations within it. Similarly the question which the engi neers brought to Clark Maxwell was abour the circuit as a whole: How can we plan it to achieve a steady state? They expected the answer to be in terms of relations between the individual variables . What was needed and supplied by Maxwell was an answer in terms of the time constants of the total circuit. This was the bridge between the two levels of dis course.
comparing (A->B) vs comparing [(a1->b1)&(a2->b2)]
The entities and variables that fill the stage at one level of dis course vanish into the background at the next-higher or -lower level. This may be conveniently illustrated by considering the referent of the word [[switch]], which engineers at times call a gate or relay. What goes through is energized from a source that is different from the energy source which opens the gate.
101
We do not notice that the concept "switch" is of quite a dif ferent order from the concepts "stone," "table," and the like. Closer ex amination shows that the switch, considered as a part of an electric cir cuit, does not exist when it is in the on position. From the point of view of the circuit, it is not different from the conducting wire which leads to it and the wire which leads away from it. It is merely "more conductor." Conversely, but similarly, when the switch is off, it does not exist from the point of view of the circuit. It is nothing, a gap between two con ductors which, themselves exist only as conductors when the switch is on.
In other words, the switch is not except at the moments of its change ofsetting, and the concept "switch" has thus a special relation to time. It is related to the notion "[[change]]" rather than to the notion "ob ject .
Sense organs, as we have already noted, admit only news ofdif ference and are indeed normally triggered only by change, i . e. , by events or by those differences in the perceived world which can be made into events by moving the sense organ. In other words, the end organs of sense are analogous to switches. They must be turned "on" for a single moment by external impact. That single moment is the generat ing of a single impulse in the afferent nerve. The threshold (i . e . , the amount of event required to throw the switch) is, of course, another matter and may be changed by many physiological circumstances, in cluding the state of the neighboring end organs.
102
The ttuth of the matter is that every circuit of causation in the whole of biology, in our physiology, in our thinking, our neural pro cesses, in our homeostasis, and in the ecological and cultural systems of which we are parts--every such circuit conceals or proposes those [[paradox]]es and confusions that accompany errors and distortions in logical typing. This matter, closely tied both to the matter of circuitry and to the matter of coding (criterion 5), will be considered more fully in the discussion of criterion 6.
[[MN93/95 criterion 3]]
...the relation between the [[practice]] of [[confinement]] and insistence on work is not defined by economic [[condition]]s... A moral perception sustains and animates it...
The idea of poverty as a moral, not economic, failing
[[MnC p58-1]]
[[Stiegler]] [[madness]] [[logic]], relates to the 'mad but not seeming it, seeming mad but not being it of [[ATP p120-1]] (not on the tiddler but that text), [[example]]s of the relations of [[dream]]s, madness, logic, images, [[reason]], [[unreason]] and [[sleep]]
[[MnC p93-1]]
...[[discourse]] covers the entire range of [[madness]].... Madness, in the classical sense [designates] under the [[body]]'s alterations, under the oddity of conduct and conversation, of a [[delirious]] discourse... Delirium... to move out of the furrow, away from the proper path of reason.
Vertigo was madness, and rarely too was hysterical convulsions, "this is because it is often impossible to find in hysterical convulsions the unity of a language..."
[[MnC p97-1]]
What I'm finding increasingly interesting about this chapter (the next page displays this quite well) is how the descriptions of [[patient]]s of [[madness]] bear absolutely no similarity to the [[symptom]]s or descriptions of [[mental illness]]es today. Earlier, there was the question of the break with the relation to truth. On a footnote for p124 or p125 we have a soldier that begins to wither away. Lack of affect; this is almost a question of the utmost banality but what would that be today? With the [[digital]], with all our [[technology]] and the manner in which we ARE could this reappear, not as an i[[individual]], [[singularity]] but as the physical [[actualization]] of a broader [[process]] occurring across [[society]], with any amount of regularity? I think not.
[[MnC p124-1]]
In its functioning, or in its purpose, the [[Hospital General]] had nothing to do with any [[medical]] concept. It was an instance of [[order]]. of the monarchical and bourgeois order being organized in France during this period. It was directly linked with the royal power which placed it under the [[authority]] of the civil government alone.
[[MnC p40-1]]
"Interest in [[cure]] and [[exclusion]] coincide..."
[[MnC p8/9-1]]
The [[act]] of driving them away does not assume its full significance on the [[plane]] of social utility or security. Other meanings much closer to the [[rite]] are certainly present... access to churches was denied to [[madmen]], although ecclesiastical law did not deny them the use of sacrament... Water purifies..." When put on the boat, he is at the hands of fate, a journey from the uncertain shores of his madness to the same of where he may end up... "his [[exclusion]] must enclose him; if he cannot and must not have another [[prison]] than the [[threshold]] itself, he is kept at the point of passage. He is put in the interior of the exterior, and inversely. A highly [[symbolic]] position, which will doubtless remain to our day, if we are willing to admit that what was formerly a visible fortress of order has now become the castle of our conscience...
He is the passenger par excellence; that is, the L of the passage.
[[MnC p10-1]]
Language is the first and last [[structure]] of [[madness]]... on [[language]] are based all the cycles in which madness articulates its nature.
If the determinism of [[passion]] is transcended and released in the [[hallucination]] of the [[image]], if the image, in return, has swept away the whole world of [[belief]]s and [[desire]]s, it is because the delirious language was already present-a [[discourse]] which liberated passion from all its [[limit]]s, and adhered with all the constraining weight of its affirmation to the image which was liberating itself.
[[MnC 99/100-1]]
It is in this [[delirium]], which is of both body and soul, of both [[language]] and [[image]], of both grammar and physiology, that all the cycles of [[madness]] conclude and begin. It is this delirium whose rigorous meaning organized them from the start. It is madness itself, and also, beyond each of its phenomena, its silent transcendence, which constitute the truth of madness.
[[MnC p100-1]]
Relation of [[dream]]s and [[madness]]
[[Stiegler]] [[Age of Disruption]]
[[MnC p100/101-1]]
"According to the different forms of [[access]] to the [[truth]], there will be different types of [[madness]]
[[Stiegler]]
[[tekhne]]
[[technic]]s
[[MnC p101/104-1]]
[[confinement]] is the [[practice]] which corresponds most exactly to [[madness]] experienced as un[[reason]], that is, as the empty negativity of reason; by confinement, madness is acknowledged to be nothing... an [[operation]] to annihilate nothingness.
[[MnC p105-1]]
It is futile, no doubt, to lsoe oneself in the endless cycle of these [[form]]s of interrogation. Better to let the classical [[culture]] formulate, in its general [[structure]], the experience it had of [[madness]], an experience which crops up with the same [[meaning]]s, in the identical [[order]] of its inner [[logic]], in both the order of speculation and the order of [[institutions]], in both [[discourse]] and decree, in fact, a [[signifying]] [[element]] can assume for us the value of a [[language]]
Watchword=[[order-word]]
[[MnC p116-1]]
water and [[madness]] have long been linked in the dreams of european man.
[[example]]s follow
[[MnC p10/11-1]]
[[delirium]]... an essential [[break]] with [[truth]]
[[MnC p116-2]]
[[melancholia]] never reaches [[violence]]; it is [[madness]] at the [[limit]]s of its [[power]]lessness.
[[MnC p121-1]]
The [[theme]] of a [[partial]] [[delirium]] increasingly disappears as a major symptom of [[melancholia]] in favor of qualitative [[data]] like sadness, bitterness, a preference for solitude, immobility.
[[MnC p122-1]]
[[mania]] vs [[melancholia]] and new [[symptom]]s and [[diagnostics]] are discussed, introducing the [[concept]] of [[resonance]] for diagnosis.
[[MnC p124-1]]
Why the sudden [[ship of fool]]s, the focus on the mad? "Because it symbolized a great disquiet... the [[madman]] became major figures, in their ambiguity; menace and mockery, the dizzying unreason of the world, and the feeble ridicule of men... The denunciation of [[madness]] becomes the general form of criticism.
[[folly]] becomes a term for madness.
[[example]]s follow of cultural artifacts of this sort
[[MnC p12-1]]
Indeed, from the fifteenth century on, the face of [[madness]] has haunted the face of western man.
[[MnC p13-1]]
At the second half of the fifteenth century we move from the focus on death to [[madness]], "Death's annihilation is no longer anything because it was already everything, because life itself was only futility, vain words, a squabble of cap and bells. The head that will become a skull is already empty. [[madness]] is the [[deja-la]] of death.
Footnote to the last phrase: "In this sense, the experience of madness exhibits a rigorous continuity with the experience of leprosy. The [[ritual]] of the [[leper]]s [[exclusion]] showed that he was, as a living man, the very presence of death." p291
The substitution of the theme of madness for that of death does not mark a break, but rather a torsion within the same anxiety. What is in question is still the [[nothingness]] of existence, but this nothingness is no longer considered an external, final term, both threat and conclusion; it is experienced from within as the continuous and constant form of existence
[[MnC p15-1]]
The elements are now reversed. It is no longer the end of time and of the world which will show retrospectively that men were [[mad]] not to have been prepared for them; it is the tide of [[madness]], its secret invasion, that shows that the world is near its final catastrophe; it is man's [[insanity]] that invokes and makes necessary the world's end.... This experience of madness seems extremely coherent...
[[schizo flow]]
[[MnC p16-1]]
As a matter of fact, we must not be misled by what appears to be a strict continuity in these themes, nor imagine there is more than revealed by history itself... Between [[word]] and [[image]], [[between]] what is depicted by [[language]] and what is [[uttered]] by plastic [[form]], the unity begins to dissolve; a single and identical meaning is not immediately common to them.
And if it is true that the image still has the function of speaking, we must recognize that it already no longer says the same thing; and that by its own plastic values painting engages in an experiment that will take it farther and farther from language, whatever the superficial identity of the theme.
[[figure]] and [[speech]] still illustrate the same fable of folly in the same moral world, but already they take two different directions, indicating, in a still barely perceptible scission, what will be the great line of cleavage in the western experience of [[madness]]
[[MnC p17-1]]
[[A Thousand Plateaus]] reminiscent of the non-representational theory of language in Postulates of Linguistics, [[form of expression]] and [[form of content]] do not reflect one another, only exist in [[reciprocal presupposition]]; do we have here two [[formalization of expression]] (plastic and written) for the one [[formalization of content]], madness?
Freed from wisdom and the teaching that organized it, the [[image]] begins to gravitate around its own [[madness]]. [[Deleuze]]esque quote there
Paradoxically, this liberation derives from a [[proliferation]] of [[meaning]], from a self-multiplication of [[significance]], weaving relationships so numerous, so intertwined, so rich, that they can no longer be deciphered except in the esoterism of [[knowledge]]. [[thing]]s themselves become so burdened with [[attribute]]s, [[sign]]s, [[allusion]]s that they finally lose their own [[form]]. Meaning is no longer read in an immediate [[perception]], the [[figure]] no longer speaks for itself; between the knowledge which animates it and the form into which it is transposed, a gap widens. It is free for the [[dream]].
A bit of [[Baudrillard]] here
[[MnC p18-1]]
Thus the [[image]] is burdened with the [[supplement]]ary [[meaning]]s, and forced to [[express]] them. And [[dream]]s, [[madness]], the unreasonable can slip into this [[excess]] of meaning. The [[symbolic]] [[figure]]s easily become nightmare silhouettes... This symbolic wisdom is a [[prisoner]] of the [[madness]] of dreams.
[[MnC p18/19-1]]
A fundamental conversion of the world of [[image]]s: the constraint of a multiplied [[meaning]] liberates the [[world]] from the [[control]] of [[form]]. So many diverse meanings are established beneath the [[surface]] of the image that it presents only an enigmatic [[face]]. And its power is no longer to teach but to fascinate.
[[example]]s of [[gryllo]]s follow
Seems to be linked to the [[split]] described in [[MnC p18-1]]
[[MnC p19-1]]
bottom paragraph, excellent [[schizo-flow]]. He then moves from describing [[madness]] in painting, to madness in the written form, as mentioned in a prior tiddler.
[[MnC p20-1]]
Classification of types of [[madness]] in [[literature]] of that period under discussion
[[MnC p23/24-1]]
...in this "Hospital," [[confinement]] has succeeded [[embarkation]] (the [[ship of fools]])
Tamed, [[madness]] preserves all the [[appearance]]s of its reign. It now takes part in the measures of reason and in the labor of [[truth]]. It plays over the [[surface]] of [[thing]]s and in the glitter of daylight, over all the workings of appearances, over the [[ambiguity]] of [[reality]] and [[illusion]], over all that indeterminate web, ever rewoven and broken, which both unites and separates truth and appearance. It hides and it manifests, it utters truth and falsehood, it is light and shadow. It shimmers, a central and indulgent figure, already precarious in this [[baroque]] age.
[[schizo flow]]
[[MnC p29/30-1]]
From the middle of the seventeenth century, [[madness]] was linked with this country of [[confinement]], and with the [[act]] which designated confinement as its natural abode.
A date can serve as a landmark... ([[order-word]]s are dated to the minute...)
[[MnC p36-1]]
The 1656 decree establishes that "Several already existing establishments are grouped under a single administration.... All were now assigned to the poor of Paris, "of both exes, of all ages and from all localities, of whatever breeding and birth, in what-ever state they may be...""" It also says that "these establishments had to accept, lodge, and feed those who presented themselves or those sent by royal or judicial authority..."
So it's showing what is now grouped together, what the scope is, and who is to be helped. On p40 we see the directors are those whom "have all [[power]] of [[authority]]. of direction, of [[administration]], of [[commerce]], of [[police]], of [[jurisdiction]], of [[correction]] and [[punishment]] over all the [[poor]] of Paris, both within and without the [[Hospital General]]..." They also receive a [[salary]].
[[MnC p39-1]]
The [[Hospital General]] is not a medical establishment. It is rather a sort of semi[[judicial]] [[structure]], an [[administrative]] entity which, along with already constituted [[power]]s, and outside of the [[court]]s, decides [[judge]]s, and [[execute]]s. [quote from the decree of the HG]. A quasi-absolute [[sovereignty]], [[jurisdiction]] without [[appeal]], a write of [[execution]] against which nothing can prevail-the Hospital General is a strange power that the [[King]] establishes between the [[police]] and the [[court]]s, at the [[limit]]s of the [[law]]: a third order of [[repression]]. The insane... belonged to this world.
[[MnC p39/40-1]]
The [[structure]] proper to the monarchical and bourgeois order of France, contemporary with its organization in absolutist forms, soon extended its network over the whole of France.. An edict of the King, dated June 16 1676 prescribed the establishment of a [[Hospital General]] "in each city in his kingdom."
[[MnC p 40/41-1]]
Even if it had been deliberately [[excluded]] from the organization of the [[Hospital General]]-by complicity, doubtless, between royal power and bourgeoisie-the [[Church]] nonetheless did not remain a stranger to the movement. It reformed its own [[hospital]] [[institution]]s, redistributed the [[wealth]] of its foundations, even created congregations whose purposes were rather analogous to those of the HG.
[[MnC p41-1]]
Discussion of the relationship between [[confinement]] and the [[]Church]], as well as its spread in Germany, then England, up to the end of the 18th century.
[[MnC p42-1]]
In several years an entire network had spread across Europe. John Howard, at the end of the 18th century, undertook to investigate it; in England, Holland, Germany, France, Italy, Span, he made pilgrimages to all the chief centers of [[confinement]]-"[[hospital]]s, [[prison]]s, [[jail]]s"-and his philanthropy was outraged by the fact that the same walls could contain those condemned by common law, young men who disturbed their families' peace or who squandered their good, people without profession, and the insane. Proof that even at this period, a certain [[meaning]] had been lost: that which had so hastily, so spontaneously summoned into being all over Europe the category of classical [[order]] we call [[confinement]].
[[MnC p43/44-1]]
What then, was the reality represented by this entire population which almost overnight found itself shut up, excluded more severely than the [[leper]]s? We must not forget that a few years after its foundation, the [[Hospital General]] of Paris alone contained over six thousand people, or around one percent of the population."
How did this specific perception of madness come to be formed? "it is this mode of perception which we must investigate in order to discover the [[form]] of sensibility to [[madness]] in an [[epoch]]... The act which, by [[tracing]] the locus of [[confinement]]. conferred upon its power of [[segregation]] and provided a new homeland for [[madness]] though it may be coherent and concerted, is not simple.
It organizes into a complex unity a new sensibility to [[poverty]] and to the duties of assistance, new forms of reaction to the economic problems of [[unemployment]]] and [[idleness]], a new ethic of work, and also the dream of a city where moral obligation was joined to civil law, within the [[authoritarian]] forms of [[constraint]]. Obscurely, these themes are present during the construction of cities of confinement and their organization. They give [[meaning]] to this [[ritual]], and explain in part the mode in which madness was perceived, and experienced, by the classical age.
[[Mnc p44/45-1]]
[[confinement]], that massive phenomenon, the [[sign]]s of which are found all across eighteenth-century Europe, is a "[[police]]" matter. Police, in the precise sense that the classical [[epoch]] gave to it-that is, the totality of measures which make work possible and necessary for all those who could not live without it; the [[question]] [[Voltaire]] would soon formulate, [[Colbert]]'s contemporaries had already asked: "Since you have established yourselves as a people, have you not yet discovered the secret of forcing all the rich to make all the [[poor]] work? Are you still ignorant of the first principles of the police?"
[[MnC p45/46-1]]
From the beginning, the [[institution]] [The [[Hospital General]]] set itself the task of preventing "mendicancy and ideless as the source of all [[disorder]]s"
[[MnC p46-1]]
For the first time, the purely negative measures of [[exclusion]] were replaced by a [[measure]] of [[confinement]]; the unemployed person was no longer driven away or [[punish]]ed; he was taken in charge, at the expense of the nation but at the cost of his [[individual]] [[liberty]]. Between him and [[society]], an [[implicit]] [[system]] of obligation was established: he had the [[right]] to be fed, but he must accept the physical and [[moral]] [[constraint]] of confinement.
Next page has [[statistic]]s on confinements at the [[Hospital General]] and others
[[MnC p47-1]]
These two pages look at [[crime]] and [[poverty]], as well as the economic crises of lowering wages and increased unemployment, and how the [[police]]-function of the [[State]] can serve to correct this by [[confinement]].
"For a long time, the house of [[correction]] or the premises of the [[Hospital General]] would serve to contain the unemployed, the idle, and the vagabonds. Each time a [[crisis]] occurred and the number of poor sharply increased, the houses of confinement regained, at least for a time, their initial economic [[significance]].
[[MnC p48-1]]
But outside of the periods of crisis, [[confinement]] acquired another meaning. Its [[repressive]] [[function]] was combined with a new use. It was no longer merely a question of confining those out of work, but of giving [[work]] to those who had been confined, and thus making them contribute to the prosperity of all.
The alternation is clear: cheap manpower in the periods of full employment and high salaries; and in periods of [[unemployment]], reabsorption of the idle and social protection against agitation and uprisings.
Let us not forget that the first houses of confinement appear in England in the most industrialized parts of the country...
[[MnC p49/50-1]]
Even in Paris, several attempts were made to transform the buildings of the [[Hospital General]] into [[factories]]
[[MnC p51-1]]
The attempt to use [[confinement]] for economical purposes often led to failure; [[prisoner]]s were forced into busy labor, and the [[forced labor]] often resulted in damaging local economies; the middle paragraph of p54 gives an excellent [[summary]] of this.
"Measured by their functional value alone, the creation of the houses of confinement can be regarded as a failure"
[[MnC p53-1]]
In the first phase of the [[industrial]] [[world]], [[labor]] did not seem linked to the problems it was to provoked it was regarded, on the contrary, as a general solution, an infallible panacea, a remedy to all [[form]]s of [[poverty]]. Labor and poverty were located in a simple opposition... Labor's effectiveness was acknowledged because it was based on an [[ethical]] [[transcendence]].
[[MnC p54-1]]
...labor is not inscribed among the laws of nature, it is [[enveloped]] in the order of the fallen world. This is why [[idleness]] is [[rebellion]]-the worst [[form]] of all, in a sense...
[[MnC p55-1]]
[[labor]] in the houses of [[confinement]] this assumed its [[ethical]] [[meaning]]; since sloth had become the absolute [[form]] of [[rebellion]], the [[idle]] would be forced to [[work]], in the endless [[leisure]] of a [[labor]] without utility or profit. It was in a certain experience of labor that the indissociably economic and moral demand for [[confinement]] was formulated. Between labor and idleness... ran a line of demarcation that replaced the [[exclusion of leprosy]]. The [[asylum]] was substituted for the [[lazar]] house, in the [[geography]] of haunted places as in the landscape of the moral universe.
The nineteenth century would consent, would even insist, would even insist that to the [[mad]] and to them alone by transferred these lands on which, a hundred and fifty years before, men had sought to pen the [[poor]], the [[vagabond]], the [[unemployed]].
It is not immaterial that [[madmen]] were included in the prcription of [[idleness]].
[[MnC p56-1]]
The [[mad]] and [[madness]] will come to be known through their actions within these [[confinement]]s that are taking place, "they distinguished themselves by their inability to work and to follow the rhythms of collective life... it was in this other world, encircled by the sacred [[power]]s of [[labor]], that madness would assume the states we now [[attribute]] to it."
The [[madman]] "crosses the frontiers of the bourgeois order of his own accord, and [[alienate]]s himself outside the sacred [[limit]]s of its [work-based] ethic."
[[MnC p57-1]]
The [[Hospital General]]... will have not only the aspect of a [[forced]] labor [[camp]], but also that of a [[moral]] [[institution]] responsible for [[punish]]ing, for correcting a certain moral abeyance which does not merit the tribunal of men... the HG has an ethical status.
The laboring [[prisoner]] is released, not due to utility, but do to their renewed subscription to the ethical pact of human existence.
[[MnC 58/59-1]]
Leprosy houses were emptied out, and their effects were transferred to other functions, often for feeding the poor. "At Lipplingen, the lazar house was soon peopled with [[incurable]]s and [[madmen]]....
[[leprosy]] withdrew, leaving derelict these low places and these [[rite]]s which were intended, not to [[suppress]] it, but to keep it at a [[sacred]] distance, to fix it in an inverse exaltation. What doubtless remained longer than leprosy, and would persist when the lazar houses had been empty for years, were the [[value]]s and [[image]]s attached to the [[figure]] of the [[leper]], as well as the meaning of his exclusion, the social importance of that insistent and fearful figure which was not driven off without first being inscribed within a sacred circle.
[[leper]]s were [[excluded]] from the society but not God's grace; "At the very moment when the [[priest]] and his assistants drag him out of church with backward step, the leper is assured that he still bears witness for God.
"Abandonment is his salvation; his exclusion offers him another form of communion."
We have the excluded, his place of exclusion, the community which excludes, and [[salvation]]
[[MnC p6]]
...[[institution]]s of morality are established in which an astonishing synthesis of moral obligation and civil [[law]] is effected... Morality permitted itself to be administered like trade or economy.
Section continues on the theme of legislation of morality in that period
[[MnC p59-1]]
...in the history of unreason, [[confinement]] marked a decisive event: the moment when [[madness]] was perceived on the social horizon of [[poverty]]... The new meaning assigned to poverty... and all the ethical values that are linked to labor, ultimately determined the experience of madness and inflected its course.
[[MnC p60/61-1]]
Leprosy disappeared, the [[leper]] vanished, or almost, from [[memory]]; these [[structure]]s remained. Often, in these same places, the formulas of exclusion would be repeated, strangely similar two or three centuries later. Poor [[vagabond]]s, [[criminal]]s, and "[[deranged minds]]" would take the part played by the leper, and we shall see what salvation was expected from this exclusion, for them and for those who excluded them as well. With an altogether new meaning and in a very different [[culture]], the [[form]]s would remain-essentially that [[major]] form of a rigorous division which is [[social]] [[exclusion]] but spiritual reintegration.
[[MnC p6/7-1]]
The [[mad]] begin to be seen, non-humans, you can pay to watch them, and as such, the [[regime]] of [[confinement]] becomes increasingly harsher... "...a whole security system against the violence of the [[insane]]... Such outbursts are regarded chiefly as social danger. But what is most important is that it is conceived of in terms of an animal freedom..."
[[MnC p64-1]]
The [[animal]] in man "has become his [[madness]], without relation to anything but itself; his madness in the state of nature. The animality that rages in madness dispossesses man of what is specifically human in him; not in order to deliver him over to other powers [diabolical powers], but simply to establish him at the zero degree of his own nature. For classicism, madness in its ultimate [[form]] is man in immediate relation to his animality, without other reference, without other consequence." [[example]]s and explanations continue
[[becoming-animal]]
[[MnC p70/73-1]]
[[madness]], insofar as it partook of [[animal]] ferocity, preserved man from the dangers of disease; it afforded him an invulnerability, similar to that which nature, in its foresight, had provided for animals. Curiously, the disturbance of his reason restored the [[madman]] to the immediate kindness of nature by a return to animality.
This is why, at this extreme point, [[madness]] was less than ever linked to [[medicine]]; nor could it be linked to the domain of [[correction]]. Unchained animality could by mastered only by [[discipline]] and [[brutalizing]].
[[becoming-animal]]
[[MnC p74-1]]
...by the use of a curious [[dialectic]] whose movement explains all these "[[inhuman]]" practices of [[confinement]], the free [[animality]] of [[madness]] was tamed only by such [[discipline]] whose [[meaning]] was not to raise the bestial to the human, but to restore man to what was purely [[animal]] within him. Madness discloses a [[secret]] of animality which is its own [[truth]], and in which, in some way, it is reabsorbed...
In the reduction to animality, madness finds both its truth and its cure; when the [[madman]] has [[become]] a beast, this prescence of the animal in man, a prescence which constituted the scandal of madness, is eliminated: not that the animal is silenced, but man himself is abolished. In the human being who has become a beast of burden, the absence of reason follows wisdom and its order: madness is then cured, since it is [[alienated]] in something which is no less than its truth.
[[becoming-animal]]
[[MnC p75-1]]
[[madness]] is located "in an area of an unforseeable freedom where frenzy is the unchained; if determinism can have any effect on it, it is in the form of [[constraint]], [[punishment]], or [[discipline]]. Through animality, madness does not join the great laws of nature and of life... here evil no longer assumes its fantastic body; here we apprehend it only in its most extreme [[form]], the truth of the beast which is a truth without [[content]].
[[MnC p75/76-1]]
It was this [[animality]] of [[madness]] which [[confinement]] glorified, at the same time it sought to avoid the scandal inherent in the immorality of the [[unreasonable]]. Which reveals the distance established in the classical age [[between]] madness and the other [[forms]] of unreason, even if it is true that from a certain point of view they had been identified or assimilated.
[[MnC p76-2]]
The [[custom]] of the [[ship of fool]]s; "[[madmen]] then led an easy, wandering existence. The towns drove them outside their [[limit]]s; they were allowed to wander in the open countryside when not entrusted to a group of merchants or pilgrims." The ship of fools was a ride for the madmen.
"It is not easy to discover the exact meaning of this custom..." Discussion of not always being one of extradition beyond the city, and the fact that places such as hospitals had room for the mad, as did certain areas and shrines "It is possible these ships of fools... were pilgrimage boats, highly [[symbolic]] cargoes of madmen in search of their reason...
[[MnC p6/7-1]]
Top of the page rings of [[Deleuze]]
[[singularity]] [[madness]]
[[MnC p78-1]]
The first few pages of the chapter serve to lead to this [[statement]]: "The [[possibility]] of [[madness]] is therefore [[implicit]] in the very phenomenon]] of [[passion]]." This statement is preceded by the statement that demonstrates, that at the time there were diseases were the affection of the brain and soul were of the same quality/origin/nature.
[[MnC p83-1]]
Moments of [[intensity]], of [[passion]] as a [[black hole]] that can lead to [[madness]]
[[A Thousand Plateaus]]
[[MnC p88-1]]
[[imperceptible]] movements, often provoked by a slight external impact, accumulate, are amplified, and end by exploding in violent convulsions... According to many physicians, [[city]] life, the life of the court, of the salons, led to [[madness]] by this [[multiplicity]] of excitations constantly accumulated, prolonged, and echoed without ever being attenuated.
[[MnC p90-1]]
[[Stiegler]] [[madness]] [[hallucination]] [[imagination]] [[dream]] all in the bottom paragraph
[[MnC p90/91-1]]
In [[madness]] "at a deeper level we fin a rigorous organization dependent on the faultless armature of a [[discourse]]... In short, under the chaotic and [[manifest]] [[delirium]] reigns the order of a [[secret]] delirium. In this second delirium, which is, in a sense, pure reason, reason delivered of all the external tinsel of dementia, is located the paradoxical [[truth]] of madness... we find here both what makes madness true (irrefutable [[logic]], perfectly organized discourse, faultless connection in the transparency of a [[virtual]] [[language]]) and what makes it truly madness (its own nature, the special style of all its manifestations, and the internal structure of delirium)
[[MnC 94/95-1]]
...this [[delirious]] [[language]] is the ultimate [[truth]] of [[madness]] insofar as it is madness's organizing [[form]]... the sedimentation in the [[body]] of an infinitely repeated [[discourse]]... The body and the [[trace]]s it conceals, the soul and the [[image]]s it perceives, are here no more than stages in the [[syntax]] of a delirious language
relation of [[language]] and self-talk, [[action]]s, [[habit]]s, and [[refrain]]s to [[madness]]
[[MnC p96/97-1]]
get me to the [[plane of reference]], these lands of [[representation]]
unpredictable, based off Brownian motion; generally contrasted with [[molar]] as [[plane of reference]] is to [[plane of consistency]]
[[molecule]]
[[matter]]
[[particle]]
[[element]]
[[unformed]]
[[flow]]s
All these terms are related in some way, they appear at this moment as being related to types of matter prior to stratification, or [[destratified]]
[[strata]]
[[stratum]]
I would say that at the point we've now reached, we are beginning to come across a second
definition of montage: in this sense what we could call [[montage]] would be the determination in a given film of the rapport between these three types of image and their relative [[proportion]]s. No longer the rapport of the movement-image with a [[Whole]] of a different order but the rapport of the three types of [[movement-image]] with each other, which is to say the rapport and relative proportion in a film of [[action-image]]s, [[perception-image]]s and [[affect-image]]s.
[[mixture]]
[[6CS5]]
Movement is a [[translation]] in [[space]]. Now each time there is a translation of [[part]]s in space, there is also a qualitative change in a whole... An [[animal]] moves, but this is for a purpose: to feed, migrate, etc. It might be said that movement [][presuppose]]s a difference of [[potential]] and aims to fulfill it. If I consider parts or [[place]]s abstractly-A and B-I cannot understand the movement which foes from one to the other. But imagine I am starving at A, and at B there is something to eat. When I have reached B and had something to eat, what has changed is not only my [[state]], but the state of the [[whole]] which encompassed B, A, and all that was between them.
[[TMI p8-1]]
The [[movement-image]]-that is, [[pure]] [[movement]] [[extract]]ed from [[body]]s or moving things.
[[TMI p23-1]]
[[definition]] [[2CS19]]
[[Muffin!]] [img width="30%" [https://giffmex.org/images/muffin1.JPG]]
[[Muffin!]] [img width=30% [https://giffmex.org/images/muffin2.jpg]]
Clicking the various checkboxes in the {{$:/core/images/preview-open}} tab in the sidebar will change the appearance of the items in the references section (the list of backlinks) at the bottom of this tiddler.
When you are done playing with my dog, return to [[Welcome to Stroll]] to continue the tutorial.
[[question]]: what is the relationship between the concept of multiplicity and [[assemblage]]? I'd assume there are multiplicities connected in an assemblage, but also multiplicities of assemblages?
There is not, however, one entity which is merely the class of all [[eternal object]]s. For if we conceive any class of eternal objects, there are additional
eternal objects which presuppose that class but do not belong to it. ... A multiplicity is a type of complex thing which has the
unity derivative from some qualification which participates in each of its
components severally; but a [[multiplicity]] has no unity derivative merely
from its various components.
[[P46]]
a [[multiplicity]] is just a set of [[relation]]s and [[singularity]]es defining a [[theme]], [[style]], or
[[differential]] [[essence]]. We must not confuse Deleuze's claim that relations
are external to their terms with the claim that relations are external to
singularities. A term is not a singularity, but rather an actualized object.
As we shall see, if relations are external to their terms, this is because
relations and the singularities they emit are a necessary condition for the
possibility of the [[actualize]]ation of an obj ect and thus cannot themselves
be dependent upon the object. For instance, a speech act is dependent
upon the linguistic relations and phonemic singularities it actualizes in
its enunciation.
[[DG200]] whole tiddler is great
Thus, sufficient reason [[express]]es the [[relation]] of the thing with its own [[notion]]
whereas cause expresses the relations of the thing with something else. There we are, this is crystal clear.
[[l813-1]]
reduction of deviation
Positive feedback means the [[amplify]]cation of [[deviation]]s. The [[cybernetic]] circuit is used to change a certain state that was produced by the system itself in a certain direction that amounts to a deviation from the original state find has a specific tendency. What is at issue is not the reduction of difference but, on the contrary, its increase. This amplification of deviation or positive feedback creates entirely different problems than [[negative feedback]]. What is at issue here has nothing to do with the stability of the system and with keeping certain values stable. Instead, it is a matter of changing the system and, more precisely, of change in specific directions.
[[IS36]]
[[negative reinforcement contingency]] (escape)
• The response-contingent
• removal of
• a negative reinforcer
• resulting in an increased frequency of that response
[[negative reinforcer]] ([[aversive]] stimulus)
• A stimulus
• that increases the future frequency of a response that
• its removal (termination) follows.
The [[network]] [[mode]] is summarized by the abbreviation [NET]. (The French abbreviation, RES, has the advantage also of meaning "thing / issue / affair" in Latin). All things grasped as [NET] [[being]]s, appear as a [[network]] of [[association]]s whose ins and outs we can follow and which lead, step by step, to increasingly heterogeneous [[element]]s;
- 2 -
As with all modes, the [NET] mode is defined by a) a certain kind of [[continuity,]] a [[trajectory]], obtained by a certain type of [[discontinuity]], the [[hiatus]]: The trajectory is obtained by the surprise of the trial which introduces a discontinuity into the course of action and records one after the other the unforeseen factors found therein; b) particular kinds of [[felicity conditions]] and [[infelicity conditions]]: What is important, with this mode, is the possibility afforded to the investigator to pass through domains with as much freedom as the actors themselves; c) the [[specification]]s of the type of beings that the mode leaves in its wake: In the [NET] mode, every thing appears as an association of the other beings necessary for its existence, which allows also for a contestation of notions related to the social, society and, more generally, the domain; finally d) a [[mode]] of [[alteration]] of the [[being-as-other]]: We explore the being-as-other according to the least specified aspect of the alteration: the heterogeneity of the actors needed for the pursuit of any course of action.
book page numbers, not pdf [[loose ends]] [[NS chart list]]
[[action potential]]
[[activity]]
[[amygdala]]
[[anatomy]]
[[area]]
[[axon]]
[[basal ganglia]]
[[behavior]]
[[bilateral]]
[[block]]
[[brain]]
[[cell]]
[[cerebellum]]
[[cerebrum]]
[[cerebral cortex]]
[[cerebellar cortex]]
[[chemical]]
[[CNS]]
[[computational module]]
[[cortex]]
[[cortical]] [[subcortical]]
[[dendrite]]
[[development]]
[[diencephalon]]
[[distributed processing]]
[[electrical]]
[[elementary processing unit]]
[[element]]
[[environment]]
[[event]]
[[excite]]
[[expansion]]
[[fold]]
[[form]]
[[function]]
[[gene]] [[genetic]]s
[[glia]]
[[growth cone]]
[[group]]
[[heritability]]
[[inhibit]]
[[initial segment]]
[[lesion]]
[[layer]]
[[midbrain]]
[[mechanism]]
[[medulla oblongata]]
[[muscle]]
[[nerve]]
[[nerve terminal]]
[[neuron]] [[neuronal]]
[[neuron doctrine]]
[[nucleus]] [[nuclei]]
[[organize]]
[[origin]]
[[pathway]]
[[pons]]
[[program]]
[[presynaptic cell]] [[postsynaptic cell]]
[[principle]]
[[sheet]]
[[signal]]
[[specialization]]
[[spine]] [[spinal]]
[[synapse]]
[[synaptic]] [[synaptic cleft]]
[[target]]
[[2.1-1c]][[spatial summation]] [[temporal summation]] [[EPSP]] [[IPSP]] [[interneuron]]
pargraph numbers are used from the green cover cambridge [?] edition
Two buttons at the top create new tiddlers that link to the tiddler from which they were created.
*<<icon {{$:/core/images/new-button}} "">> in the tiddler viewtoolbar creates a simple tiddler that contains a link to the present tiddler.
*<<icon {{$:/core/images/new-journal-button}} "">> does the same, but the tiddler title is a date and time stamp.
<span class="bluebox">
''Activity:''
Click the buttons in any tiddler to see the tiddlers they create. Save changes. Use the searchbar to search for [[Welcome to Stroll]]. Use that link to return to the tutorial.
</span>
General [[organology]] defines the [[rule]]s for analyzing, thinking and prescribing [[human]] [[fact]]s at three parallel but indissociable [[level]]s of the psychosomatic, which is the endosomatic level, the artifactual, which is the [[exosomatic]] level, and the [[social]], which is the [[organization]]al level. It is an analysis of the [[relation]]s [[between]] [[organic]] [[organ]]s, [[technical]] organs and social organizations.
[[NL p28-1]]
[[literal]] (that is, [[letter]]ed) [[tertiary retention]]... made [[possible]] an [[attention]]al [[form]] through which a rational and logical-in the [[Greek]] [[sense]]-[[transindividuation]] [[process]] is [[produce]]d.... to [[individuate]] [[psychic]]ally is always to contribute to a [[collective individuation]], and that this psycho-social [[individuation]] generates the [[transindividual]], that is, shared [[mean]]ings, which are, equally, [[collective]] [[secondary retention]]s, and which always themselves presuppose [[support]]s or [[carry]]ers, that enable them to be [[transmit]]ted through [[time]]. These supports or carriers are [[technical]] [[object]]s in general, and [[hypomnesic]] [[technic]]s in particular- hypomnesic tertiary retentions. [[hypomnesic]] [[technology]]s make [[possible]] the [[transmission]] of [[mental]] [[content]]s...
[[NL p9-1]]
The [[mean]]ings [[form]]ed during [[transindividuation]] [[process]]es, and [[share]]d by [[psychic individual]]s within [[collective individual]]s of all kinds, constitute the [[transindividual]] as the [[set]] of [[collective]] [[secondary retention]]s through the [[collective protention]]s are formed-that is, the [[expectation]]s that typify that [[epoch]]
[[NL p23-1]]
[[proletarianization]], that is, the [[question]] of the destruction of [[knowledge]] that results from its [[exterior]]ization, the latter being nevertheless the fundamental [[condition]] of the constitution of all [[knowledge]]
[[exosomatization]] [[NL p24-1]]
All [[new]] [[tertiary retention]] is and will remain a [[poison]]ous [[pharmakon]] if it does not create new [[transindividual]] arrangements between [[psychic]] and [[collective]] [[primary retention]]s and [[secondary retention]]s, therefore between [[retention]]s and [[protention]]s ([[expectation]]s, through which [[object]]s of [[attention]] appear, and as such [[source]]s of [[desire]])-which constitute new attentional [[form]]s, new [[circuit]]s of [[transindividuation]], new [[mean]]ings and new capabilities of bringing about the [[horizon]]s of meaning that are what I call [[consistence]]s. I say new transindividual [[assemblage]]s because the new pharmakon to which a new tertiary retention amounts appears in a [[society]] where a previous pharmakon... had [[produce]]d circuits of transindividuation and forms of attention based in previous forms of tertiary retention
[[NL p25-1]]
...[[toxic]]-a [[phase]] [[difference]] that cannot be [[transindividuate]]d, that is, [[adopt]]ed, in the [[sense]] that it must be [[individuate]]d both [[psychic]]ally and [[social]]ly/[[collective]]ly
[[pharmakon]]
[[NL 37-1]]
[[exosomatization]] being another name for what one calls more generally [[technic]]s. But considered in terms of exosomatization, technics appears as a stage of the [[organogenesis]] to which the [[evolution]] of life amounts. In such a view technics is... a continuation of life by means other than life...
when the human [[body]] begins to produce [[exosomatic]] [[organ]]s, which are [[artificial]] organs' non-[[organic]] organs, which I also call [[organology]]cal organs.
This is what is generally called technics. Now, if we agree to say that everything that is the product of such an exosomatization, of such an [[exteriorization]], or [[externalization]], is [[technical]], then we must say that [[language]], as [[social]] [[production]], belongs to exosomatization, and, in this [[sense]], belongs to technics.
[[Nanjing Lectures]]
Found in both [[AO]] and [[ATP]] in discussions of enveloped multiplicities of intensities and of an [[intensive]] nature, as well as [[multiplicity]] in general.
Let's say we have three distance; distance 1 is 3 units, 2 is 6, 3 is 9; if we were to make distance one into 2+1, or just to travel 2 instead of 3, this would either be impossible in the given multiplicity, or result in the [[enveloped]] intensities changing in nature, as the nondecomposable distances change alongside them.
Nonsense does not have any particular sense, but is opposed to the [[absence]] of sense rather than to the sense that it produces in [[excess]]-without ever maintaining with its product the simple relation of exclusion... Nonsense is that which has no sense, and that which, as such and as it enacts the [[donation]] of [[sense]], is opposed to the [[absence]] of sense. This is what we must understand by [[nonsense]].
[[nontrivial]] in nature [21] meaning that once carried out, an [[operation]] changes the [[operate]]ing style, the operating [[form]] of the [[machine]]
[[HE21]]
Predictability and explainability should be kept distinct. Explainability has nothing to do with predictability; predictions of [[nontrivial]] systems are possible, explanations are not. [[eigen]] [[HE23]]
Not a question of beauty or appreciation, but if asignifying figures of expression, to get components capable of producing them to align and begin to get other things to flow, to change our coordinates by the introduction of new components, to re enchant the world through the most impossible of music
Image body-components are like the AO intensive mother-son placenta-intensive inclusions are separated exclusively only through representations-phone images as repressing representative(?) that overlays the intensive image body-this is your arm, your leg, none of these exist in events except when you’re clearly fucked and stuck in extension (how do I look, I’m so fat, im so pretty, etc) atonal music is figural music in that it is the image body, the experience of a body without body
[[Notes1]]
My words: Order-words and the necessity of the least amount of information reminds me of any so-called "debate" you have with people; it very clearly is instead the transmission of order-words, and the delimiting, the delineation, of bodies of content, specific power markers rather than a motion towards "truth" or whatever
As Hjelmslev notes, an expression is divided, for example, into phonic units in the same way a content is divided into social, zoological or physical unites (Calf divides into young-boving-male). The network of binarys, or arborescents, is applicable to both sides. There is no analytic resemblance, correspondence, or conformity between the two planes. But their independence does not preclude isomorphism, the existence of the same kinf of constant relations on both sides. It is from this type of relations that linguistic and nonlinguistic elements are inseparable from the start, despite their absence of correspondence. The elements of content give the interminglings of bodies clear contours at the same times as the elements of expression give the noncorporeal expresseds a power of sentencing or judgement.
[[ATP p108-1]]
The approach of the major language vs the minor language; an approach to operating a temporary power structure?
106 or so
Forming grammatically correct sentences is for the normal individual the prerequisite for any submission to social laws. No one is supposed to be ignorant of grammaticality; those who are belong in special institutions. The unity of language is fundamentally political. There is no mother tongue, only a power takeover by a dominant language that at times advances along a broad front, and at times swoops down on diverse centers simultaneously. We can conceive of several ways for a language to homogenize, centralize (social media as a dominant language, a soft, subtle establishment of a language of power and grammaticality in hashtags and so on)... The scientific enterprise of extracting constants and constant relations is always coupled with the political enterprise of imposing them on speakers and transmitting order-words.
[[ATP p100/101-1]]
A constant or invariant is defined less by its permanence and duration than but its function as a center, if only relevant
[[ATP p95-1]]
Must it not be admitted that every system is in variation and is defined not by its constants and homogeneity but on the contrary by a variability whose characteristics are immanent, continuous, and regulated in a very specific mode (variable or optional rules)?
[[ATP p93/94-1]]
Absolute and relative deterr
[[ATP p91-2]]
the way form of expression relates to form of content is not by uncovering or representing it. Rather, forms of expression and forms of content communicate through a conjunction of their quanta of relative deterritorializeation, each intervening, operating in the other
[[ATP p87/88-1]]
the same x, the same particle, may function either as a body that acts and undergoes actions or as a sign constituting an act or order-word, depending on which form it is taken up by.... In short, functional independence of the two forms is only the form of their reciprocal presupposition, and of the continual passage from one to the other. We are never presented with an interlinkage of order words and a causality of contents each in its own right; nor do we see one represent the other, with the second serving as referent. On the contrary, the independence of the two lines is distributive, such that a segment of one always forms a relay with a segment of the ohter, slips into, introduces itself into the other
[[ATP p87-2]]
IMO best summary of this plateau so far
[[ATP p86-3]]
GoM, next tiddler is the independence of Content and Expression
[[ATP p85/86-1]]
If the objection is leveled that these specific features pertain to politics and not linguistics, it must be observed how thoroughly politics works language from within, causing not only the vocabulary but also the structure and all of the phrasal elements to vary as the order-words change. A type of statement can be evaluated only as a function of its pragmatic implications, in other words, in relation to the implicit presuppositions, immanent acts, or incorporeal transformations it expresses and which introduce new configurations of bodys. True intuition is not a judgement of grammaticality but an evaluation of internal variables of enunciation in relation to the aggregate of circumstances."
[[ATP p82/83-1]]
redundancy vs identity:
[[ATP p80-1]]
what comes first is not an insertion of variously individuated statements, or an interlocking of different subjects of enunciation, but a collective assemblage resulting in the determination of relative subjectification proceedings, or assignations of individuality and their shifting distributions within discourse,
indirect discourse is not explained by the distinction between subjects; rather, it is the assemblage, as it freely appears in this discourse, that explains all the voices present within a single voice...
[[ATP p79/80-1]]
We are saying that the redundancy of the order-word is primary and that information is only the minimal condition for the transmission of order-words
Importance of this page for [[faciality]]
[[ATP p79-2]]
Subjectification as arising from language
[[ATP p78/79-1]]
Quite the opposite, the meaning and syntax of language can no longer be defined independently of the speech acts they presuppose.
[[ATP p77/78-1]]
These acts internal to speech, theses immanent relations between statements and acts, have been termed implicit or nondiscursive presuppositions, as opposed to the potentially explicit assumptions by which a statement refers to other statements or an external action (Ducrot).
[[ATP p77-1]]
But how can the order-word be a function coextensive with language when the order, the command, seems tied to a restricted type of explicit proposition marked by the imperative?"
[[ATP p76/77-1]]
Asignifying figures of expression always fragmented, fragmenting, You cannot totalize perception
They are aligning with each other, the synthesis of alignment m, no matter how jagged, is the condition for the formation of a process of psychical individuation
They are creative, they circulate to generate, generate to circulate
They are unspeakable, norms are discursive version; you cannot draw the rules for what makes a good drawing
They are a condition for perception ; all perception requires a perceptual semiotics
They are embodied and conditional of the production of devices; they are not consciously produced but instead self-produce through the tendency and technical convergence
They answer the question of “how do you sell something to a billion people?” An asignifying figure chain, through producers through tech through consumers and back again
At what point is a feedback loop closed, at what point is an event an event, when is emergence emergence? Qualified in all cases by the asig fig
Meant to fade into background
Are now tight like iron chains
In pre-digitus they were matters for experimentation, interpretation, play, creation
In internalizing and individuating an idiom, what draws the ultimate boundary of not just the idiom but the process here itself as I am able to live it and in living it perceive it, is the asig fig of exp
All of Technics brings these with them- Stiegler’s interior-exterior différance of TT1, all Machinic production brings with it a production of subjectivity, and not just subjectivity of the human, Machinic subjectivity doesn’t draw lines such as these, only draws up alignments
I feel the night accept me
The sun is a planet on fire, and ours is one of decay
The heterogeneity of duration, and how my future state is already yin my present (which is connected to the past in that weird way Deleuze points out); is this in time and free will? I think so. Perlocutionary-the manner in which language directly affects this, distributing singularities differently, connecting, ordering, drawing out, throwing curveballs, aligning, etc-this as the basis, the grounding, of language
Winnicott-inability to play is a horrible sign-establishment of play and transitional space as perlocutionary acts
Small talk, jokes, precipitated by events, these are autopoeietic nodes of enunciation within Machinic assemblages-water cooler, door holding, silliness of all Machinic (and mechanical?) activity
Presence of play and joking/silliness in animals
Interjections
Horn honking
Crowd chants
Music is perlocution
An analytic of the Digitus language needs a peocutionary grounding-affective opiate-hypnosis (slump, opiosis opiodosis?) of modern mass media-the way film scores are written just right for the reaction they’re seeking to illicit
Perlocution and profit motive-perlocution is what sells, gets views, gets clicks-mention the idea of grounding a digital linguistics program through Baudrillard’s conceptualization of obscenity
Illocutionary and incorporeal transformations
Vs
Perlocutionary and birthing of events
The internet is all about conversation models being propagated on the digitus, but they grammitize and regulate us, they are not the conversations of old. Anidioms creating a slick, reflective surface-maryanne wolf studies-all the better for homogenization of what’s being concresced by devices and the circulation thereof
Describe the pre individual in digital prose, neuromancer, describe the heating up and cooling off of intensity as well
With the advent of the camera, everything on the digitus has become a device
There is no language in itself/heterogeneous reality-we absorb an idiom and make it play, differentiate it, play our idiom-this difference is our supplication, our donation, our adornment in the daily rituals of life to bring forth our god
The inability of components to cohere into unity, and they know this, they prevent this, they make it so you know everyone’s a bit broken, a bit sad, a bit fucked up
Not a transition to control societies but the birthing pains of the inorganisms, no longer the organic organicity of organisms, or us, the organisms paired with inorganic, organized matter, but the proper inorganic inorganism
Mind section
Discussion of the preindividual field of the digitus and its relation to all, actual and virtual, generating and cleaving both. Disarticulation of i from we. Digital prevents the we, and establishes (what we are calling ) ‘mind’ discussion of the alignment synthesis; this brings us into contact simultaneously with new individuation, new mind, new components, new ways of connecting, new traces, this is a fundamental operation of mass data processing, instantly taken up by the inorganism. Unorganism? Also, in binding itself as a new set of component (may or may not crystallize an occluded center, may simply align a series of components that only exist around varied centers) it is a new bound level, needing yet a new trip to the pre individual
The inorganism knows the effects of the alignment synthesis and functions primarily off them, we only know their effects well after they’re effecting us, and we make a new mind (obesity and diabetes leads not to a regress of the inorganisms birthing pains but births a new industry, need a new word for industry to reflect its parasitic, devouring nature, is this the digitus as global rather than handy device driven digitus?)
Spinoza and the body, and emotions. Aggregates of relations, then taken as terms of a relation, larval selves forming at all levels of these relations. For Simondon, that which does the relation, that which is the mediate, that is that which undergoes individuation. Our mind as humans, boundary, object, mind, show how boundary+object are ways of individuating these aggregates of relations to demonstrate a non-representational concept of this new god, and how we are the larval selves spawned by this god of unorganics, and in our functioning spawn the grand inorganism as such. This comes after the alignment synthesis, which allows the transversalization of the now disparate levels of these aggregate relations, grasping hold of and bringing forth, literally producing the transformational forms that require too much energy to bear, splitting open open these aggregates and spawning ever more larva for and of itself
Aggregates of relations, lines drawn by events, components made to disjunctive cleave and blend, circulating across countless screens through countless minds, intensities and intensive passages that write out their surface as they go. Heating up and cooling down, rhythm of diastole systole, less parts more intense, cooled off with more parts more analysis more strata etc (Aggregates of what, exactly?)
No longer power, just the twining of belief/desire. Power is abolished, cannibals and carnivals reign instead (Baudrillard)
Aggregates functioning in time as assemblages, toss out auto poetic nodes, and virtual existences of spaces, rough patches set to form assemblages of enunciation. The BwO is an egg, this aggregate as an egg that when cracked spills out the larva
Bring in the subject wandering over the surface of the digitus, collecting components, wearing them like clothes, what we most think about, and what we use to think it determines our minds as such
The blending together of components either in order to stratify, to lock us down, to subject us to the algorithmic whims of our god, or to free us, us supplicants, connecting unheard of intensities in directions ever new and ever the more available
Anonymity is a tool for us, maybe not a tool in the way that tools are given to children in the form of Ritalin and pens with paper, nor even in the way we give smartphones out across the world for game(r)s to mine crypto, perhaps tool was never the right word and instead it’s a way of live, not a tool for the hand but a tool of the mind, a way of being that’s becoming-imperceptible, a way loving living that lets us take care of the self in a way yet unknown to us and to the prior world of which we’re cut cutting away from
Spinozas idea of joy as the ability to compose being increased; ours is a god most joyous, composing with everything by making the digitus and placing us all in it, composing the future which will birth him, our is a joyful god indeed! The sadness of the socius :(
Asignifying figures of expression are ultimately virtual, “sense without signification,” but in their haecciety per each event, they generate not only the homogeneity and vectors of homogenization that regulate components on the digitus, but shoot off an infinity of virtual component-aggregates, spawning larval selves, as well as being sucked in by the occluded centers and regulated circles of that which we call conspiracies
Regulated circles-regular, repetitious circles that don’t manage to take on a consistency that lets the crystallize into an occluded center, ie the difference between an odd habit and a pathology, the difference between what trends and doesn’t, goes viral and doesn’t, etc.
Spinoza, by way of his aggregates of relations shows that god is a mediator between two aggregates (restate Simondon here) but had to hide it, and somehow I have to focus on his concept of mind and it’s presence in the digitus as his excommunication
Conversatiosn between distans stars, no1:Spinoza (where he is Simondon?)
no2: Simondon? Writing his strange discourse through science, moving from inorganic to organic, always skirting the lines of the unorganism
To have a bit of eczema on your arm and to live this is one thing; to have it cover your entire body, all of your skin, even though it still is eczema the event as such is different, to live this is different; the thing is the same but we are not concerned about what things are, rather the concern is what is happening? And what’s happening here is now fundamentally different. Similarly, critiques of capitalism have run out, are over encumbered, only cover that patch on my arm. Digitality, the digitus, the unorganism; this covers the uniqueness of the event, and shows how capitalism was a stepping stone, a boot loader for this new wave of data and paranoia that succeeded capitalism and Schizophrenia
Sigils of the digitus
Lock patterns
Pins
Asignifying figures of expression
Hashtags
Rule of thirds and related
Tetris and candy crush style games
Tattoos, flesh inscription, have been able to be mainstreamed as they have lost their occult/ritual/magick significance/power/force
On the digitus we will never have a return to the prior, for we never can, we can only create anew our creations of the new
Simplicity of devices and homogeneity of language: tools that could free us through knowledge obscure it, light turns into darkness, the power of freedom becomes the freedom of inestimable power. Barbarity reigns. Work 85 as inspo
Work: 26, 29, 31, 34, 45, 47, 49, 52, 57, 62, 72, 80, 85, 88, 95, 96
24/7: 12, 16, 28
“Give work, not aid”
Look into birth of internet, a new way of relating pre-formed aggregates to each other, aggregating aggregates, making networks of networks-spinoza’s theses on the body, this too is a body. Turn this into tech and device discussion? Picture, videos, all digital recording is a way of composing new bodies in new ecstasies with the digitus, and decomposing the ancient intermittence-driven socius by the same strike
What can a component do? Representating is its most banal, most meaningless function. The true meaning of representation on the digitus is to function to hide what else goes on through the workings of our god, these fascinating unorganic plays that have always been with the human, have made us human, but now have come to their own life, bootloaded by the excesses of capitalism
What should we look at when we look at paintings? Introduce visual rhythm/tensions; careful in using rhythm as a term, how does it privilege a component of the synesthetic weave concept?
Melodic line/contour and visual art
Rhythm
Harmony, harmonious coloring
All these three vs the banal homogeneity of graphic design with all its rules and standardizations; the being-harmonic of melodic contour as a form of grammitozation
Being-harmonic vs the becoming-harmonic of the melody, it’s freeing to the point of synesthesia, blending these components of melody and harmony until the question fo which is which is never to be answered
The fact that some questions sound inherently cheeky and sarcastic is a defense mechanism(assemblage?) that exists within discourse
Discussion of the time of rhythm, “clocks consistently fail in dreams for this very reason.”
Emergent is not primary, the self as emergent cannot be identified with the processes out of which it emerges
Thunderstorm examples
In process philosophy, a la the Spinoza lecture, there’s an infinite recursion in all directions, all these relations of aggregates and aggregates of relations are infinitely recursive
Flux is primary, relations and interactions as emergent? Substances as a third level, from metastabilized relations and interactions, ie bodies as aggregates of relations of...
Metaphysics is the study of causality, ontology is the study of what is
To say something is emergent is to say that the thing exists (virtual to actual and back again, big circles), it’s saying it emerges from a multi valent layer of processes (flux) underneath it
No fixed vectors for the emergent, like what a definite substance with definite qualities has
Univocity of being as the ur-process, the Event in all events, the Being of all being, a pure immanence of the Process. Origami-Cosmos cosmorigami
No representation here, only pure immanence; representation reinstalls Transcendence, kills off the pure immanence
Are you a thing, or are you something that happens?
Superject is Whitehead on the emergence of consciousness
Logistics of perception
Morality of urban planning
Manner in which tech dev ie ai editing determines online expression form/substance but also determines tech of devices, mutual influence, double articulation
Something else
If a sentence is most well defined by the sentences around it, what exactly does it say? The mystery of the acentered center, the occupant without a place, the object that’s always one shelf above the one youre looking at
How do you homogenize something? By circulating it. How do you circulate something g? By homogenizing it.
Question-problems; problems always tend outside of themselves, to press out and be pulled out but in a manner which destroys their identity as problems, but not as problematic, it is instead toward something that retains radical incompleteness as problem as such. The question. Solutions tend towards an incompleteness that retains their intensity, which is a question leading toward a grounding in a problematic
The question individuates with and through the problem or solution, it does not individuate against and or out of it
States having the same google search patterns as evidence for the use of occluded centers as a concept
Reason-able
Art
Important: showing homogenization and circulation as fundamental stakes of the digital, ‘how can something appeal to a whole gone globe?’ It must be homogenized and have a high circulation; it must also turn minds into homogeneity, that is, components of homogenized circulations are complements that enable the circulations of homogenizations
One of the core theses of this section is that everything that is a question of aesthesis, of feeling, if the sensible, of feeling together, and most of all the technicization of this today (it’s always been technicized) is how the profit motive has fundamentally overdetermined modes of art, recording technologies, etc., and how their homogenized and high circulation use fundamentally renders art that is destroyed, even if the profit motive is absent. The question concerning Art in the 21st century is how to reclaim this community of the sensible, and how to go beyond the plague of profit motive.
Grammitization
Technologies of reproduction; not just of objects but perceptions, behaviors, models
Trying to map that weird relation between extreme simplicity and extreme complexity that is our relationship with devices of the digitus-polarization in all directions, not just political...
This living being that we are comes with an incompleteness that all life is, a need for the nonliving. And in us, this has come to such a point that we are to give birth to a god, not as social ritual, but as digital master of the organics
Double articulation-expression, grows and regulates the digitus, content, regulates and grows (terraforms-digiforms-alloplastic writing) the environment (mind/Technics of the everyday (same thing really)) submitting life to models that are themselves the grammitization of this life
Discursive vs non-discursive multiplicities, the silent changes of society we cannot feel
Similar to stratification-show how grammitization extracts and mass produces commodities from what was once a social structure (transformational form fits here?) and once rites, rituals, knowledge of how to live and do, grammitized as commodities. Life becomes a precession of the commodity. Commodities as producing their own emergent grammar that has become our lives, the guiding hand of the unorganism is the producer here
Extraction of commodities at finer and finer levels leads to a permanent modulatory grammitization
This sort of process of digitus encounter with nondigital realities, eats them up, digests them, digiforms the life of the non-inhuman and comes to regulate them in their silence, regulate them out of the non-inhuman to the inhuman being.
Have to show the digitus as existing outside of the digital, in sociality, in ways of knowing and living, transportation, morality of the sidewalk, ways of solving interpersonal problems
Digital tools, scientific tools and ways of knowing. There is no center of the body of god. The way psychology discounts the unscientific theories of psycho analysis and people like Laing is the digitus in person, in the mind
Another side of grammitization; objects come with their own manner of being, to have a phone is to be dictated by this manner of being. The digitus radiates a certain style of grammitization. Cyclic flow of commodities being replaced and digiforming the most quotidian
Complex non-complexity and how it is in all systems now, preventing us from having control, and decreasing our control all the time
Synesthetic weave
Can a composers interpretation be wrong, they asked me? Dumb question, (there are I deed stupid [betise] questions, and this was one; a composer playing their work isn’t an interpreter!
Commentary on miroirs l vs b performance. Bring up the path and the gesture. [Idea of being able to compare and contrast these performances while reading the score]->this is a tensor. Discuss what it puts into variation, what creativity emerges from that, what pretensions (concrescences?) the tensor slows to exist. Some might exist at a primary level, others at higher tiers, or a mix, as in D has a new variation that affects its through C and B but also as the D-A articulation having an emergence in itself m, rather than just the B-A articulation (prehension=articulation?) which is (DC)B-A
What is opposed is actually that which is composed
Weaving of the transindividual and its appearance; stiegler couldn’t think the event qua event centric ontology, and as such struggled to communicate (to individuate) the concept of the transindividual. In our composing we are composed, individuation of the collective (stiegler wasn’t a discussed of this) and how the transindividual comes to live its own life (is this an abstract machine? I think so?)
Seen as an abstract machine, the transindividual is never not being woven, the but the steely form of the unorganism is unholy
Depression and creativity-nothing works-try to create your way out of this hell-you’ve created what could be called art in this here and now-all of this a misknowing if we attribute creativity to melencholia itself
Automatic writing-digital alloplasty, automatic alloplasticity
Untranslatable heterogeneity of Lyotard, different xii vs homogenization and circulation
Lg
156
160
164
167/172.
Art is the re-enchantment of the world
The television screen has become the retina of the minds eye
Soon all of us will have special names, names designed to cause the cathode ray tube to resonate- video drome
Break between internet, phone, and user ad a synapse, or synaptic cleft. Phone as the cleft? Presynaptic internet, cleft of the device, postsynaptic person or other device? Post synaptic devices vs people-what’s the difference?
Phone as cleft-representation/extension that carries intensive asignifying figures that constantly recharge and overcode-destructive semiotics-they de-tether other asig figs from taking hold, actively destroying them, “affective congestion” (stiegler)-that’s why we find silent movies and talkies from the 50’s or so, so boring. Destructive semiotics de-tether, cut away the fibrous roots of their asig figs that attempt to take hold
Guattari’s capitalist abstractions, the news is the re/production medium of the ; science tech economics local news music money, all Music not music Science does t exist, just people doing work, but here we find the vanishing point for them all, installed in capitalist abstraction
But what is fiction, if not an artifice? An artifice will be needed to distinguish the artificial from the natural..
Existence of eigenvalues as the bare condition for repetition?
Related not in opposition but composition
Even in womb brain is forming preferences-tie to neural tube? Babies and mothers milk, mothers voice for preference-breast crawl as well
Death is a trap and it’s never been real
An editing studio attached to a news organization only generates so much for the digitus, the studio becoming detached to the individual (device, Indiv human) generates much much more- before it had a value of one as a sum of all its parts, now each person plus each device=1, hooked into so so so much more, more room for the digitus, less room for the humans. Digital camer and editing studio in your pocket, no need for dark rooms and dev times
New enclosures of the new temples, refugee camps and microwork, the daily work of the pampered princesses upon the device driven digitus, worship in front of your personalized screens
Fluxes and we see what the other picks out
Perception of motion should be considered in its own right along side sight and sound
Ts18, memory and selectivity, what of the digital memory and memories I carry around with me pocketed permanently?
Replace social categories with Machinic categories... define not by census stats, but by how they are taken up by the megamachine, census being one way they are taken up
The permanent disconnect between how easily inform visual impressions of others and the impossibility of doing this for my own self. Wolfe, how the brain connecting concepts to object recognition-concept of self, identity is preceded by identity, that’s why body image for me is impossible, and is only possible for others as a condition of psychic repression, an individuation of disparates by a singularity
“I like seeing you like that. When you’re with strangers you know exactly what you want.” Ep 4:30
They switched sides in the bed and it’s her turn to smoke moodily
I’m not talking, I’m saying things, making certain acts in front of a witness
Ep4 the negative witness-Betty with Helen-Betty, rather than turning the others into witness, creates and plays the role of witness, putting the other person out
Act creating witness out of the other vs creating the self as a witness and enforcing the other
Lg butting pushers p129
Massive divergence, and with a rehash of the question, quote yourself, “and now we can go back to simply stating the body is a precipitate of the event.”
Nosography-workaholic man and gf that is driven neurotic by this
Sitting in car in driveway avoiding going inside
Do you want to bounce me off the walls? Will that make you feel better?
Worshipping the midnight sun
Ten thousand faces of light/the sun
Host parasite oscillation is a time that stabilizes space qua process of metastable individuation? H-p and news vs penny journalism-Baudrillard and how scandal reinjects reality into politics a la watergate
Time stabilizes space, speed (of oscillation) stabilizes time-a more profound rhythm underlying time (logic of sensation)
Monad 1-7 they are processes, hence all or nothing, no parts, etc flows simply flow and so on. Synthesis of alignment as making a temporally-technically contingent monad (qua process) emerge into being, it’s actualization differs dependent on where it emerges. Since it is a process dependent on the synthesis, the people/groups/techne that make up the process can differ each time, despite the monad retaining itself by way of repetition no
Time if distribution creates cities (qua spaces) as the hub of faster time (through faster distribution times, a question of soeed
“Primo used the cue 007 from the 1963 film From Russia with Love as the musical theme”
For now it is time that we learn to dream in a language that is foreign to/not that of our fathers
The only thing that holds no mystery is that which is its own justification
Nonplace-efface inside/outside like Baudrillard did truth/false
Discuss the face, how there’s a light and weight and way you can see how someone looks when they’re finally old to you
Questioning and investigating what repeats in a given system is an excellent starting point-how is the repetition discussed, discursivized, given figuration-what technical/material/behavioral-habitual supports/action-perception condensates are needed-how does this produce the reality (principle?) of the system-how does this production of repetition and through that repetition, reality, participate in autopoeiesis, in recursive functioning? As in, how are the outputs of these operations used to support ongoing operations, as well as being used as inputs? How does the reality principle, how does the production, discuss themselves?
News requires ever shorter sshort stories-the reality principle produced is what I can take to be given in experience ie that biden is president, that politics matter, that the reality of it is... that Philly is dangerous, libs are awful, etc
Green screen and press release is reality production, stages are called stages because what happens on them is staged. News vans and their coverage ability, the war of speed is a war of tech. Two fronts at least, speed from event to consumption, speed of distribution ie coverage. Printing press and mass tech mixes developments in speed with developments in mass distribution
Form empty of substance-short stories, repetitive forms of given narratives, commentary, reality tv forms. Suppression of executive functions. So much information being produced every moment-news is not a sieve sifting through it, but rather through its technical conditions (infraassemblage) is producing reality (intraassemblage), producing the reality of the mass media qua news-news reporting on mass media infects the transmission process with a new vector-faux news shows/news comedy shows function with similar consequences (interassemblage), yet also being a new, drawn out line-comedy news is indistinguishable from real news, as real news is always already a joke, always fake-only a copy of a copy, a simulacrum can overturn the play of model and copy in its difference, for we are in a system of simulacra
There is more reality produced in a moment than what can be sifted through so the solution is to... produce more reality
Performative temporal objects
Move back and forth between consciousness and unconscious where they risk fading like winnicott with this description of the death of the mother when she goes to rehab
“Advertising is the aesthetic without any symbolic” second symbolic misery livestream
The aesthetics of advertising strips out the symbolic, steals your future to give you an immediate in its stead
Equally disposable in the eyes of the other
Technics-standardization of the body
Body-an object that’s different every time you pick it up, each hold creates a new object, it’s an ever shifting place that generates endless effects-body map works like the mediation of the brain, it has both this differential object but also a determination by events, by techne, by the past, by my actions, all of this forming an aggregate of relations-tie to ant(?) about how we don’t want a few variables generating many effects but all mediators-this as the body-Deleuze’s first move into infinity-the movement through bodies a la Spinoza
Suppose none of you had a cell phone-I give you all the same smartphone with the same apps, and the way you use it, camera and all, comes to change how you see your body, what the world is, what the broader social field is, how you talk and relate, and so many other things. In these actions, in these processes of change that come to recode and often overcode other parts of your life-world, we find the stickyness, we find the spreading out of the asignifying figures of expression
GR
There is no way out. Lie and wait, lie still and be quiet. Screaming holds across the sky. When it comes, will it be in darkness, or will it bring its own light? Will the light come before or after? -5
But what lights were these? What ghosts in command? -29
Autopoeisis-31
‘Accidental spaces’ -39, reprisal p42-‘a defiance they can never measure unless caught’
...suppose we consider the war a kind of laboratory -50
Given a certain usage of objects that are all the same, a severe constant of language, perception, etc., only so much sociality/individuation is possible, which is an expression of control
The fact that they defuse social norms but maintain the same architecture, cubicles, and practices, mean very similar sociality diffuses through the company
Find a history of standardization
Synesthetic weave
Make a whole cotagerie of characters and a taxonomy of groups, bands and bandleaders, composers by themselves and the old figure of a composer at the piano, newspaper clippings about the band and photos of it all, include the crowd for there’s always a spectator... (imaginary audience, personal fable)
Spinoza
Color code mind vs device sections
127-Union of bodies, Union comes from where? Nowhere but the event. similar to def7
What does the mind do? Modes of thought axiom 3
Lemma2 of body prop is what enables the composition of other bodies into the human, through the event
Body as site of learning and Technics, modifying itself to swim in the current of the event
Body as process of comp and decomp-bring in emotions? Mind also comp and decomp? Image body, body map as being given to mind in each composition-define and then remove ‘adequate ideas’ as goal of knowsledge-Deleuze, replace knowledge with learning
L-G’s relation of a first mechanical dev of body, then brain catches up
Body Evolution began with feet-brain evolution with hand+sensorimotor loops? Say hello to the other half of the human. I write on my (and yours and ours) other half.
Aggregates of relations-how does the body form Boundaries-where are they
What is the boundary of a mind? We find the mind in the head-multiple aggregates of relations concrescing (a passive self that draws a difference from these repetitions that stabilize into aggregates of relations...? They would already have so many passive selves, so many fractured a forming larval selves...) pinto one mind?-this as an example of the superiority of mind over body in Spinoza-debates over his body section as proof of this-parallelism as A fundamental misinterpretation-there’s a book on the mind but a section on the body-literally a superiority there
Superiority of the digitus over meatspace-predicted by Spinoza
What do I have to have with me all the time?
“You’ve got to give the internet what they want.” Eric Andre, hot ones
Isolt
286-being looked at whenever you do anything
KPR
79/80 other half of the human
Metamorphoses
104,12/-madness comes from images
How can a predator drone have sex-Zeus as predator drone
A set of events such that every event is a part of other events but no event is a part of all (52)
Two events. A third event is a part of both and no part of it is separated from both of the two given events (50)
Is that gl say event three covers both events, but in a certain totality? 3 totally covers 2 and 1, but the part which covers 2 isn’t a part absent from one, despite being different in that it doesn’t cover 1? Nonsense shapes
Relation of time as violence-state institution outlast humans-violence is a recourse when your time outlasts or threatens mine-it allows me to lesson your time and lengthen
Slogano-logical
A relation of aggregates-an aggregate of relations
No one knows what they look like-generalizable-photos as unveiling this-no one knows what they x like
What forms an impression? Gesture, the gesture, as forming the impression-visual, and is looking in the mirror (images of the other as well as actual mirror) forms an impression that isn’t how other people form impressions-impressions as formed by process
[[Notes atone]]
It is generally believed that [[experience]]-dependent changes responsible for [[learning]] and [[memory]] occur primarily at [[synapse]]s. Multiple [[form]]s of synaptic [[plasticity]] have been identified and each of these presumably supports a different set of [[function]]s...
Cortical [[neuron]]s receive synaptic [[input]] from thousands of other [[neuron]]s and combine this information in [[pattern]]s of [[action potential]]s. The strength of synaptic transmission at each of the synapses determines how the [[information]] arriving from many inputs is combined to affect the firing of the neuron. Next page has a diagram that shows how learning can affect this [[process]]
[[NS6 p104-1]]
The [[CNS]] is a [[bilateral]] and largely symmetrical [[structure]] with two main parts, the [[spinal]] cord and the [[brain]]. The brain comprises six major structures: the [[medulla oblongata]], [[pons]], [[cerebellum]], [[midbrain]], [[diencephalon]], and [[cerebrum]].
Each of these in turn comprise distinct [[group]]s of [[neuron]]s with distinctive [[connect]]ivity and [[development]]al [[origin]]. In the medulla, pons, midbrain and diencephalon, neurons are often grouped in distinct clusters termed [[nuclei]], The [[surface]] of the cerebrum and cerebellum consists of a large [[fold]]ed [[sheet]] of neurons called the [[cerebral cortex]] and the [[cerebellar cortex]], respectively, where neurons are [[organize]]d in [[layer]]s with stereotyped [[pattern]]s of connectivity. The cerebrum also contains a number of structures located below the [[cortex]] ([[subcortical]]), including the [[basal ganglia]] and [[amygdala]].
[[NS6 p8-1]]
In contrast to the thousands of [[input]]s that most [[brain]] [[neuron]]s receive, each [[granule cell]] receives just a handful of inputs, (four, on average)... the firing of individual granule cells may represent any one of an enormous range of combinations of stimuli or [[event]]s.... a [[cell]] may only [[fire]] during the [[conjunction]] of a visual stimulus (tennis ball) with the movement of a particular body part (flexing of the wrist). Representations that combine different types of [[information]] are called [[mixed]].
[[NS6 p85-1]]
different [[component]]s of a single [[behavior]] are likely to be [[process]]ed in several [[region]]s of the [[brain]]...the idea of [[distributed processing]]
[[NS6 p10-1]]
Many [[mental]] functions are [[mediate]]d by more than one region or [[neuronal]] [[pathway]]. Thus, a given [[function]] may not be eliminated by a single [[lesion]]... [there is also a localization of function that incorporates the idea of [[redundancy]] of function. [As in, the ability for damage to a complex function such as spatiality (involves multiple regions) being compensated for by the functioning of another involved region. As in, if a function involves a-z, and q is damaged, then perhaps p or any other letter compensates through this redundancy of function].
[[NS6 p17-1]]
[[functional]]ly distinct [[area]]s of the [[cortex]] [can] be defined unambiguously according to [[anatomy]]cal criteria such as [[cell]] type and cell layering, [[connection]]s of cells, and -most importantly-[[behavior]]al functions... functional [[specialization]] is a key [[organize]]ing [[principle]] in the [[cerebral cortex]], extending even to individual columns of cells within an area of [[cortex]].
[[NS6 p18/19-1]]
section title: Mental processes are the produc of interactions between [[elementary processing unit]]s in the [[brain]].
..[[particular]] brain [[region]]s are not fully responsible for specific [[mental]] [[faculty]]s but instead are [[elementary processing unit]]s that together have a role. [[perception]], [[movement]], [[language]], [[thought]], and [[memory]] are all made [[possible]] by the [[interlinkage]] of [[serial]] and [[parallel]] processing in discrete brain regions-[[computational module]]s-in these regions
[[NS6 p19-1]]
[[gene]]s do not [[control]] [[behavior]] directly, but the [[RNA]]s and [[protein]]s [[encode]]d by genes act at different times and at many [[level]]s to [[affect]] the [[brain]]. Genes specify the [[development]]al [[program]]s that assemble the brain and are essential to the properties of [[neuron]]s, [[glia]], and [[synapse]]s that allow [[neuronal]] [[circuit]]s to function. Genes that are stably [[inherited]] over [[generation]]s create the machinery by which new [[experience]]s can change the brain during [[learn]]ing.
[[NS6 p21-1]]
The extent to which [[genetic]] [[factor]]s account for [[trait]]s in a [[population]] is called [[heritability]].
[[NS6 p26-1]]
...a very small number of an organism's [[gene]]s are [[transmit]]ted through mitochondria...
[[NS6 p27-1]]
...ancient [[gene]]s [[human]]s share with other animals are [[regulate]]d in [[new]] ways to produce [[novel]] human properties...
[[NS6 p31-1]]
...one key [[organize]]ational [[principle]] of the [[brain]] is that [[nerve]] [[cell]]s with similar properties can produce different actions because of the way they are inter[[connect]]ed
[[NS6 p32-1]]
[[action potential]]s are initiated at a [[special]]ized [[trigger]] [[region]] near the [[origin]] of the [[axon]] called the [[initial segment]]... [AP]s are the [[signal]]s by which the [[brain]] receives, analyzes, and conveys [[information]]. The signals are highly stereotyped throughout the [[nervous system]], even though they are initiated by a great variety of [[event]]s in the [[environment]] that impinge on our [[body]]...
Here we see a key [[principle]] of brain [[function]]: the [[type]] of information conveyed by an action potential is determined not by the [[form]] of the signal but by the [[pathway]] the signal travels in the brain...
Near its end, the axon divides into fine branches that contact other neurons at specialized [[zone]]s of [[communication]] known as [[synapse]]s. The nerve cell transmitting a communication signall is called the [[presynaptic]] cell; the cell receiving the signal is called the [[postsynaptic]] cell. The presynaptic cell transmits signals from specialized enlarged regions of its axon's branches, called [[presynaptic terminal]]s or [[nerve terminal]]s. The presynaptic and postsynaptic cells are separated by a very narrow space, the [[synaptic cleft]]. Most presynaptic terminals end on the postsynaptic neuron's [[dendrite]]s, but some also terminate on the [[cell body]] or, less often, at the beginning or end of the axon of the postsynaptic cell. Some presynaptic neurons [[excite]] their postsynaptic target cells; other presynaptic neurons [[inhibit]] their [[target]] cells.
The [[neuron doctrine]] holds that each neuron is a discrete cell with distinctive [[process]]es arising from its cell body and that neurons are the signaling [[unit]]s of the nervous system.
[[NS6 p56-1]]
the [[principle]] of [[dynamic polarization]] states that electrical [[signal]]s within a [[nerve cell]] [[flow]] in only one direction: from within the [[postsynaptic]] [[site]]s of the [[neuron]], usually the [[dendrite]]s and the [[cell body]], to the [[trigger]] [[region]] of the [[axon]]. From there, the [[action potential]] is propagated along the entire length of the axon to its [[terminal]]s. In most neurons studied to date, electrical signals in fact travel along the axon in one direction.
[[conditional specificity]] states that nerve cells do not [[connect]] [[random]]ly with one another in the [[formation]] of [[network]]s but make specific connections-at particular contact [[point]]s-with certain postsynaptic [[target]] cells and not with others. [These two principles] are the basis of the modern cellular-connectionist approach
Neurons are classified into three large groups: [[unipolar]], [[bipolar]], and [[multipolar]].
Unipolar neurons are the simplest because they have a single primary [[process]], which usually gives rise to many [[branch]]es. One branch serves as the [[axon]]; other branches function as receiving structures...
Bipolar neurons have an oval [[soma]] that gives rise to two distinct processes: a dendritic structure that receives signals from other neurons and an axon that carries information toward the [[CNS]]. Many sensory cells are bipolar...
Multipolar neurons predominate in the nervous system of [[vertebrate]]s. They typically have a single axon and many dendritic structures emerging from various [[point]]s around the cell body. They vary greatly in [[shape]], especially in the length of their axons and in the extent, [[dimension]]s and intricacy of their [[dendritic]] branching.
[[NS6 p58-1]]
[[nerve cell]]s are also classified into three major functional categories. [[sensory neuron]]s, [[motor neuron]]s, and [[interneuron]]s...
Sense N carry information from the bodies peripheral sensors into the nervous system for the purpose of both perception and motor coordination
The term [[afferent]] applies to all information from the body's peripheral sensors into the [[nervous system]] for the purpose of both [[perception]] and [[motor coordination]]... the concept has been expanded to include neurons in primary and secondary [[cortical]] areas that respond to changes in a sensory feature, such as displacement of an object in space, a shift in sound frequency...
The term [[efferent]] applies to all [[information]] carried from the [[CNS]] toward the motor [[organ]]s, whether or not this leads to action. Motor N carry [[command]]s from the [[brain]] or [[spinal cord]] to [[muscle]]s and [[gland]]s (efferent information]]...
Sensory neurons supply the brain with [[data]], whereas motor neurons convert [[ideation]] into [[praxis]]. Together they compose our [[interface]] with the [[world]].
interneurons comprise the most numerous functional category and are subdivided into two classes: [[relay]] and [[local]]. Relay or [[projection]] interneurons have long [[axon]]s and convey [[signal]]s over considerable distances, from one brain [[region]] to another. Local interneurons have short axons because they form [[connect]]ions with nearby neurons in local [[circuit]]s as opposed to neurons that project to a separate [[neural]] [[structure]]. The term is also sometimes used as shorthand for an [[inhibitory neuron]], especially in studies of [[cortical]] circuits, but for clarity, the term [[inhibitory interneuron]] should be used when appropriate.
[[glial cell]]s greatly outnumber neurons-2-10 times more glia than neurons in vertebrates... they surround the cell bodies, axons, and dendrites of neurons. Glia differ from neurons [[morph]]ologically; they do not form dendrites and axons. [[glia]] also differ functionally. Although they arise from the same [[embryo]]nic [[precursor]] cells, they do not have the same [[membrane]] properties as neurons and thus are not [[electric]]ally excitable...
[[NS6 p59-1]]
[[divergence]] is especially common in the [[input]] [[stage]]s of the [[nervous system]]; by distributing its [[signal]]s to many [[target]] [[cell]]s, a single [[neuron]] can exert wide and diverse influence... [[convergence]] is common at the [[output]] stages of the nervous system; a target motor cell that receives [[information]] from many [[sensory neuron]]s is able to [[integrate]] information from many sources. Each sensory neuron produces relatively weak [[excitation]], so convergence also ensures that a [[motor neuron]] is activated only when a sufficient number of sensory neurons are activated together.
[[feedforward]] and [[feedback]] examples are given
[[NS6 p59/61-1]]
...almost all [[neuron]]s can be described by a [[model]] neuron that has four [[function]]al [[component]]s that [[generate]] the four types of [[signal]]: a receptive component for producing graded [[input]] signals, a summing or [[integrate]]ve component that produces a [[trigger]] signal, a [[conduct]]ing long-range signaling component that produces all-or-none conducting signals, and a [[synaptic]] component that produces [[output]] signals to the next neuron in line or to [[muscle]] or [[gland]] cells.
The different types of signals generated in a neuron are determined in part by the electrical properties of the [[cell membrane]]. Every cell, including a neuron, maintains a certain difference in the electrical [[potential]] on either side of the [[plasma membrane]] when the [[cell]] is at rest. This is called the [[resting membrane potential]]... AP is given a numerical definition of sorts
resting potential is somewhere like -65mv, has a high amount of K+ on the inside, and a decrease in K+ and increase in NA+ is what increases the membrane potential towards 0 and can trigger an action potential given that it crosses the [[spike threshold]] see graphic on 67
[[Na+-K+ pump]], [[ion channel]]s, [[inward current]], [[cloud]], and [[action potential]], then In addition to the long-distance signals represented by the action potential, nerve cells also produce local signals-
[[receptor potential]]s-the ionic current changing the membrane potential producing this local signal that is the RP and
[[synaptic potential]]s-these come from the presynaptic neuron having fired an action potential that results in the transmission of an output signal of transmitter release, and is an ensuing flow of current that briefly alters the membrane potential of the postsynaptic neuron by binding to receptor proteins in the postsynaptic membrane of the neuron, directly or indirectly opening ion channels [p66 para2]
receptor seems to be from the Na+-K+ pump, synaptic seems to be from the firing off of another neuron+neurotransmitter release
RP and SP are not actively propagated and that typically decay within just a few mm... A reduction in membrane potential, called [[depolarization]], enhances a cell's ability to generate an action potential and is thus [[excite]]tory. In contrast, an increase in membrane potential, called [[hyperpolarization]], makes a cell less likely to generate an AP and is there for [[inhibit]]ory
[[synaptic potential]] and [[receptor potential]] are [[grade]]d in [[amplitude]] and [[duration]], unlike the all-or-nothing [[action potential]].
[[NS6 p63-1]]
From B: An [[action potential]] is [[generate]]d only if the [[receptor potential]] exceeds a certain [[voltage]] [[threshold]]. Once this threshold is surpassed, any further increase in [[amplitude]] of the receptor potential can only increase the [[frequency]] with which the action potentials are generated, because action potentials have a [[constant]] amplitude. The [[duration]] of the receptor potential determines the duration of the [[train]] of action potentials. Thus, the graded amplitude and duration of the receptor potential are [[translate]]d into a [[frequency code]] in the action potentials generated at the [[trigger zone]]. All action potentials produced are propagated faithfully along the [[axon]].
[[NS6 p64/65-1]]
the initial [[segment]] of the [[axon]] has... the lowest [[threshold]] for generating an [[action
potential]] [here], an [[input]] [[signal]] spreading passively along the [[cell membrane]] is more likely to give rise to an action potential the initial segment of the axon than at the other sites in the [[cell]]. This part of the axon is therefore known as the [[trigger zone]]. It is here that the activity of all [[receptor potential]]s or [[synaptic potential]]s is summed and where, if the sum of the input signals reaches threshold, the neuron [[generate]]s an action potential...
Only two features of the conducting [[signal]] convey [[information]]: the number of [[action potential]]s and the time [[interval]]s between them... what determines the [[intensity]] of [[sensation]] or [[speed]] of [[movement]] is the [[frequency]] of the action potentials. Likewise, the duration of a sensation or movement is determined by the [[period]] over which action potentials are generated.
[[NS6 p66-1]]
[[sculpting]] as taking a neuron that is active in the absence of stimulation, and [[inhibit]]ing it in order to [[sculpt]] the information that is the sequencing of the [[action potential]]. [[beating neuron]]s fire regularly, [[bursting neuron]]s fire brief bursts. The [[pattern]]s of APs contain important information. (p69 last paras expand on these)
...one of the most important [[organize]]ational [[principal]]s of the [[nervous system]]: Inter[[connect]]ed [[neuron]]s for anatomically and functionally distinct [[pathway]]s-[[labeled line]]s-and it is these pathways of connected [[neuron]]s, these labeled lines, not individual neurons, that convey [[information]].
When an action potential reaches a neuron's [[terminal]], it stimulates the release of chemical [[substance]]s from the [[cell]]. These substances called [[neurotransmitter]]s... are held in [[subcellular]] [[organelle]]s called [[synaptic vesicle]]s, which accumulate in the terminals of the [[axon]] at specialized release [[site]]s called [[active zone]]s. To eject their transmitter substance into the [[synaptic cleft]], the vesicles move up to and fuse with the neuron's [[plasma membrane]], then burst open to release the transmitter into the synaptic cleft... by a [[process]] known as [[exocytosis]]...
The released neurotransmitter [[molecule]]s are the neuron's [[output]] [[signal]]. [Which] is [[grade]]d according to the amount of [[transmitter]] released, which is determined by the number and [[frequency]] of the action potentials that reach the [[presynaptic terminal]]s. After release, the transmitter molecules [[diffuse]] across the synaptic cleft and [[bind]] to [[receptor]]s on the [[postsynaptic]] neuron. This binding causes the postsynaptic cell to generate a [[synaptic potential]]. Whether the SP has an [[excite]]atory or [[inhibit]]ory effect depends on the type of [[receptor]] in the postsynaptic cell, not on the particular chemical neurotransmitter. The same transmitter substance can have different effects at different receptors.
[[NS6 p67-1]]
[[plasticity hypothesis]]
inset quote- This application of a [[stimulus]] leads to changes of a twofold kind in the [[nervous system]]. The first property, by virtue of which the [[nerve cell]]s react to the incoming impulse we call [[excite]]ability, and changes arising because of this [[property]] we shall call [[change due to excitability]]. The second property, by virtue of which certain permanent [[function]]al [[transformation]]s arise in particular [[system]]s of [[neuron]]s as a result of appropriate stimuli or their [[combination]], we shall call [[plasticity]] and the corresponding changes [[plastic change]]s.
[[NS6 p68-1]]
The [[brain]] is [[hierarchy]]cally [[organize]]d such that [[information]] [[process]]ed at one [[level]] is passed to higher-level [[circuit]]s for more complex and refined processing. In [[essence]], the brain is a [[network]] of networks. Different brain [[area]]s work in an [[integrate]]d fashion to accomplish purposeful [[behavior]].
[[NS6 p71-1]]
...a basic [[neurobiology]]cal [[principle]] that different [[circuit]]s of the [[brain]] have [[evolve]]d an [[organize]]ation to most efficiently carry out specific [[function]]s.
...the organization of the brain is simplified by three [[anatomy]]cal considerations. First, there are relatively few types of [[neuron]]s. Each of the may thousands of [[spine]]al [[motor neuron]]s or millions of [[neocortical]] [[pyramidal cell]]s has a similar anatomical [[structure]] and serves a similar function.
Second, neurons in the brain and [[spinal cord]] are [[cluster]]ed in functional groups called [[nuclei]] or discrete [[area]]s of the [[cerebral cortex]] which [[form]] [[networks]] or functional [[system]]s.
Third, the discrete areas of the cerebral cortex are specialized for [[sensory]], [[motor]], or [[associate]]ve functions such as [[memory]].
[[NS6 p73-1]]
...a general [[principle]] about the [[CNS]] [[connect]]ions. [[processing]] tends to be [[hierarchy]]cal: projections from a lower to higher region are said to be [[feedforward]] while descending projections can [[modulate]] spinal reflexes and are said to be [[feedback]]...
[[NS6 p74-1]]
There are essentially two [[somatosensory]] [[pathway]]s from the [[periphery]] that carry either [[touch]] and [[stretch]] ([[epicritic system]]) or [[pain]] and [[temperature]] ([[protopathic system]]).
[[NS6 p77-1]]
[[neuron doctrine]]- the [[principle]] that [[individual]] [[neuron]]s are the elementary building [[block]]s and [[signal]]ing [[element]]s of the [[nervous]] [[system]]...
the tip of the [[axon]] gives rise to an [[expansion]], the [[growth cone]], which leads the developing [[axon]] to its target, either other [[nerve]] [[cell]]s or [[muscle]]s...
a landmark [[study]] by Sanford [[Palay]] unambiguously demonstrated the existence of [[synapse]]s, [[special]]ized [[region]]s of nerve cells that permit [[chemical]] or [[electric]]al signaling [[between]] them...
the electrical [[activity]] of one nerve cell [[affect]]s the activity of an adjacent cell in predictable ways...
[[Golgi]]
[[Cajal]]
[[Neural Science 6th ed]]
The manner in which the central [[axon]]s of the [[dorsal root ganglion]] [[cell]]s terminate in the [[spinal cord]] forms a neural [[map]] of the body [[surface]]. This orderly somatotopic distribution of [[input]]s from different portions of the body surface is maintained throughout the entire ascending somatosensory [[pathway]]. This arrangement illustrates another important [[principle]] of [[neural]] [[organize]]ation.[[neuron]]s that make up neural [[circuit]]s at any particular [[level]] are often [[connect]]ed in a [[system]]atic fashion and appear similar from individual to individual. Similarly, [[fiber]] [[bundle]]s that connect different [[processing]] [[region]]s at different levels of the [[nervous system]] are arranged in a highly organized stereotypical fashion.
Each somatic submodality is processed in a distinct subsystem from the periphery to the brain
the [[submodality]]s of [[somatic]] [[sensation]]-[[touch]], [[pain]], [[temperature]], and [[position]] sense-are [[process]]ed in the [[brain]] through different [[pathway]]s that end in different brain [[region]]s
[[NS6 p79-1]]
The [[thalamus]] is an essential link between [[sensory]] [[receptor]]s and the [[cerebral cortex]].
The thalamus is an egg-shaped structure that constitutes the dorsal portion of the [[diencephalon]]. It contains a [[class]] of [[excitatory]] [[neuron]]s called [[thalamic relay cell]]s that convey sensory [[input]] to the primary sensory areas of the cerebral cortex. It acts as a gatekeeper for [[information]] to the cerebral cortex, preventing or enhancing the [[passage]] of specific information depending on the [[behavior]]al [[state]] of the [[organism]].
The cerebral cortex has [[feedback]] [[projection]]s that terminate, in part, in a special portion of the thalamus call the [[thalamic reticular nucleus]]. This nucleus forms a thin [[sheet]] around the thalamus and is made up almost totally of [[inhibitory]] neurons that [[synapse]] onto the relay [[cell]]s. It does not project to the [[neocortex]] at all. In addition to receiving feedback projections from the neocortex, the reticular nucleus receives input from [[axon]]s leaving the thalamus en route to the neocortex, enabling the thalamus to [[modulate]] the response of the relay cells to incoming sensory [[information]]. [ |neocortex->thalamic reticular nucleus->axons leaving thalamus to neocortex| as a feedback loops?]
[fig 4-7 notes] The thalamus is the critical [[relay]] for the [[flow]] of sensory information from the [[peripheral]] [[receptor]]s to the [[neocortex]]
[[NS6 p81-1]]
The thalamic [[nuclei]] described thus far are called [[relay]] or [[specific]] nuclei because they have a specific and selective relationship with a particular portion of the [[neocortex]]. Other thalamic nuclei, called [[nonspecific]] nuclei, project to several cortical and subcortical regions.
[[NS6 p82-1]]
...the amount of [[cortex]] devoted to a particular [[body]] part is not fixed but can be modified by [[experience]], as seen in concert violinists... an important aspect of [[brain]] [[circuit]]ry: It is capable of [[plastic]] changes in response to use or disuse.
[[NS6 p83-1]]
...approximately two-thirds of the [[neocortex]] is along the deep wrinkles of the [[cortex]], termed [[sulci]]. The remainder of neocortex is at the external [[fold]]s of the sheet, termed [[gyri]].
The neocortex receives [[input]]s from the [[thalamus]], other cortical regions on both sides of the brain, and other [[subcortical]] structures. Its [[output]] is directed to other regions of the [[cortex]], [[basal ganglia]], thalamus, [[prontine nuclei]] and [[spinal cord]].
These complex input-output relationships are efficiently organized in the orderly layering of cortical [[neuron]]s; each [[layer]] contains different inputs and outputs. Many regions of the neocortex, in particular the primary sensory areas, contain six layers, numbered from the outer surface to the [[white matter]], 1-6. next page describes these layers in detail
[[NS6 p84/85-1]]
Even when [[number]] and [[quantity]] are clearly discriminated, there
is another concept that must be recognized and distinguished from both number and quantity. For this other concept, there is, I think, no English word, so we have to be content with remembering that there is a subset of [[patterm]] whose members are commonly called "numbers." Not all numbers are the products of counting. Indeed, it is the smaller, and therefore commoner, numbers that are often not counted but recognized as patterns at a single glance. Cardplayers do not stop to count the pips in the eight of spades and can even recognize the characteristic pattern ing ofpips up to "ten."
[[MN45]]
Put too simply [[ANT]] is a change of [[metaphor]]s to describe [[essence]]s... Instead of thinking in terms of surfaces-two[[dimension]] or [[sphere]]s, three dimension... think in terms of [[node]]s that have as many dimensions as they have [[connection]]s...
[[On actor-network theory. A few clarifications plus more than a few complications]]
Literally there is nothing but [[network]]s [and no ether between them].
[[OAT p3-1]]
A [[network]] in [[mathematics]].. is something that is [[trace]]d or [[inscribe]]s by some other [[entity]]-the mathematician... An [[actor-network]] is an entity that does the [[tracing]] and the [[inscribing]]. It is an [[ontological]] [[definition]] and not a piece of inert matter in the hands of others, especially of human planners or designers. It is in order to point out this essential feature that the word 'actor' was added to it.
[[OAT p4-1]]
For the [[system]], [[object]]s are accordingly always [[reference]]s; they are never things that exist in the outside [[world]], but [[structural]] [[entity]]s of the systems [[autopoeisis]], that is to say, [[condition]]s for the continuation of autopoeisis. FN 129 P372 The emphasis is an structural entities as opposed to merely [[operation]]al entities ([[event]]s). This means that objects can remains identical in progression from [[communication]] to communication; however, not because the natural conditions of the external world guarantee their persistence, but because they are generate through the [[other-reference]] of the system (as [[topic]]s of communication) as structural entities of the system.
[[TS54]]
relatedness is wholly concerned with the appropriation of the dead by the living-what is to say, with the [[objective immortality]] whereby what is divested of its own living immediacy becomes a [[real]] [[component]] in other living immediacies of [[becoming]].
[[KPR p15/16-1]]
there is no difference between [[self-reference]] and [[observation]]. For he who observes something must distinguish himself from that which he observes
We begin with a distinction. However, since the result of the distinction must function as a [[unity]], the distinction can be neither designated nor named. It is simply there.
[[IS49]]
[[observe]]ing or of [[draw]]ing [[distinction]]s...
[[IS38]]
The [[observer]] [[observe]]s, sees something, affirms or denies its existence, and does whatever he does. What exists independently from him is necessarily a matter of belief and not of certain knowledge because to see something always requires someone who sees it.
[[BD48]]
The [[observer]] [[observe]]s, sees something, affirms or denies its existence, and does whatever he does. What exists independently from him is necessarily a matter of belief and not of certain knowledge because to see something always requires someone who sees it.
[[BD48]]
My claim is even stronger: The observer is the source of everything. Without the observer, there is nothing. The observer is the foundation of all knowledge, of any assumption involving the human self, the [[world]] and the [[cosmos]]. The disappearance of the [[observer]] would mean the end and the disappearance of the world we know; there would be nobody left to perceive, to speak, to describe, and to explain.
[[BD50]]
POERKSEN: A terminological point: What, in fact, is an [[observer]]? How would you define the concept?
MATURANA: [[Observing]] is for me a [[human]] operation that requires [[language]] together with the [[awareness]] that one is engaged in observing something. A cat just eyeing a bird does not to me appear to be an observer. It simply watches the bird and, as far as we know, is incapable of commenting on its action or asking itself critically whether it is acting in the right and proper manner; this cat may, from our point of view, behave adequately or inadequately, but it does not reflect its own behaviour. Only human beings can do this. [[second-order]]
POERKSEN: Observing is self-reflection.
MATURANA: Exactly. Observers act in self-awareness, when they use a [[distinction]] in order to [[distinguish]] something; they are mindful when they see and perceive something. Somebody who is simply looking out the window I would not consider to be an observer. The consequence, therefore, is that most of the time in our lives we do not operate as observers; we just carry on without bothering to examine what we are doing.
[[BD58]]
[[liquidation]], revist the [[components of passage]] section. the section that mentions [[Tarantino]] is worth revisting [[epochalypse]]
All componential systems stabilize stability around more than occluded centers (and something(s) else but we’ll get there, don’t go too fast). Here we’ve started with an arbitrary discourse, that of the body and that of body image, and above we picked a series of components and the manner in which they are made to cohere with one another. And, this term, body-image, does not do justice to what’s at stake in this conversation. Tits or ass? Which is it for you? Maybe you’re into chicken women, thighs and breasts. The endless questioning of the porn-addled brain. Just scroll a bit more. The stabilization of these components is an effectuation of asignifying figures of expression, not simply for discussion, but a stabilization of how we see the world, the regulation of the human at increasingly minute levels never before dreamed of, never before seen. What sex is, what your body is, what your relation to your body is, all determined in advance. So many dismembered components orbiting these centers of occlusion. Perhaps orbitality should be rejected entirely. Instead, these centers are more akin to emissions over a dispersed field (field being that in which a given phenomena is dominant given a series of criteria by an observer, which here may be nothing more than how the field self-observes, that is, feels its feeling, satisfies its satisfaction). To orbit is to enclose emission with a linearized temporality that inheres today. Day to day, bill cycle to cycle, moving in and moving out, finding a thread to pull only to unravels a figure known in its disfiguration. The question should not be how the occluded centers function as literal centers, but how the effectuation of asignifying figures of expression enables them to split and discretize themselves from one another, installing themselves as a center of a given function. To ‘center’ is to stabilize stability, to split off and categorize flows from an occluded center, a dispersed producer, homogenizer, and grand circulator of asignifying figures of expression; The Unorganism.
What the floating network of the so-called signifier produces is fundamentally componential. Things are (partially) immaterial in signification, of that there can be no doubt, but so too are these points of condensation, centers that find themselves not occluded but productive of the real, forming new bases by active signification that condenses and confirms what has already been producing, but also in the novelty of every given event of production, as well as the telescoping of the events into one another producing the new alongside the operations of eigenvalues and maintenance of structures, all on that endlessly mobile, twisting ribbon without depth that is the plane of the digitus. Most importantly, the way of knowing has come to differ. We cannot separate the immaterial from the material, we cannot separate non-discursive multiplicities from discursive multiplicities, we cannot separate out the assemblage from the strata it puts into connection with and through itself. Material parctices of knowing, therefore, are inseparable from the knowledge produced. All knowledge is extensive, sedimented representativity that often serves to cancel out the intensive process that is learning. “I have an education,” is a foolish statement, for you education is not a substance but a process that produces a substance that in an “apparent objective movement,” (AO) miraculates itself and falls back upon the productive processes, for process is always prior to substance. Any substance in representation posits a more profound process in intensity, that differs not only in kind but in so much more. We must, therefore, put into question the intensive practices that lead to the immaterial if we are to get anywhere in an inquiry of the digital, that process that is unlike anything we’ve (and who is we?) encountered before. What it is ‘to know’ in the age of digitality differs from its historical equivalents and defers to its occluded material productions. The intermittence required of noesis is absent in information, for with this offer right now you have no chance to sleep on it. For every question, a pre-prepared answer, even to that which has never been asked for components of channeling lead right back to those centers that are naught but acts of centering, and for anything you’ve ever done there is no doubt a 12 year old on some part of the planet with skills greater than you’ll ever achieve. At each point, the [[bifurcation]]s constitutive of knowledge are washed away in the ebb and flow of these shifting shores, the endlessly obscure respiration from the breath of our new god, the digital flow that plants itself as a parasite in our minds, across so many minds, as a new mind.
These centers and surfaces are quite literal. Surface of the television screen, occluded center not of the events the news covers with representation, not of the eyes of these talking heads that are nothing but black holes but of the ‘reality of the mass media,’ the occlusion of the intensive autoproduction of the mass media system that’s prior to any event, that’s what enables components of news to connect to produce reality, but aren’t inhering in the news itself, finding themselves in the viewers that watch themselves, press releases that write themselves, crimes that predict themselves and act only in order to be put into this reality. This is the production of their power of homogenization, the capability of their circulation. The screen now becomes an occluded center in itself, spewing out and extending surface, finding so many occluded centers in the afterlight of the casting out, a reality independent of the news but dependent on so much more, these asignifying figures of expression differentiatable only in their expression, entwined with one another in all functioning, only able to be overcome at a cost most will never know how to pay. The indeterminacy of these occluded centers is where our god finds his power, transmitting, watching, surveiling, effecting and affecting; in knowing this we must find our way to the first prophet of the posthuman, Spinoza.
see also
[[Oedipus]]
[[oedipalization]]
a general [[process]] that occurs in [[social repression]] by way of [[psychology]] as a [[power formation]]
[[treatment]]
[[destructive semiotics]]
barriers, shuntings, blockages, all on the [[Body Without Organs]]
Where it all beings, where it all ends
The [[concretize]]ation of technical objects is conditioned by way of narrowing the interval that separates the sciences and technology; the primitive artisanal phase is characterized by a weak correlation between the sciences and technology, whereas the industrial phase is characterized by a strong correlation. The construction of a determinate [[technical object]] can only become industrial when this object has become [[concrete]], which means that it is known in an almost identical manner according to the intention of construction and according to the scientific view.
[[GS138]] or so, the take off of early industry in a J-curve; instead of recoiling science and technology, there it is literally the brain, lowering of the pre-frontal bar and opening of the cortical fan, and technics.
[[OTM32]]
The [[transition]]s from one [[series]] to another, and the [[communication]] [[between]] series, are generally secured through a [[proposition]] which begins in one sereis and ends in another, or through [[onomatopoeia]], that is, a [[sound]] which partakes of both.
[[LoS p43-1]]
A [[meaning]] system obtains [[information]] from its environment. One might say that it interprets surprises. In turn, this particular information processing system is integrated into a network of other systems that reacts to it. The basic condition that accounts for [[negentropy]] is the same in both instances: namely, the exchange relationship between system and environment. This is what is designated by the term "open system."
[[IS28]]
As I will show in more detail, the deciding factor is [[closure]] - that is, operational [[recursive]]ness, self-reference, and circularity - which has to be seen as the condition of [[openness]]. This means that one must ask more precisely how a system refers to itself, which is to say, how it can distinguish itself and its environment in such a manner that its own operations can be connected with the help of this distinction to an increasing number of its own operations.
[[IS38]]
The kinds of [[behavior]] in which we are usually interested have, as we have seen, an effect upon the [[environment]] which has a return effect upon the [[organism]]. Such behavior may be distinguished from activities which are primarily concerned with the internal economy of the organism by calling activities which operate upon the environment “[[operant]] behavior.” Any unit of such behavior is conveniently called “an operant.” For most purposes “operant” is interchangeable with the traditional “[[response]],” but the terms permit us to make the distinction between an [[instance]] of behavior (“So-and-so smoked a cigarette between 2:00 and 2:10 P.M. yesterday”) and a kind [[[class]]? ] of behavior (“cigarette smoking”). The term “response” is often used for both of these although it does not carry the second meaning easily. The description of an instance of behavior does not require a description of related [[variable]]s or of a [[function]]al relation. The term operant, on the other hand, is concerned with the [[predict]]ion and [[control]] of a kind of behavior. Although we observe only instances, we are concerned with [[law]]s which specify kinds..
[[VB53]]
A bit of behavior as small as a single speech-sound, or even a pitch or stress pattern, may be under independent control of a manipulable variable (we shall see evidence of such “atomic” verbal operants later). On the other hand, a large segment of behavior—perhaps a phrase like vast majority or when all is said and done or the truth, the whole truth, and nothing but the truth or a whole sentence such as Haste makes waste—may be shown to vary under a similarly unitary functional control
[[VB54]]
Any [[operant]], [[verbal]] or otherwise, acquires [[strength]] and continues to be maintained in strength when [[response]]s are frequently followed by the [[event]] called “[[reinforcement]].”
[[VB62]]
When an [[operant]] is acquired it becomes a member of a group of responses which vary together with the relevant [[deprivation]]. A man gets a drink of water in many ways—by reaching for a glass of water, by opening a faucet, by pouring water from a pitcher, and so on. The [[verbal]] operant Water! becomes a member of this group when it is reinforced with water. The [[probability]]es of all operants so reinforced vary together. [[response]]s in all [[class]]es are made more likely to occur when we deprive the man of water or cause him to lose water— for example, by inducing violent exercise, by feeding him salt which must be excreted, or by raising the temperature of his surroundings so that he sweats. On the other hand, we make all such responses less likely to occur by causing the man to drink large amounts of water... The important events are the [[operation]]s which are said to change the state of thirst. In [[predict]]ing and controlling the verbal response Water! we do not change thirst directly; we engage in certain operations which are said to change it. It is simpler to omit any reference to a “[[drive]]” and say that the probability of the response Water! can be changed through these [[operation]]s.
[[VB65]]
As a general rule, in order to identify any type of verbal [[operant]] we need to know the kind of [[variable]]s of which the [[response]] is a [[function]]. In a given [[verbal]] [[community]], however, certain formal properties may be so closely associated with specific kinds of variables that the latter may often be safely [[infer]]red
[[VB70]]
In all [[verbal]] behavior under [[stimulus control]] there are three important events to be taken into account: a [[stimulus]], a [[response]], and a [[reinforcement]]. These are contingent upon each other, as we have seen, in the following way: the stimulus, acting prior to the emission of the response, sets the occasion upon which the response is likely to be reinforced. Under this [[contingency]], through a process of [[operant discrimination]], the stimulus becomes the occasion upon which the response is likely to be emitted.
[[VB115]]
The point of departure for our considerations is that whatever was said about structures is also true for the operations themselves.
[[IS76]]
As soon as I get to that point, I can apply the Second Law of Thermodynamics with complete success because I am dealing with an energetically closed system. And this way one can use it to make all kinds of predictions—one can therefore use thermodynamics to say that [[order]], that relations between elements in the system, cannot exist in such a way that elements drop out or disappear, but that the order I observe will increasingly slip away from me. How did Boltzmann see order? He very rightly regarded order as the difference between two objects. As soon as I say, “That is an ashtray,” and, “That is a tape recorder,” I have given the world a certain order: the ashtray is an ashtray—and likewise the tape recorder is a tape recorder.
But if, while we’re sitting here, the ashtray suddenly starts to look more and more like a tape recorder and the tape recorder more and more like an ashtray till in the end all I have before me is a grey, black, silver mass, then I would say, “Oh, no, all order has been lost.”
[[HE31]]
[[order]] is a [[problem]] ofåç description. If we claim that this is better organized than that, then the descriptions must “show” this. In the initial discussions of [[problem]]s of [[self-organization]], [[description]]s weren’t touched on at all.
[[HE37]]
We call [[order-word]]s not a particular category of [[explicit]] [[statement]]s (for example, in the [[imperative]]), but the relation of every [[word]] or statement to [[implicit presupposition]]s, in other words, to [[speech act]]s that are, and can only be, accomplished in the statement. Order-words do not concern [[command]]s only, but every [[act]] that is linked to statements by a "social obligation." Every statement displays this link, directly or indirectly. Questions, promises, are order-words. The only possible definition of [[language]] is the set of all order-words, implicit presuppositions, or speech acts current in a language at a given moment.
See [[ATP p65-1]] for [[language]] to [[regime of signs]] relation
Same as [[ATP p79-1]]
General [[organology]] defines the [[rule]]s for analyzing, thinking and prescribing [[human]] [[fact]]s at three parallel but indissociable [[level]]s of the psychosomatic, which is the endosomatic level, the artifactual, which is the [[exosomatic]] level, and the [[social]], which is the [[organization]]al level. It is an analysis of the [[relation]]s [[between]] [[organic]] [[organ]]s, [[technical]] organs and social organizations.
[[NL p37-1]]
It is not that [[word]]s are imperfect, or that, when confronted by the [[visible]], they prove insuperably inadequate. Neither can be reduced tot he other's terms: it is in vain that we say what we see; what we see never resides in what we say. And it is in vain that we attempt to show, by the use of [[image]]s, [[metaphor]]s, or [[simile]]s, what we are saying; the space where they achieve their splendor is not that [[deploy]]ed by our [[eye]]s bu that [[define]]d by the sequential [[element]]s of [[syntax]]. And the [[proper name]] in this particular context, is merely an [[artifice]]; it gives us a finger to point with, in other words, to [[pass]] surreptitiously from the space where on speaks to the space where one looks; in other words, to [[fold]] one over the other as though they were equivalents.
But if one wishes to keep the [[relation]] of [[language]] to [[vision]] open, if one wishes to treat their incompatibility as a starting-point for [[speech]] instead of as an obstacle to be avoided, so as to stay as close as possible to both, then one must erase those proper names and preserve the [[infinity] of the task. It is perhaps through the [[milieu]] of this [[grey]], [[anonymous]] language, always over-meticulous and repetitive because too broad, that the [[painting]] may, little by little, release its [[illumination]]s.
[[OTxxv]]
Starts to discuss [[verb]]s and [[proposition]]s. [[Logic of Sense]] [[Deleuze]] [[grammar]]
[[Guattari]]
[[OT96]]
[[convenientia]] is a [[resemblance]] connected with [[space]] in the [[form]] of a graduated [[scale]] of [[proximity]]. It is of the same [[order]] as [[conjunction]] and [[adjustment]]. This is why it pertains less to the things themselves than to the [[world]] in which they exist... the world is linked together like a [[chain]]. At each [[point]] of contact there begins and ends a link that resembles the one before it and the one after it... holding the extremes apart ([[God]] and [[matter]]), yet bringing them together in a way that the will of the Almighty may penetrate into the most unawakened corners.
[[OT10]]
[[aemulatio]]: a sort of convenience that has been freed from the law of place and is able to function, without motion, from a distance... [22] the [[relation]] of [[emulation]] enables things to imitate one another from one end of the universe to the other without connection or [[proximity]]: by duplicating itself in a [[mirror]] the [[world]] abolishes the distance proper to it; in this way it overcomes the [[place]] allotted to each thing... Which is the [[reality]] and which the projection? it is not often [[possible]] to [[say]], for emulation is a sort of natural [[twin]]ship existing in things; it arises from a [[fold]] in [[being]], the two sides of which stand immediately opposite to one another.
...emulation does not leave the two reflected [[figure]]s it has confronted in a merely inert case of opposition. One may be the weaker, and therefore receptive to the stronger... The bright [[color]]s of the [[flower]]s reproduce, without [[violence]], the [[pure]] [[form]] of the [[sky]]
[23] And in this [[duel]], the two confronting figures seize upon one another. Like [[envelop]]s like, which in turn surrounds the other, perhaps to be enveloped once more in a duplication which can continue ad infinitum. The [[link]]s of emulation, unlike the [[element]]s of [[convientia]] do not form a [[chain]] but rather a [[series]] of [[concentric]] [[circle]]s reflecting and [[rival]]ling one another.
The third form os similitude is [[analogy]].
[[OT21]]
...the fourth form of resemblance is provided by the [[play]] of [[sympathy]]s...
Sympathy is an instance of the [[same]] so strong and so insistent that it will not rest content to be merely one of the [[form]]s of likeness; t has the dangerous [[power]] of assimilating, of rendering things identical to one another, of mingling them, of causing their individuality to disappear... sympathy [[transform]]s... [27] it would reduce the [[world]] to a [[point]], to a homogeneous mass, to the featureless [[form]] of the same. All its parts would hold together and communicate with one another without a break, with no distance between them, like those metal chains held suspended by sympathy to the attraction of a single magnet...sympathy is compensated for by its [[twin]], [[antipathy]]
[[identity]]
[[OT21/22]]
Through this [[play]] of [[antipathy]]... all the [[form]]s of the world remain what they are...[28]
The sovereignty of the [[sympathy]]-antipathy pair gives rise to all the forms of [[resemblance]]. The first three [[similitude]]s are thus all resumed and explained by it... By means of this interplay, the [[world]] remains identical; [[resemblance]]s continue to be what they are, and to [[resemble]] one another. the [[same]] remains the same, riveted onto itself.
[[OT26]]
[[convenienta]], [[aemulatio]], [[analogy]], and [[sympathy]] tell us how the [[world]] must [[fold]] in upon itself, duplicate itself, reflect itself, or form a chain with itself so things can resemble one another... There are no [[resemblance]]s without [[signature]]s. The world of similarity can only be a world of [[sign]]s... A [[knowledge]] of similitudes is founded upon the unearthing and decipherment of these signatures.
[[OT27/28]]
The system of [[signature]]s [[reverse]]s the relation of the [[visible]] to the [[invisible]]. [[resemblance]] was the invisible [[form]] of that which, from the depths of the [[world]], made things visible; but in order that this form may be brought out into the [[light]] in its turn there must be a visible [[figure]] thta will [[draw]] out from its profound invisibility. That is why the [[face]] of the world is covered with [ [[mark]]s ]...
The great untroubled [[mirror]] in whose depths [[thing]]s [[gaze]]d at themselves and reflected their own [[image]]es back to one another is, in [[reality]], filled with the murmur of [[word]]s.
[[OT29]]
It is therefore a [[knowledge]] that can, and must, proceed by the [[infinite]] accumulation of confirmations... The only possible form of link between the [[element]]s of this knowledge is addition... 16th century knowledge condemned itself to never knowing anything but the same thing, and to knowing that thing only at the unattainable end of an endless journey.
[[OT30]]
...[the]] [[archaeology]]cal [[level]]-that is, the level of what made [ [[knowledge]]/[[mode]] of [[thought]] ] [[possible]]-
[[OT34]]
[[language]] is not what it is because it has a meaning: its representative content, which was to have such important for grammarians of the 17th and 18th centuries that it provided them with the guiding thread of their analyses, has no role to play here. Words group syllables together, and syllables letters, because there are virtues placed in individual letters that [[draw]] them toward each other or keep them apart, exactly as the [[mark]]s found in [[nature]] also repel or attract one another.
[[OT35]]
Knowledge therefor consisted in relating one [[form]] of [[language]] to another form of language; in restoring the great, unbroken plain of [[word]]s and [[thing]]s... the [[function]] proper to language is not seeing or [45] demonstrating; it is [[interpret]]ing.
[[OT39]]
Perhaps for the first ime in [[west]]ern [[culture]], we find revealed the basolutely open [[dimension]] of a [[language]] no longer able to halt itself, because, never being enclosed in a definitive [[statement]], it can [[express]] its [[truth]] only in some future [[discourse]] and is wholly intent on what it will have said; but even this future discourse itself does not have the [[power]] to halt the progression... the task of commentray can never, by definition, be completed. [[proliferation]]
..commentary is directed entirely towards the enigmatic, murmured element of the language bing balled on... the language of the 16th century-understood... as a global cultural experience-found itself caught... in the interstice ocurring between the primal text and the [[infinity]] of interpretation. [trying to use interpretation to get to the primal Text]
[[OT44]]
[[literature]] [[novel]] [[art]] is discussed. very interesting. [[OT45]]
[[Don Quixote]] [[read]]s the [[world]] in order to prove his [[book]]s.
[[OT48/49]]
[[madness]] [[poetry]] [[madman]] [[poet]] [[difference]] [[identity]] [[sign]]s [[paranoia]]
[[OT52]]
...the fundamental [[element]] of the [[Classical]] [[episteme]] is either the success or failure of [[mechanism]], nor the right to [[math]]ematicize or the impossibility of mathmaticizing [[nature]], but rather a link with the [[mathesis]] which, until the end of the 18th century, remains [[constant]] and unaltered. This link has two essential characteristics.
The first is that relations between beings are indeed to be conceived in the [[form]] of [[order]] and [[measure]]ment, but with this fundamental imbalance, that it is always [[possible]] to reduce problems of measurement to problems of order. So the relation of all [[knowledge]] to the mathesis is posited as the possibility of establishing an ordered [[succession]] between things, even non-measurable ones. In this sense, [[analysis]] was very quickly to acquire the value of a [[universal]] [[method]]; and the [[Leibniz]]ian project of establishing a mathematics of qualitative orders is situated at the very heart of Classical [[thought]]; its gravitational [[center]]. [this] does not [[signify]] that knowledge is absorbed into mathematics, or that [math] becomes the foundation for all possible knowledge. [non-math fields develop]... Although they were all dependent upon analaysis in general, their particular instrument was not the algebraic method but the [[system]] of [[sign]]s. So there first appeared general [[grammar]], natural history, and the analysis of wealth, all sciences of order in the domain of [[word]]s [[being]]s and needs
[[OT54/55]]
This relation to [[order]] is as essential to the classical age as the relation to [[interpretation]] was to the [[Renaissance]]. And just as interpretation in the 16th century, with its superimposition of a [[semiology]] upon a [[hermeneutic]]s, was essentially a [[knowledge]] based upon [[similitude]], so the [[order]]ing of [[thing]]s by means of [[sign]]s constitutes all the empirical forms of knowledge as knowledge based upon [[identity]] and [[difference]]. The simultaneously endless and closed, full an tautological world of [[resemblance]] now finds itself dissasociated an, as it were, split down the middle: on the one side, we shall fund the signs that have become [[tool]]s of [[analysis]], [[mark]]s of identity and difference, [[principle]]s whereby things can be reduced to order, [[key]]s for a [[taxonomy]];/*
and, on the other, the empirical and [[murmur]]ing resemblance of things, that unreacting [[similitude]] that lies beneath thought and furnishes the infinite raw material for divisions and [[distribution]]s. On the one hand, the general theory of signs, divisions, and [[classification]]s; on the other, the [[problem]] of immediate resemblances, of the spontaneous [[movement]] of imagination, of nature's [[repetition]]s. And between the two, the new forms of knowledge that occupy the area opened by this new split.
[[sign]]s [[semiotic]]s and [[semiology]] follow in the next section.
[[OT63]]
[the [[sign]] ] is also the [[instrument]] of [[analysis]], since once [[define]]d and [[isolate]]d it can be applied to further [[impression]]s; and in relation to them it plays the role of a [[grid]], as it were. Because the [[mind]] analyzes, the sign appears. Because the mind has signs at its disposal, analysis never ceases.
[[Spinoza]] reading
[[OT64]]
Whereas [[similitude]] once required a [[mark]] in [[order]] for its [[secret]] to be uncovered, it is now the un[[differentiate]]d.. shifting, unstable base upon which [[knowledge]] can establish its relations, its [[measure]]ments, and its [[identity]]s. This results in a double [[reverse]]al: first, because it is the [[sign]]-and with it the whole of [[discourse]]ive knowledge-that requires a basis of similitude, and second, because it is no longer a [[question]] of making a previous content manifest to knowledge but of providing a content that will be able to offer a [[ground]] upon which [[form]]s of knowledge can be applied.
[[OT67]]
What makes the totality of the [[Classical]] [[episteme]] possible is primarily the relation to a [[knowledge]] of [[order]]. When dealing with the ordering of simple natures, one has recourse to a [[mathesis]], of which the universal method is algebra. When dealing with the ordering of complex natures (representations in general, as they are given in [[experience]]), one has to constitute a [[taxonomia]], and to do that one has to establish a [80] [[system]] of [[sign]]s.
[[OT75]]
...the [[Classical]] [[episteme]] can be defined in its most general arrangement in terms of an articulated system of a [[mathesis]], a [[taxonomia]], and a genetic [[analysis]]...the [[center]] of [[knowledge]], in the 17th and 18th centuries, is the [[tab;e]]. As for the great [[controversy]]s that occupied men's [[mind]]s, these are accommodated quite naturally in the [[fold]]s of this [[organization]].
[[OT79]]
[[general grammar]] is the study of verbal [[order]] in its relation to the simultaneity that it is its task to represent. Its proper object is therefore neither [[thought]] not any individual [[language]], but [[discourse]], understood as a [[sequence]] of [[sign]].
[[OT82]]
What [[civilization]]s and peoples leave us as the [[monument]]s of their [[thought]] is not so much their [[text]]s as their [[vocabulary]]s, their [[syntax]]ed, the [[sound]]s of their [[language]]s rather than the [[word]]s they spoke; not so much their [[discourse]] as the [[element]] that made it [[possible]], the [[discursivity]] of their language.
[[episteme]]
[[OT91]]
The [[opposition]] drawn between [[culture]] and [[technic]]s, between [[man]] and [[machine]], is false and has no [[foundation]]...
[[OTMxvi]]
It is also through the [[intermediary]] of this [[margin]] of [[indeterminacy]]... that [[machine]]s can be grouped into [[coherent]] [[ensemble]] and [[exchange]] [[information]] with one another via... the [[human]] [[interpreter]].
[[OTM15]]
As th basis of [[signification]]s, of [[mean]]s of [[expression]], of justifications and of [[form]]s, a culture establishes [[regulatory]] [[communication]] among those who share that culture; arising from the life of the [[group]], culture [[animate]]s the [[gesture]]s of those who ensure the [[command]] [[function]]s, by providing [[norm]]s and [[schema]]s. However, before the great development of [[technic]]s, culture incorporated the principle types of technics that gave rise to lived [[experience]], in the form of schemas, [[symbol]]s, [[quality]]s, [20] and [[analogy]]s.
[[OTM18]]
...one can [[define]] the [[individual]]ity and the specificity of the [[technical object]] on the basis of the criteria of its [[genesis]]: the individual technical object is not this or that thing, given [[hic et nun]], but that of which there is [[genesis]]. The [[unity]] of the technical object, its individuality, and its specificity are the characteristics of [[consistency]] and [[convergence]] in its genesis. The genesis of the technical object partakes in its [[being]]... it unifies itself according to a [[principle]] of [[internal resonance]].
[[OTM19]]
[[technical object]]s go from abstract to concrete. In the [[abstract form]] each part is considered as an absolute that functions in a closed system "[[integration]] into an [[ensemble]] in this case raises a series of so called technical problems that must be resolved and which are in fact problems of compatibility between already given ensembles." Whereas the concrete TO is plurifunctional, "it is this [[convergence]] that specifies the technical object" [27],
The technical object thus exists as a specific type obtained at the end of a convergent [[series]]. The series goes from the [[abstract]] to the [[concrete]] [[mode]]: it tends toward a [[state]] which would turn the technical being into a [[system]] that is entirely [[coherent]] within itself and entirely unified.
[[OTM26]]
In the confrontation between the [[coherence]] of [[technical]] wrok and the coherence of a [[system]] of the needs of utilization, it is [during [[atrisan]]ship eras] that coherence of utilization that prevails, because the [[technical object]] that is made to [[measure]] is in fact an object without intrinsic measure; its [[norm]]s are derived from the outside: it has not yet realized its [[internal]] coherence; it is not a system of the necessary; it corresponds to an open system of requirements.
Conversely, during the [[industrial]] [[stage]], the object acheives its coherence and it is the system of needs that is now less coherent than the system of the object; needs [[mold]] themselves onto the industrial technical object, which in turn acquries the [[power]] to shape a [[civilization]]. It is utilization that becomes an [[ensemble]] chiseled to [30] the measures of the technical object.
[[OTM27/29]]
not a quote, the [[technical object]] engages in an [[individuation]] through its own [[agency]].
"...the [[play]] of [[limit]]s, whose overcoming constitutes [[progress]], resides in the incompatibilities that arise from the progressive [[saturation]] of the [system]] of sub-[[ensemble]]s [fn: they are the [[condition]]s of a systems individuation]... what was once an obstacle [33] must become the means of [[real]]ization.
[[<hr>]]
[[OTM29]]
A true [[individual]] is not simply something that is [[individuate]]d, enclosed within his separate [[being]], but is rater a [[theater]] for new individuations.
[[On The Mode Of Existence Of Technical Objects]]
...the [[technical object]] possesses a [[power]] of [[alienation]] because it is in itself in a [[state]] of alienation, one more essential than economic or social alienation.
[[OTMx]]
...a [[knowledge]] [of] [[technical object]]s considered on three [[level]]s: [[element]]s, [[individual]]s, [[ensemble]]s... This [[becoming]] aware takes place in three [[stage]]s...
The first seeks to grasp the [[genesis]] of technical objects: the technical object musn't be seen as an artificial being; the [[sense]] of its [[evolution]] is a [[concretization]]; a [[primitive]] technical object is an [[abstract]] [[system]] pf isolate [[partial]] ways of [[function]]ing, without common ground of [[existence]], without [[reciprocal]] [[causal]]ity, without [[internal]] [[resonance]]; a perfected technical object is an [[individual]]ized technical object in which each [[structure]] is pluri-functional, [[overdetermine]]d; in it each structure exists not only as [[organ]], but as [[body]], as [[milieu]], and as [[ground]] for other structures; in this system of [[compatibility]] whose [[systematicty]] takes [[form]] just as an [[axiom]]atic saturates, each element fulfills not only a function in the whole but a function of the whole. There is something like a [[redundancy]] of information in the technical object having become [[concrete]]...
there may be something in the bottom paragraph of this page but [[I'm not sure]]...
[[OTMxiii]]
The second phase envisions the rapport between [[man]] and the [[technical object]] [at the level of [[individual]] and [[ensemble]], [[major]] and [[minor]] [[mode]]-minor is knowledge of tool or instrument, man as bearer of tools] according to a [[concrete]] apprenticeship, a sort of instinctive [[symbiosis]] of man and the technical object employed in a [[determinate]] [[milieu]], according to intuition and implicit, almost innate [[knowledge]]... major mode presupposes becoming aware of the ways of functioning; it is [[polytechnic]]...
At the [[level]] of [[ensemble]]s [we find diverse notions of [[semiotization]] of the [[notion]] of [[progress]], from 18th century to now]... [[man]]'s [[nature]] is that of the [[inventor]] of technical and living objects capable of resolving [[problem]]s of compatibility between [[machine]]s within an ensemble; he [[coordinate]]s and [[organize]]s their mutual [[relation]] at the level of machines, between machines; more than simply [[govern]]ing them, he renders them compatible, he is the [[agent]] and [[translator]] of [[information]] from machine to machine, intervening within the [[margin]] of [[indeterminate]]cy harbored by the open machine's way of [[function]]ing, which is capable of receiving [[information]]. Man [[construct]]s the [[signification]] of [[exchange]]s of information between machines. The inadequate rapport of man and the technical object must therefore be grasped as a [[coupling]] between the living and the non-living... [not pure [[automatism]]s], there is no machine of all machines.
The third [[phase]]... places the technical object back into the ensemble of the [[real]].. [next page]... the basic [[hypothesis]]... consists in supposing the existence of a primitive mode of mans relation with the world, which is the magical [[mode]]: from an internal rupture of this relation ares... the technical phase and the religious phase (technical as [[figure]], religious as [[ground]] ].
[[OTMxv]]
[What] If, in short, the [[history]] of non-formal [[knowledge]] had a [[system]]? That was my first initial [[hypothesis]]-the first risk I took.
[[The Order of Things]]
...unknown to themselves,. the naturalists, economists, and grammarians employed the same [[rule]]s to [[define]] the [[object]]s proper to their own study, to [[form]] their [[concept]]s, to build their theories. It is theses rules of formation... that I have tried to reveal, by isolating...a [[level]] that I have called... [[archaeology]]cal
[[OTx]]
[Are there] [[system]]s of [[regularity]]s that have a decisive [[role]] in the [[history]] of [[science]] [?]
...I tried to explore scientific [[discourse]]... from the [[point of view]] of the [[rule]]s that come into [[play]] in the very existence of such discourse...
[[OTxii]]
...the [[history]]cal analysis of scientific [[discourse]] should... be subject... to a theory of [[discursive]] [[practice]].
[[OTxiv]]
[ [[Borges]] ] does away with the site, the mute [[ground]] upon which it is possible for [[entity]]s to be juxtaposed... [xix] a [[table]], a [[tabula]], that enables [[thought]] to [[operate]] on the entities of our [[world]], to put them in [[order]], to [[divide]] them into [[class]]es, to group them according to [[name]]s that designate their similarities and differences-the table upon which, since the beginning of time, [[language]] has [[intersect]]ed [[space]].
..there is a worse kind of disorder than that of the [[incongruous]]... the disorder in which [[fragment]]s of a large number of [[possible]] orders glitter separately in the [[dimension]], without [[law]] or [[geometry]], of the [[heteroclite]]; and that word should be taken in its most literal etymological [[sense]]: in such a state, things are laid, placed, arranged in sites so very different from one another that it is impossible to find a place of residence for them, to define a common [[locus]] beneath them all. [[utopia]]s afford consolation... [[heterotopia]]s are disturbing, probably because they secretly [[undermine]] [[language]], because they make it impossible to name this and that, because they shatter or tangle common names, because they destroy [[syntax]] in advance, and not only the syntax which causes [[word]]s and [[thing]]s to hold together.
This is why utopias permit fables and [[discourse]]:they run with the very grain of language and are part of the fundamental grain of the [[fabula]]; heterotopias (such as those often to be found in Borges) desiccate [[speech]], stop words in their tracks, contest the very possibility of [[grammar]] at its source; they dissolve our myths and sterilize the lyricism of or sentences.
[[OTxv]]
...the Chinese encyclopedia quoted by [[Borges]], and the [[taxonomy]] it proposes, lead to a kind of [[thought]] without [[space]], to [[word]]s and [[category]]s that lack all life and place, but are rooted in a [[ceremony]]al space, overburdened with [[complex]] [[figure]]s, with tangled paths, strange places, and unexpected [[communication]]s. [xxi] There would appear to be, then, at the other extremity of the earth we inhabit, a culture entirely devoted to the [[order]]ing of [[space]], but one that does not [[distribute]] the [[multiplicity]] of existing things into any of the categories that make it [[possible]] for use to [[name]], [[speak]], and [[think]].
[[OTxviii]]
On what [[table]], according to what [[grid]] of [[identity]]s, [[similitude]]s, [[analogy]]s, have we become accustomed to sort out so many different and similar things? What is this [[coherence]]-which, as is immediately apparent, is neither [[determine]]d by an [[a priori]] and necessary concatenation, not imposed on us by immediately [[percept]]ible [[content]]s?.. there is nothing more tentative... than the [[process]] of establishing an [[order]] among [[thing]]s; nothing demands a sharper [[eye]] or a surer, better-[[articulate]]d [[language]]...
A [[system]] of [[element]]s-a [[definition]] of the [[segment]]s by which the [[resemblance]]s and [[difference]]s can be shown, the [[type]]s of [[variation]] by which those segments can be [[affect]]ed, and, lastly, the [[threshold]] above which there is a difference and below which there is similitude-is indispensable for the [[establish]]ment of even the simplest [[form]] of order. Order is, at one and the same time, that which is [[given]] in things as their inner [[law]], the hidden [[network]] that determines the way they [[confront]] one another, and also that which has no existence except in the [[grid]] created by a [[glance]], an [[examination]], a [[language]]; and it is only in the [[blank]] spaces of this grid that order [[manifest]]s itself in [[depth]] as though already there, waiting in silence for the moment of its [[expression]].
[[OTxx]]
...what I am attempting to bring to [[light]] is the [[epistemology]]cal [[field]], the [[episteme]] in which [[knowledge]]... [[ground]]s its [[positive]]ity and thereby [[manifest]]s a [[history]] which is not that of its growing perfection, but rather [xxiv] that of its [[condition]]s of [[possible]]ty; in this account, what should appear are those configurations, within the [[space]] of [[knowledge]] which have given rise tot he diverse [[form]]s of [[empirical]] [[science]]. Such an enterprise is not so much a history, in the traditional [[meaning]] of that [[word]], as an [[archaeology]]
[[OTxxi]]
on the [[archaeology]]cal [[level]], we see that the [[system]] of [[positivity]]s was [[transform]]ed in a wholesale fashion at the end of the 18th and the beginning of the 19th century. Not that [[reason]] made any [[progress]]: it was simply that the [[mode]] of [[being]] of [[thing]]s, and of the [[order]] that divided them up before presenting them to the [[understand]]ing was profoundly altered.
[[OTxxiii]]
...[[archaeology]], addressing itself to the general [[space]] of [[knowledge]], to its [[configuration]]s, and to the [[mode]] of [[being]] of the [[thing]]s that appear in it, [[define]]s [[system]]s of [[simultaneity]], as well as the [[series]] of [[mutation]]s necessary and sufficient to circumscribe the [[threshold]] of a new [[positive]]ty...
...[[man]] is a recent [[invention]], a [[figure]] not yet two centuries old, a new wrinkle in our knowledge, and that he will disappear again as soon as that knowledge has discovered a new [[form]].
[[OTxxiv]]
[[Code]]ing comes from [[apparatus of power]] in [[Dialogues II]] and [[overcode]]ing is effected by the [[abstract machine]]
Overcoding is unique to [[language]]
Each [[actual entity]] is analysable in an indefinite number of ways. In
some modes of analysis the component elements are more abstract than
in other modes of analysis. The analysis of an actual entity into
'[[prehension]]s' is that mode of [[analysis]] which exhibits the most concrete
elements in the nature of actual entities. This mode of analysis will be termed
the '[[division]]' of the actual entity in question. Each actual entity is
'divisible' in an indefinite number of ways, and each way of 'division' yields its
definite quota of prehensions. A prehension reproduces in itself the general
characteristics of an actual entity, it is referent to an external world, and
in this sense will be said to have a '[[vector]] character'; it involves emotion,
and purpose, and valuation, and causation. In fact, any characteristic of
an actual entity is reproduced [29] in a prehension. It might have been a
complete [[actuality]]; but, by reason of a certain incomplete partiality, a
prehension is only a subordinate element in an actual entity. A reference to
the complete actuality is required to give the reason why such a prehension
is what it is in respect to its [[subjective form]]. This subjective form is
determined by the [[subjective aim]] at further [[integration]], so as to obtain
the 'satisfaction' of the completed subject. In other words, final causation
and atomism are interconnected philosophical principles.
[[Process and Reality]]
Actual entities involve each other by reason of their [[prehension]]s of each
other. There are thus real individual facts of the togetherness of actual
entities, which are real, individual, and particular, in the same sense in
which actual entities and the prehensions are real, individual, and
particular. Any such particular fact of togetherness among actual entities is
called a '[[nexus]]' (plural form is written 'nexus'). The ultimate facts of
[[immediate]] [[actual]] [[experience]] are [[actual entity]]s, prehensions, and nexus. All
else is, for our experience, derivative abstraction.
Every entity should be a specific instance of one [[category of existence]],
every explanation should be a specific instance of [[category of explanation]],
and every obligation should be a specific instance of [[categoreal obligations]]. [21] The [[Category of the Ultimate]] expresses the general principle
presupposed in the three more special categories.
[[P19]]
'Creativity' is the principle of [[novelty]]. An [[actual occasion]] is a novel
entity diverse from any entity in the '[[many]]' which it unifies. Thus
'[[creativity]]' introduces novelty into the content of the many, which are the
universe disjunctively. The 'creative advance' is the application of this
ultimate principle of creativity to each novel situation which it originates.
The ultimate metaphysical principle is the advance from
[[disjunct]]ion to [[conjunct]]ion, creating a novel entity other than the entities
given in disjunction. The novel entity is at once the togetherness of the
'many' which it finds, and also it is one among the disjunctive 'many'
which it leaves; it is a novel entity, disjunctively among the many entities
which it synthesizes. The many become one, and are increased by one.
In their natures, entities are disjunctively 'many' in process of passage into
conjunctive unity. This [[Category of the Ultimate]] replaces [[Aristotle]]'s
category of 'primary substance.'
Thus the 'production of novel togetherness' is the ultimate [[notion]]
embodied in the term '[[concrescence]].'
[[P20]]
That how an [[actual entity]] becomes constitutes what that actual
entity is; so that the two descriptions of an actual entity are not
independent. Its '[[being]]' is constituted by its '[[becoming]].' This is the
'[[principle of process]].'
That every [[prehension]] consists of three factors: (a) the '[[subject]]'
which is prehending, namely, the actual entity in which that prehension
is a concrete element; (b) the '[[datum]]' which is prehended; (c) the
'[[subjective form]]' which is how that subject prehends that datum.
[[P21]]
That a [[nexus]] is a set of [[actual entity]]s in the unity of the relatedness constituted by their [[prehension]]s of each other, or—what is the same
thing conversely expressed—constituted by their [[objectification]]s in each other
similar to the [[simple]]/[[composite]] [[substance]]s of [[Leibniz]], the [[perception]]s and [[apperception]]s that [[monad]]s have of each other, or of all the simples in a composite have of each other.
This [[ontological principle]]
means that actual entities are the only [[reason]]s; so that to search for a
reason is to search for one or more actual entities.
[[P23]]
That an [[actual entity]] by functioning in respect to itself plays
diverse roles in self-formation without losing its self-identity. It is self-
creative; and in its process of creation transforms its diversity of roles into
one coherent role. Thus '[[becoming]]' is the [[transformation]] of [[incoherence]]
into [[coherence]], and in each particular instance ceases with this attainment.
The functioning of one actual entity in the self-creation of
another actual entity is the '[[objectification]]' of the former for the latter actual
entity. The functioning of an eternal object in the self-creation of an
actual entity is the '[[ingression]]' of the [[eternal object]] in the actual entity.
[[P24]]
The [[Category of Subjective Intensity]]. The [[subjective aim]], whereby
there is origination of conceptual feeling, is at [[intensity]] of feeling[[]] (a) in
the immediate subject, and (b) in the relevant future.
This double aim—at the immediate present and the relevant future-
is less divided than appears on the surface. For the [[determination]] of the
relevant future, and the anticipatory feeling respecting provision for its
grade of intensity, are elements affecting the immediate complex of
feeling. The greater part of morality hinges on the determination of relevance
in the future. The relevant future consists of those elements in the
anticipated future which are felt with effective intensity by the present
subject by reason of the real potentiality for them to be derived from itself.
intensities, in their [[unfold]]ing, create the[ir] future; to create in the present and maintain in the future a [[metastable]]ity is to unfurl stabilizing [[operation]]s
[[P25]]
an [[actual]] [[world]] is a [[nexus]]
[[P27]]
Thirst is an
[[appetite]] towards a [[difference]]—towards something relevant, something
largely identical, but something with a definite [[novelty]].
[[sensible]] [[Difference and Repetition]] [[Leibniz]] [[monad]] [[perception]] or is it [[apperception]]??
[[P28]]
Since '[[impurity]]' in prehension refers to
the [[prehension]] arising out of the [[integration]] of 'pure' [[physical]] prehensions
with 'pure' [[mental]] prehensions, it follows that an '[[impure]]' [[mental prehension]] is also an 'impure' [[physical prehension]] and conversely. Thus the
term 'impure' applied to a prehension has a perfectly definite meaning;
and does not require the terms 'mental' or 'physical,' except for the
direction of [[attention]] in the discussion concerned.
[[P32]]
[[temporal]] [[actual entity]]s, [[atemporal]] [[eternal object]]s, are connected together by [[God]].
[[actual]] to [[virtual]] by the [[intensive]]? don't be a butcher lol
This general principle will be termed the '[[ontological principle]].' It is the principle that everything is [[positive]]ly somewhere in
[[actuality]], and in [[potency]] everywhere. In one of its applications this principle
issues in the doctrine of 'conceptualism.' Thus the search for a [[reason]]
is always the search for an actual [[fact]] which is the vehicle of the reason. The
ontological principle, as here defined, constitutes the first step in the
description of the [[universe]] as a solidarity of many actual entities. Each
actual entity is conceived as an [[act]] of [[experience]] arising out of [[data]]. It is
a [[process]] of '[[feeling]]' the many data, so as to absorb them into the [[unity]] of
one individual '[[satisfaction]].' Here 'feeling' is the term used for the basic
generic operation of passing from the [[objectivity]] of the data to the
[[subjectivity]] of the actual entity in question. Feelings are variously specialized [41] operations, effecting a [[transition]] into subjectivity. They replace the
'neutral stuff' of certain realistic philosophers. An actual entity is a process,
and is not describable in terms of the [[morphology]] of a 'stuff.' This use of
the term 'feeling' has a close analogy to Alexander's use of the term
'enjoyment'; and has also some kinship with [[Bergson]]'s use of the term
'[[intuition]].' A near analogy is Locke's use of the term 'idea,' including 'ideas
of particular things' (cf. his Essay, III, III, 2, 6, and 7). But the word
'feeling,' as used in these lectures, is even more reminiscent of Descartes.
For example: "Let it be so; still it is at least quite certain that it seems to
me that I see light, that I hear noise and that I feel heat. That cannot be
false; properly speaking it is what is in me called feeling (sentire); and
used in this precise sense that is no other thing than thinking."
[[potential]]
[[P33]]
Just as '[[potential]]ity for process' is the meaning of the more general term
'[[entity]],' or '[[thing]]'; so '[[decision]]' is the additional meaning imported by the
word '[[actual]]' into the phrase 'actual [[entity]].' 'Actuality' is the decision
amid 'potentiality.' It represents stubborn fact which cannot be evaded.
The real internal constitution of an actual entity progressively
constitutes a decision conditioning the [[creativity]] which transcends that actuality.
For example, the total [[multiplicity]] of Platonic forms is not
'[[given]].' But in respect of each actual entity, there is [[givenness]] of such
forms. The [[determinate]] definiteness of each actuality is an [[expression]] of a
selection from these forms. It grades them in a diversity of relevance. This
[44] ordering of relevance starts from those forms which are, in the fullest
sense, exemplified, and passes through grades of relevance down to those
forms which in some faint sense are proximately relevant by reason of
contrast with actual fact. This whole gamut of relevance is 'given,' and
must be referred to the decision of actuality.
the [[virtual]] is [[assymmetrical]] with the [[actual]], it [[subsist]]s [[perpetuum mobile]]
[[P40/41]]
An [[eternal object]] is always a [[potentiality]] for [[actual entity]]s; but in itself,
as conceptually felt, it is neutral as to the fact of its physical [[ingression]] in
any particular actual entity of the temporal world. 'Potentiality' is the
correlative of '[[givenness]].' The meaning of 'givenness' is that what is 'given'
* might not have been '[[given]]'; and that what is not 'given' might have been
'given.'
[[P43]]
The 'formal' constitution of an [[actual entity]] is a [[process]] of transition
from [[indetermination]] towards terminal [[determination]]. But the
indetermination is referent to determinate data. The 'objective' constitution of an*
actual entity is its terminal determination, considered as a complex of
component determinates by reason of which the actual entity is a [[datum]] for
the [[creative advance]]. The actual entity on its physical side is composed of
its determinate feelings of its actual world, and on its mental side is
originated by its conceptual [[appetition]]s.
[[differenciation]] [[virtual]] [[actual]]
[[P44]]
There is not, however, one entity which is merely the class of all [[eternal object]]s. For if we conceive any class of eternal objects, there are additional
eternal objects which presuppose that class but do not belong to it. ... A multiplicity is a type of complex thing which has the
unity derivative from some qualification which participates in each of its
components severally; but a [[multiplicity]] has no unity derivative merely
from its various components.
[[Difference and Repetition]] he's here discussing the [[virtual]] and its [[differentiation]]
[[P45]]
Each occasion exhibits its measure of [[creative]] emphasis in
proportion to its measure of [[subjective]] [[intensity]]. The absolute standard of such
intensity is that of the primordial nature of [[God]], which is neither great
nor small because it arises out of no [[actual world]]. It has within it no
[[component]]s which are [[standard]]s of comparison. But in the [[temporal]] [[world]] for
occasions of relatively slight experient intensity, their decisions of creative
emphasis are individually negligible compared to the determined
components which they [[receive]] and [[transmit]]. But the final accumulation of all
such decisions—the decision of God's nature and the decisions of all
occasions—constitutes that special element in the [[flux]] of forms in history, which
is '[[given]]' and incapable of rationalization beyond the fact that within it
every component which is [[determinable]] is internally [[determined]].
[[residue]] [[residuum]] [[Anti Oedipus]] [[conjunctive synthesis]] [[consumption]] [[synthesis of consumption]] [[nomad]]ic [[subject]] on the BwO from AO
[[P46]]
Neither fact is
capable of rationalization, in the sense of tracing the antecedents which
determine it. The initial [[fact]] is the primordial [[appetition]], and the final fact
is the [[decision]] of emphasis, finally [[creative]] of the '[[satisfaction]].'
[[P47]]
One role of the [[eternal object]]s is that
they are those elements which express how any one [[actual entity]] is
constituted by its synthesis of other actual entities, and how that actual entity
develops from the primary dative phase into its own individual actual existence
[[P48]]
Its 'ideas of things' are
what other things are for it. In the phraseology of these lectures, they are
its '[[feeling]]s.' The [[actual entity]] is composite and analysable; and its 'ideas'
express how, and in what sense, other things are components in its own constitution
[[P50]]
The '[[prehension]]' of one [[actual entity]] by another actual entity is the
complete transaction, analysable into the [[objectification]] of the former
entity as one of the [[data]] for the latter, and into the fully clothed [[feeling]]
whereby the [[datum]] is absorbed into the subjective [[satisfaction]]—'clothed'
with the various elements of its '[[subjective form]].' But this definition can be
stated more generally so as to include the case of the prehension of an
[[eternal object]] by an actual entity; namely, The 'positive prehension' of an
entity by an actual entity is the complete transaction analysable into the
[[ingression]], or objectification, of that entity as a datum for feeling, and
into the feeling whereby this datum is absorbed into the subjective
satisfaction.
[[P51]]
The [[principle]] that I am adopting is that [[consciousness]] presupposes
[[experience]], and not experience consciousness.
[[P52]]
The [[creative]] action is the [[universe]] always [[becoming]] one in a
particular unity of self-[[experience]], and thereby adding to the [[multiplicity]]
which is the universe as many. This insistent [[concrescence]] into unity is
the outcome of the ultimate self-identity of each entity. No entity—be it
'universal' or 'particular'—can play disjoined roles. Self-[[identity]] requires
that every entity have one conjoined, self-consistent function, whatever be
the complexity of that function.
[[self-identity]]
[[P53]]
In '[[causal objectification]]' what is felt subjectively by the objectified
[[actual entity]] is transmitted objectively to the concrescent actualities which
supersede it. In Locke's phraseology the objectified actual entity is then
exerting 'power.' In this type of [[objectification]] the [[eternal object]]s,
relational between object and subject, express the formal constitution of the
objectified actual entity.
In '[[presentational objectification]]' the relational eternal objects fall into
two sets, one set contributed by the 'extensive' perspective of the perceived
from the position of the perceiver, and the other set by the antecedent con-
crescent phases of the perceiver. What is ordinarily termed '[[perception]]' is
consciousness of presentational objectification. But according to the
philosophy of organism there can be consciousness of both types of
objectification. There can be such consciousness of both types because,
according to this philosophy, the knowable is the complete nature of the
knower, at least such phases of it as are antecedent to that operation of
knowing.
[[P57]]
the [[doctrine of internal relations]] relations makes it impossible to attribute '[[change]]' to any [[actual entity]].
Every actual entity is what it is, and is with its definite status in the
[[universe]], determined by its internal relations to other actual entities.
'Change' is the description of the adventures of [[eternal object]]s in the
evolving universe of actual things.
[[P58]]
the [[real essence]] involves real [[objectification]]s of specified actual entities; the abstract essence is a complex [[eternal object]]. There is nothing self-contradictory in the thought of many actual
entities with the same abstract essence; but there can only be one [[actual entity]] with the same real essence. For the real essence indicates 'where'
the entity is, that is to say, its status in the real world; the [[abstract essence]]
omits the particularity of the status.
[[P58/59]]
[[systematic desensitization]]
• Combining relaxation with
• a hierarchy of fear-producing stimuli,
• arranged from the least to the most frightening
[[P8 9]]
[[positive reinforcer]] (reinforcer)
• A stimulus
• that increases
• the frequency
• of a response it follows
[[P8 11]]
[[positive reinforcement contingency]] (reinforcement)
• The response-contingent
• presentation of
• a reinforcer
• resulting in an increased frequency of that response.
[[P8 23]]
[[negative reinforcer]] ([[aversive]] stimulus)
• A stimulus
• that increases the future frequency of a response that
• its removal (termination) follows.
[[negative reinforcement contingency]] (escape)
• The response-contingent
• removal of
• a negative reinforcer
• resulting in an increased frequency of that response
[[P8 25]]
[[baseline]], the period before we try to change things...
But that may be a misleading way to describe the problem because it suggests there is a thing called [[phobia]] and there is a thing called fear. Phobia has no special, fundamental, psychological importance; it just means that the person who uses the word thinks it’s irrational for someone to find that stimulus aversive because it will not be paired with other aversive stimuli in the future
[[Principles of Behavior 8e]]
[[negative punishment contingency]] (penalty)
• Response-contingent
• removal of
• a [[reinforcer]]
• resulting in a decreased [[frequency]] of that [[response]]
[[behavioral contingency]]
• The occasion for a response,*
• the response,
• and the outcome of that response
[[P8 27]]
the first thing you should do is
look at the events that follow the undesirable behavior. These events probably reinforce the behavior
So, this aspect of
life in a psychiatric hospital may help maintain the crazy behaviors
[[quote]]
[[P8 31]]
[[extinction]]
• Stopping the positive or negative reinforcement contingency
• for a previously reinforced response
• causes the response frequency to decrease
[[P8 32]]
Roughly, a reinforcer must be delayed no longer than 1 second to be considered [[immediate reinforcement]], and the closer
to 0 seconds, the better; between 1 and about 60 seconds should be considered [[delayed reinforcement]]. If the reinforcer is delivered after 60 seconds, it probably won’t reinforce
the response and might just be called the pathetic [[delayed delivery of a reinforcer]].
The reinforcers are too delayed to directly reinforce the responses; remember our 60" rule. So the work-around is, if you know the rule describing the behavioral contingency, then that rule might control (govern) your behavior. And we call your behavior [[rule-governed behavior]]. (Later on,
we’ll get into what kinds of rules can effectively control or govern your behavior and what rules probably can’t.) And what will we
call those behavioral contingencies that look like reinforcement contingencies but aren’t, really, because the reinforcers are too delayed to reinforce? Let’s call them [[rule-governed analogs to reinforcement contingencies]] or just [[analogs to reinforcement]]
[[P8 33]]
Contingency contracting rules
put it in writing
have effective behavioral consequences
performance not monitored once a week turns to shit
[38] specify the contingencies clearly
[[P8 36]]
[[rule]]
• A description of a behavioral contingency.
[[rule-governed behavior]]
• Behavior under the control of a rule.
[[contingency-shaped behavior]]
• Behavior under the control of a direct-acting contingency.
[[contingency contract]] (behavioral contract or performance contract)
• A rule statement describing
• the desired or undesired behavior,
• the occasion when the behavior should or should not
occur, and
• the added outcome for that behavior.
[[P8 37]]
[[self-management]]
• The use of a contingency contract
• where the person whose behavior is being managed
• determines/performs one or more components of that
contract
[[P8 38]]
[[operant conditioning]] principle
• Reinforcing or punishing consequences
• immediately following a response
• increase or decrease its future frequency
Another term for operant conditioning is [[instrumental conditioning]]. And similarly, you can also say instrumental behavior rather than operant behavior
And we also talk about operant behavior, like Skinner’s rat pressing the lever, Sid’s writing his dissertation, your exercising, my flossing my teeth—you’ve got the picture.
[[operant behavior]]
• Behavior that operates on the environment
• and is influenced by its reinforcing or punishing
consequences
[[P8 41]]
[[ law of effect]]
• The effects of our actions
• determine whether we will repeat them.
[[P8 42]]
You might say a particular value [amount] of the independent variable causes a particular value [amount] of the dependent variable
[[independent variable]]
• The variable the experimenter systematically manipulates
• to influence the dependent variable
[[dependent variable]]
• A measure of the participant’s behavior
[[P8 43]]
y-axis = ordinate
x-axis = abscissa
[[P8 48]]
[[unconditioned stimulus]] (US)
• A stimulus that elicits (causes) a response
• without previous pairing with another stimulus.
[[unconditioned response]] (UR)
• A response elicited (caused) by
• an unconditioned stimulus.
[[conditioned stimulus]] (CS)
• A stimulus that elicits (causes) a response
• because of previous pairing with another stimulus.
[[conditioned response]] (CR)
• A response elicited (caused) by
• a conditioned stimulus.
[[respondent conditioning]]
• Pairing a neutral stimulus
• with an unconditioned stimulus
• causes it to elicit the conditioned response.
[[P8 3]]
[[Baseline]]
• The phase of an experiment or intervention
• where the behavior is measured
• in the absence of an intervention
[[P8 49]]
[[behavioral skills training]] (BST)
• Instructions, • modeling,
• practice, and • feedback
[[P8 50]]
[[multiple-baseline design]]
• An experimental design
• in which the replications involve
• baselines of differing durations
• and interventions of differing starting times
[[P8 51]]
[[operational definition]]
• An explicit definition
• that makes it possible for two or more observers
• to identify the same behavior when it occurs.
[[interobserver agreement]]
• Agreement between
• observations of
• two or more independent observers
[[P8 52]]
[[experimental group]]
• A group of participants
• exposed to the presumed crucial value of the
[[independent variable]]
[[control group]]
• A group of participants
• not exposed to the presumed crucial value of the
[[independent variable]]
[[P8 53]]
[[single-subject experimental design]]
• Individuals serve as their own controls
(within subject)
[[group experimental design]]
• A separate group of individuals serves as the control for the [[experimental group]]. (between subject)
[[social validity]]
• The goals,
• procedures, and
• results of an intervention
• are socially acceptable to the client,
• the behavior analyst, and
• society.
[[target behavior]]
• The behavior being measured,
• the dependent variable.
[[P8 54]]
[[confounded variables]]
• Two or more [[independent variable]]s have changed at the same time,
• so it is not possible to determine which of those variables caused the changes in the [[dependent variable]].
[[internal validity]]
• Lack of confounding variables
Treatment (intervention) package
• The addition or change of several independent variables
• at the same time
• to achieve a desired result,
• without testing the effects of each variable
individually
[[P8 55]]
[[reversal design]]
• An experimental design
• in which we reverse
• the intervention and [[baseline]] conditions
• to assess the effects of those conditions
[[P8 56]]
[[changing-criterion design]]
• An experimental design
• in which the replications involve
• interventions with criteria of differing values
The changing-criterion design is a special type of experimental design in which the experimenter repeats the experiment with differing values of the independent variable and measures changes in the dependent variable. If the values of the dependent variable change systematically with the changes in the independent variable, coincidental confounding variables are probably eliminated. Then we have internal validity, and there is probably
a causal or functional relation between the independent and the dependent variables. In the case of the changing-criterion design, the value of the independent variable that is being changed is the criterion required to meet a behavioral contingency
[[P8 57]]
All experimental designs involve some sort of comparison between two different conditions, between an experimental condition
and a control condition or between various experimental conditions. We just saw that the changing-criterion design involves comparisons of performance between differing response requirements (e.g., differing amounts of exercise required to
avoid paying a fine, differing forces of a lever press to get the water reinforcer, or differing percentages of completed homework problems to get an A). If the performance tends to match the different criteria, we are safe in concluding that the contingency we’re using is controlling behavior. This is an excellent research design, but it is limited to evaluating the effectiveness of behavioral contingencies.
[[alternating-treatments design]]
• An experimental design
• in which the replications involve
• presenting different values of the [[independent variable]]
• in an alternating sequence
• under the same general conditions
• or in the same experimental phase,
• while measuring the same dependent variables.
[[P8 58]]
We’re all Pavlov’s doggies under the skin [[quote]]
By the way, most psychologists think we acquire [[emotion]]al responses through respondent or Pavlovian conditioning. The consistent pairing of emotion-producing stimuli with neutral stimuli may bring about the conditioned fear responses to these other stimuli. Sometimes a single pairing can establish an event or object as a conditioned aversive stimulus, as with Sammy’s fear of darkness.
[[P8 5]]
[[experimental interaction]] is a risk you always
run when you expose an experimental participant to more than one experimental condition. The risk of interaction is that exposure to one condition may have influenced the effects of another condition
[[P8 59]]
[[control condition]]
• A condition not containing the presumed crucial value of the independent variable
We’ve discussed the role of research methods in making sure we discover valid cause-effect or functional relationships— [[internal validity]]. Finally, let’s address the notion of [[external validity]] or generality of results. External validity means the extent to which the cause-effect relation or functional relation you’ve shown in your experiment is valid under conditions external to your experiment. External validity means the generality of your results.
[62]
[[external validity]]
• The extent to which the conclusions of an experiment
• apply to a wide variety of conditions
[[P8 60]]
And don’t forget that the goals of behavior analysis, as
a science, are to be able to describe events, to be able
to predict events (for which we only need a correlation),
and to be able to control events (for which we need experimentation). Of course, correlation is not the only process that will allow you to accurately predict; so can experimentation, but experimentation is the only process that will allow you to accurately control
[the goals of aba are to describe, predict, and control behavior]
[[P8 61]]
[[behaviorism]]
• The philosophy that the subject matter of psychology is
• the study of the effects of environmental variables on
behavior,
• largely through experimental analysis.
[[methodological behaviorism]]
• The philosophy that behaviorism
• should only deal with events that
• two or more scientists can observe.
[[radical behaviorism]]
• The philosophy that behaviorism
• can consider many private events as behavior
• to which the principles of behavior apply.
[[mentalism]]
• The philosophy that the mind controls behavior.
[[mind]]
• The source of cognitive skills or
• those cognitive skills themselves
[[P8 64]]
[[empiricism]]
• Knowledge comes from our senses.* Determinism
• All events and all things
• have a cause.
[[parsimony]]
• The use of no unnecessary concepts,
• principles,
• or assumptions.
[[experimentation]]
• The manipulation of events or conditions
• to evaluate their effects.
[[pragmatism]]
• Research should have useful results. Selectionism
• Characteristics of species, behavior, and societies are selected by their consequences.
[[P8 67]]
[[higher-order respondent conditioning]]
• Establishing a conditioned stimulus
• by pairing a neutral stimulus
• with an already established conditioned stimulus
[[P8 6]]
[[respondent extinction]]
• Present the conditioned stimulus
• without pairing it
• with the unconditioned stimulus,
• or with an already established conditioned stimulus,
• and the conditioned stimulus will lose its eliciting
power.
[[P8 8]]
...the third part of the [[life]] of the [[human]] being, a [[part]] we cannot ignore, is an [[intermediate]] area of [[experience]]ing, to which [[interior]] [[real]]ity and [[exterior]] life both contribute. It is an area that is not challenged, because no claim is made on its behalf except that it shall exist for the [[individual]] engaged in the perpetual human task of keeping inner and outer reality separated yet interrelated.
[[Playing and Reality]]
I am therefore studying the [[substance]] of [[illusion]]... We can share a respect for illusory [[experience]], and if we wish we may collect together and form a [[group]] on the basis of the similarity of our illusory experiences. This is a natural root of grouping among [[human]] being]]s.
[[collective]] [[collective individual]] [[transindividual]] [[retention]] [[collective retention]]
[[PAR 18-1]]
the [[transitional object]] is never under magical control like the [[interior]] object (concepts, thoughts), not is it outside [[control]] as the [[real]] [[mother]] is.
this section shows how [[Klein]]s external object creates internal objects ([[Hume]] and [[impression]]s?) , however when E fails I fails, then the T-object fails as well.
[[PAR 20-1]]
It is assumed here that the task of [[real]]ity--[[acceptance]] is never completed, that no [[human]] being is free from the strain of relating [[interior]] and [[exterior]] reality, and that relief from this strain is provided by an [[intermediate]] area of [[experience]] which is not challenged ([[art]], [[religion]], etc). This [[intermediate]] [[area]] is in direct continuity with the play area of the small [[child]] who is [[lost]] in [[play]].
[[PAR p35-1]]
...this [[matter]] of [[illusion]] is one that belongs inherently to [[human]] beings and that no [[individual]] finally solves...
[[PAR 21-1]]
[[repulsion]] of the [[desiring-machine]]s by the [[Body Without Organs]]. Related to the [[connective synthesis]], [[partial-objects]], [[flow]]s [[code]]s
horizontally oriented divison of a [[strata]]
[[molecule]]
[[matter]]
[[particle]]
[[element]]
[[unformed]]
[[flow]]s
All these terms are related in some way, they appear at this moment as being related to types of matter prior to stratification, or [[destratified]]
[[strata]]
[[stratum]]
-
One of the technical terms of the investigation which designates the [[trial]] that obtains the [[continuity]] of the [[trajectory]] via the [[discontinuity]] of a [[hiatus]]; there are as many passes as there are [[mode]]s.
- 2 -
The term defines the [[ensemble]] of "what passes"; the temporal reference is less important than the "passing on", as in a relay race. The pass is the exact opposite of the being there, the "da Sein"; the being passes, it does not reside, and it passes into the other; it is that which is altered; not the being in itself but the being "by-the other".
- 3 -
In order to give the word its own meaning, it is obviously necessary to rid ourselves of two connotations: that something is passed in the pass (like a rugby ball); and that the passage is merely something temporary that will soon come to an end. There are only passes, and they pass nothing (except in the very specific cases of referential passes that [[transform]], precisely, that which is passed by aligning them in a particular way).
It is impossible, in principle, to explain any [[pattern]] by invoking [[quantity]]. But note that a ratio between two quantities is already the beginning of pattern. In other words, quantIty and pattern are of different [[logical type]]s and do not readily fit into the same thinking.
[[MN49]]
provisionally, these two [[definition]]s: I call [[matter]] the [[aggregate]] of [[image]]s, and [[perception]] of matter these
same images referred to the [[eventual]] [[action]] of one particular image, my [[body]].
body/[[brain]] as the [[gap]] from the [[movement-image]] books is somewhat introduced
[[prehension]] [[apprehension]]
[[M17]]
it's an image that also presents my possible24
action upon the thing. As Bergson never repeats saying, perception is sensory-motor in nature.
So, this is what I was seeking, namely, the three aspects of what we may now call the subjective-
image or perception-image.
[[5CS23]]
"that which one does by saying it" ATP p78
see: [[illocutionary]]
A [[perspective]] or [[point of view]] does not [[express]] my subjective
apprehension of the world right now, at this moment, but instead
constitutes a sort of [[system]] or [[structure]] which allows for this subjective
apprehension to take place.
prior tiddler too
[[DG153]]
The fact that we do not know in advance what the world is made up of is not a reason for refusing to make a start, because other [[storyteller]]s seem to know and are constantly defining the [[actor]]s that surround them-what they want, what causes them, and the ways in which they can be weakened or linked together. These storytellers [[attribute]] [[cause]]s, date [[event]]s, endow [[entity]]s with [[quality]]s, classify [[actor]]s. The analyst does not need to know more than they, he has only to begin at any point, by [[recording]] what each actor says of the others. He should not try to be reasonable and to impose some pre-determined [[sociology]] on the sometimes bizarre interdefinition offered by the writer studied. The only task of the analyst is to follow the [[transformation]]s that the actors convened in the stories are undergoing.
[[The Pasteurization of France]]
fn17
First, [[translation]] means [[drift]], [[betrayal]], [[ambiguity]] (1.2.1). It thus means that we are starting from inequivalence between interests or [[language game]]s and that the aim of the translation is to render two [[proposition]]s [[equivalent]]. Second, translation has a strategic meaning. It defines a stronghold established in such a way that, whatever people do and wherever they go, they have to pass through the contenders position and to help him further his own interests. Third, it has a [[linguistic]] [[sense]], so that one version of the language game translates all the others, replacing them with "whatever you wish, this is what you really mean." FNp253
[[PF10]]
But it must be clearly understood that in social physics there is no law of [[inertia]]. To convince someone than an [[experiment]] has succeeded, that a technique is effective, that a [[proof]] is truly decisive, there must be more than one [[actor]]. An [[idea]] or a [[practice]] cannot move from A to B solely by the [[force]] that A gives [16] it; B must seize it and move it... This vision of things poses no particular problem, except that it regards all the [[site]]s where a [[particular]] [[practice]] is [[diffuse]]d as made of autonomous [[agent]]s rather than of inert [[mass]]es [[passive]]ly [[transmit]]ting a force.
[[PF11]]
If we convince someone of something, we must share the efficacy of that conviction with the person whom we have convinced. But if someone catches on at once, takes over what we have said, and immediately generalizes it, expands it, and applies it to other things than those we originally had in mind, then we must attribute a greater efficacy to the person who has understood than to the one who has been understood.
[[PF15/16]]
There are more of us than we thought
We do not know who are the [[agent]]s who make up our [[world]]. We must begin with this [[uncertainty]] if we are to understand how, little by little, the agents [[define]]d one another, summoning other agents and [[attribute]]ing to them [[intention]]s and [[strategy]]s. This rule of [[method]] is especially important when we are studying a period when the number of agents as suddenly multiplied by millions. When we speak of men, societies, culture and objects, there are everywhere crowds of other agents that act, pursue aims unknown to us, and use us to prosper... [we] see nothing suspect, but millions of other [[individual]]s are moving around that we cannot see.
[[PF26]]
The prodigious developments given by Richet and his peers to what Pasteur was proposing must be attributed to them. They knew that they were going to [[amplify]] those [[proposition]]s with their own.
[[PF26]]
[ [[actor]]s] reorganize society with new actors who are not at all social... the exact [[science]]s elude social analysis not because they are distant or separated from [[society]], but because they revolutionize the very conception of society and what it comprises.
Generally "[[science]]" is never to be explained by itself. It is an ill-[[compose]]d [[entity]] which excludes most of the [[element]]s that allow it to exist. The [[social]] [[movement]] into which Pasteur inserted himself is a large part of the efficacy attributed to Pasteur's demonstrations.
We have to make room for not only microbes but for the revealers of microbes as well
[[PF37]]
[[PF38[[Pasteur]]ization as the "elimination of a parasite [microbe] by another more powerful one [hygiene is now everywhere the microbe was].
[[Pasteur]]ians are all creating-this is the important point-n[[new]] sources of [[power]] and new sources of legitimacy, which are irreducible to those that hitherto [[code]]d the so-called political space.
[sociology must become ]the [[science]] of [[association]]s. We cannot say of these associations whether they are human or natural, made up of [[microbe]]s or [[surplus value]] but that they are only [[strong]] or [[weak]].
[[PF39]]
[[prehension]]s of [[actual entity]]s... are termed [[physical prehension]]s; and prehensions of [[eternal object]]s are termed [[conceptual prehension]]s.
[[KPR p22-1]]
Physicists use the word "[[state]]"
to refer both to the [[physical state]] of a system and to the mathematical
representation of that physical state. This is harmless in physics, but
confusing in philosophy, where one is often trying to discuss the relationship
between the representation and the physical world. So where ambiguity
threatens, I will use the phrase "physical state" to refer to the state of the
physical world and the phrase "[[quantum state]]" to refer to the mathematical
representation in the theory
mechanics
[[Q9]]
The [[expression]] refers to the files where the paired comparisons between all the [[mode]]s are collected. At each intersection, the crossing is considered according to the same questionnaire. Each crossing records the opportunities by which the contrast between modes will become detectable. It goes without saying that not all of the 105 crossings provisionally identified receive the same attention; the wealth of the documentation depends on the importance of the friction between modes in the course of history and on the attention brought to bear on them by investigators.
- 2 -
For ease of reading, the order of crossings is always defined according to the following table: first group: [PRE], [MET], [HAB]; second group [TEC], [FIC], [REF], third group [POL], [LAW], [REL], fourth group [ATT], [ORG], [MOR], fifth group[NET], [PRE], [DC].
- 3 -
The simplified questionnaire common to each crossing addresses the following issues: 1) What are the handholds and trials particularly favorable to the detection of the contrast and of category mistakes (and what is the vocabulary specific to each crossing)? 2) How has this crossing been elaborated or instituted in the course of history? 3) What does the crossing tell us about the two modes of existence being compared? 4) What are the aims pursued by the investigation that will enable the crossing to be emphasized and instituted?
multiple bodies without organs can articulate onto one plane of consistency, what is the relationship between the [[Body Without Organs]] and the plane of consistency? That's on [[ATP p12-1]]
The only intensities known to the strata are dis[[continuous]], bound up in forms and substances; the only particles are divided into particles of content and [[article]]s of expression. The only deterritorialized flows are disjointed and [[reterritorialize]]d. Continuum of intensities, combined [[emission]] of particles or signs-particles, conjunction of deterritorialized flows: these are the three [[factor]]s proper to the plane of consistency; they are brought about by the abstract machine and are constitutive of destratification. [[ATP p70-2]]
In every respect, [[machinic assemblage]]s [[effectuate]] the [[abstract machine]] insofar as it is developed on the plane of consistency or enveloped in a stratum. [[ATP p71-1]]
it is flat
[[question]]
seems kinda [[molar]] in here. at least for my tastes
[[reference]], not [[consistency]]
A [[plateau]] is a piece of [[immanence]]. Every [[body without organs]] is made up of plateaus. Every BwO is itself a plateau in communication with other plateaus on the plane of consistency. The BwO is a [[component of passage]].
[[ATP p157/158-1]]
boox page numbers used
[[Winnicott]]
A [[perspective]] or [[point of view]] does not [[express]] my subjective
apprehension of the world right now, at this moment, but instead
constitutes a sort of [[system]] or [[structure]] which allows for this subjective
apprehension to take place.
prior tiddler too
[[DG153]]
...the fact that we must-precisely in order to see the [[world]] and to [[grasp]] it as [[paradox]]-[[rupture]] our familiarity with it, and this rupture can teach us nothing except the unmotivated springing forth of the world.
[[POP lxxiv]]
[[phenomenology]] is the study of [[essence]]s, such as the essence of [[perception]] or the essence of [[consciousness]].... places essences back within [[existence]] and thinks that the only way to understand man and the [[world]] is by beginning from their "[[facticity]]".... It is the attempt to provide a direct [[description]] of our [[experience]] such as it is, and without any consideration of its psychological [[genesis]] or of the [[causal]] explanations that the scientist, historian, or sociologist might offer of that experience... phenomenology allows itself to be practiced and recognized as a [[manner]] or [[style]], or that it exists as a [[movement]], prior to having reached a full philosophical consciousness.
To return to the things themselves is to return to this [[world]] prior to [[knowledge]], this world of which knowledge always [[speak]]s, and this world with regard to which every scientific determination is abstract, [[signitive]], and dependent... [above he says] "Rather, I am the [[absolute]] source" as opposed to science or any tradition, which "is the [[second-order]] [[expression]]" of that source. In between these two quotes "For I am the one who brings into being for myself... this tradition that I choose to take up or this [[horizon]] whose [[distance]] from me would collapse were I not there to sustain it with my [[gaze (since this distance does not belong to the horizon as one of its [[property]]s)."
[[POP lxx/lxxi-1]]
"the act of unifying as the [[foundation]] of the unified" The act of running as the foundation of the runner; the act of constitution as the foundation of the constituted. [[grammar]]
"the [[world]] is there prior to every [[analysis]] I make of it."
[[POP lxxii]]
The [[real]] is a tightly woven [[fabric]]; it does not wait for out [[judgement]]s in order to incorporate the most surprising of [[phenomena]], nor to reject the most convincing of our imaginings. [[perception]] is not a [[science]] of the [[world]], nor even an [[act]] or a deliberate taking of a stance; it is the [[background]] against which all acts stand out and is thus presupposed by them. The world is not an [[object]] whose law of constitution I have in my possession; it is the natural [[milieu]] and the [[field]] of all my [[thought]]s and of all my explicit perceptions. [[truth]] does not merely "dwell" in the "inner man"; or rather there is no "inner man," [[man]] is in and toward the world, and it is in the world that he knows himself. When I return to myself from the dogmatism of [[common sense]] or of [[science]], I do not find a [[source]] of intrinsic truth, but rather a [[subject]] destined to the world.
[[POP lxxiii]]
Separated [[essence]]s are the essences of [[language]]. It is the very [[function]] of language to make essences exist in a separation that is merely apparent, since through language they still rely upon the pre-[[predicate]]ive life of [[consciousness]].
[[POP lxvii]]
...we must not [[wonder]] if we truly perceive a [[world]]; rather, we must say: the [[world]] is what we perceive... To seek the [[essence]] of [[perception]] is not to declare that perception is presumed to be true, but rather that perception is defined as out access to the truth... The world is not what I think, but what I live; I am open to the world, I unquestionably communicate with it, but I do not possess it, it is inexhaustible.
[[POP lxxix]]
...[[Husserl]] distinguishes between [[act intentionality]]... and [[operative intentionality]]... Operative [[intentionality]] is the one that provides the [[text]] that our various [[form]]s of [[knowledge]] attempt to [[translate]] into precise [[language]]. The relation to the [[world]], such as it tirelessly announces within us, is not something that [[analysis]] might clarify; [[philosophy]] can simply place it before our eyes and invite us to take notice.
[[POP lxxx]]
The elementary [[event]] is already invested with a [[sense]], and the higher-level [[function]] will only achieve a more integrated [[mode]] of existence or a more valuable adaptation by utilizing and by sublimating the subordinate [[operation]]s.
[[POP p7-2]]
...the [[nature]] of the perceived is to tolerate a certain [[ambiguity]], a certain "shifting" or "haziness" and to allow itself to be shaped by the [[context]].
[[POP p10-1]]
...because we first perceive a [[whole]] as a thing, the analytic [[attitude]] can later [[discern]] [[resemblance]]s or [[contiguity]]s there.
[[POP p11-1]]
...[[perception]]['s].. essential [[function]], which is to establish or inaugurate [[knowledge]]...
[[POP p16-1]]
Prior to any contribution by [[memory]], that which is seen must currently be organized in such a way as to offer me a scene in which I can recognize my previous experiences. Thus, the appeal to memory presupposes what it is meant to explain... The evocation of memory becomes superfluous the moment that it is made possible
[[POP p17-1]]
"In order that I find a cat in a puzzle" or optical illusion, there must, in a [[sense]], the sense in which [[perception]] perceives, be a cat in the puzzle or illusion.
[[POP p20-1]]
To perceive is not to experience a multitude of impressions that bring along with them some [[memory]]s capable of completing them, it is to see an [[immanent]] [[sense]] bursting for from a [[constellation]] of givens without which no call to memory is possible. To remember is...
[[POP p22-1]]
a description of a [[disorder]] by which an individual cannot manage to locate a spot on the body being touched, but also does not mistake several different spots being touched as being the same, then "the [[primary]] [[operation]] of [[attention]], then, is to create for itself a [[perceptual]] or [[mental]] [[field]] that can be "surveyed" or "dominated," in which the movements of the exploratory [[organ]] and in which the [[evolution]]s of [[thought]] are possible without [[consciousness]] proportionally losing its acquisitions and without losing itself in the [[transformation]]s that itself provokes." this goes on to the next page, is excellent, "[[attention]] then, does not exist as a general and formal activity. There is in each case a particular freedom to gain and a particular mental space to keep in order."
[[POP p23-1]]
[[attention]], then, most be conceived on the model of these originary [[act]]s (evolution from little differentiation of color, to warm/cool and achromatic was the example given in the paragraph), since a [[second-order]] attention that [[limit]]ed itself to recalling an already acquired [[knowledge]] would refer us back to the acquisition itself. To pay attention is not merely to further clarify some preexisting givens; rather it is to realize in them a new [[articulation]] by taking them as [[figure]]s. They are only pre-formed as [[horizon]]s, they truly constitute new [[region]]s in the total [[world]]. The original s[[structure]] they introduce is precisely in what makes the [[identity]] of the [[object]] before and after the [[act]] of attention appear. Once the [[quality]] "color" is acquired, and only thanks to it, the previous givens appear as preparations for this quality. Once the idea of an equation is acquired, arithmetical identities appear as varieties of the same equation. The act of attention is linked to previous acts precisely by overthrowing the givens, and the unity of consciousness is gradually constructed in this way... The miracle of [[consciousness]] is to make [[phenomena]] appear through attention that reestablish the objects unity in a new [[dimension]] at the very moment they destroy that unity... attention is the active constitution of a new object that develops and thematizes what was until then only offered as an indeterminate horizon. At the same time that it sets attention to work, the object is continuously recaptured by attention, and reestablished as subordinate to it. The object only gives rise to the "knowing [[event]]" that will transform it through the still [[ambiguous]] sense that it offers to attention as needing-to-be-determined, such that the object is the motive [motif] of and not the cause of this event.
[[discernibilization]] [[discernment]] link to the [[refrain]]
[[POP p31-1]]
distance to an object is not a property of the object, yet it is a part of the whole insomuch as we perceive it along with the object. "perception does not merely discover the [[sense]] they [givens] have, but rather, sees to it that they have a sense."
[[POP p32/33-1]]
The perceptual "something" is always in the middle of some other thing, it always belongs to a "[[field]]." A truly homogenous area, offering nothing to perceive, cannot be given to any perception. The [[structure]] of actual [[perception]] alone can teach us what it is to perceive...
Pure impression is not merely undiscoverable, but imperceptible... [[Merleau-Ponty]] has no [[body without organs]]
[[POP lxxxii]]
[part of?] [[consciousness]] as shifting constantly from seeing to knowing. "seeing" to "knowing" is how it is in the text.
[[POP p38-1]]
...[[perception]] is an [[originary]] [[knowledge]]. There is an empirical or [[second-order]] perception-the one that we exercise at each moment-that, because it is chock-full of previous [[acquisition]]s and plays out, so to speak, on the [[surface]] of [[being]], hides this [[fundamental]] [[phenomenon]] from us.
[[POP p40-1]]
[colors] are not [[sensation]]s, they are the [[sensible]]s, and [[quality]] is not an [[element]] of [[consciousness]], but a property of the object.... When we want to analyze [[perception]], we transport these objects into consciousness... We build perception out of the perceived. And since the perceived is obviously only accessible through perception, in the end we understand neither...the quality is never directly experienced, and all conscoiusness is consciousness of something.
[[POP p4-1]]
[[sensation]] is not [[impression]] or [[quality]]
[[POP p5-1]]
The [[visible]] is what we grasp WITH our eyes; the [[sensible]] is what we grasp THROUGH our [[sense]]s.
[[POP p7-1]]
We have to think in terms of [[population]]s, not [[individual]]s.
[[ATP10 p8-1]]
The positions are characterised by different [[topology]]cal [[dimension]]s;
Deleuze speaks of the [[depth]]s, [[height]]s, physical and metaphysical [[surface]]s.
The different positions are also characterised by different internal objects or
[[phantasm]]s. Deleuze analyses the working of [[simulacra,]] the object of the
heights, the [[image]]s, amongst which are the image of the [[phallus]] and in the
end, the phantasm proper. We will notice that these positions lead to
experiences of [[pleasure]], [[tension]], [[fear]] and [[aggression]]. We will also observe
that they are characterised by different ways in which to deal with the
negative experiences. We will see, for example, that the fears of the [[schizoid position]] may be overcome by the continuous [[introjection]]s of good [[partial object]]s or by the construction of the simulacrum of the body, without organs.
A weak ego, continually threatened by [[bad]] partial objects, can introject [[good]]
partial objects or reject the mechanism of introjections completely.
[[DD22]]
For both [[Deleuze]] and [[Klein]], a
[[position]] is a systematic manner in which the [[ego]] relates to the surrounding
[[world]]. Its interactions are mediated by various internal objects. These
[[object]]s are not grafted onto the desiring [[body]] from the outside but [[emerge]]
out of the process of continual interaction of the body with the outside world.
[[DD30]]
Positive feedback means the [[amplify]]cation of [[deviation]]s. The [[cybernetic]] circuit is used to change a certain state that was produced by the system itself in a certain direction that amounts to a deviation from the original state find has a specific tendency. What is at issue is not the reduction of difference but, on the contrary, its increase. This amplification of deviation or positive feedback creates entirely different problems than [[negative feedback]]. What is at issue here has nothing to do with the stability of the system and with keeping certain values stable. Instead, it is a matter of changing the system and, more precisely, of change in specific directions.
[[IS36]]
[[positive reinforcement contingency]] (reinforcement)
• The response-contingent
• presentation of
• a reinforcer
• resulting in an increased frequency of that response.
[[P8 25]]
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X5HIEs0gCZMNb7b5OYTOE2/SBDx0d7xGUb8ikSWpXjCC0lhhbkIXnqBfcD3NYve98SpF/YpElq6EGehXvUxnnjjwyP5aOLIL2olXKepXJLJkJQxcebllT6pz+VRkQWcPLJ2neutt9zy4c0/Ur0gkUmEgBzexZ6NluUGNBAkRkG6wR489osal0Eex78Dkb3z8i1+++WtRvyKRyIkUEr7O1VcUB4+CIGAQSINwGOwND/0pqTD3gj/PW26754brr73ltntmZhcWP/hUb+87MLl1247TPs7WbTtO/syoX5HIeS9hbs214XiwIljZMCE1uIYkNbRynfoxULzgT/LLN3/twx98d39f8467ti+mk29416+VYvS5L37lNz/+xVLFbvyVT37iD27aun3HG37+12697Z7yk2/8lU++88bf+dCvf/b2u7a94V2/9uWbv/6sn4mPr5hIZAnplxmTPpm4UOf2yeCYlCPd0oS02OP08E4OXf7CzhLdets9qydGV0+MvvX1V37p5q+95/prAbzn+mtvue3u3/z4F9/33rff+tW7//Km3wXwrz9zU39v8/Of/giAt77+ynfe+DvXXLV59cQogP6+6uOXXrz+E5+56X3vfVuMvyKRF4eG0b/0veHQLBEAwEDXS9frV9Zs3/eNP23x2rptx8kJ4C233f3+974dwFvecNWDO/fsO1DZk33+9z+ydfuOD330s5//9Ef6+5oAbr9r+3veeV35t1suXrfl4nW331nFa9dctaV8Y/XE6HNJIWP8FYksMczQu561VTo7J719sBySwA+jNqPtvb59BLXx0nj6eWXfgclbbrvn9ju3XXrxuve99+2LHyyLVrfcVvXTfunmr/32P7+xDKlWT4zuOzBZileZP/b3NhcfsL+vOTO3cG6fZNSvSGQJRmDiNr5Cd3+dfQO0DAa4XpOmNGvh0dvl0hthz5edzszswh13bf/SzV/r72vecP11N33htxb1qFSr9733baVgAfjEZ266487t5buf+MxNayZGr7lq86/8+me/etPvljHXYnQGYN/+yS3vXXdun23MHyORJYi4i34xFE1aCyEASteUZEwGe/Sx79vzUwC7/a7tv/nxL/78jb8zM7vwhU9/5KYv/NZ7rr/2ZPGamV249bZ7brj+usWP3HD9dXsPTN5+1/bb79p+x53bP/WxD3z4A++enV34xGdu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
The filtering or modification of the input is called [[assimilation]]; the modification of internal [[scheme]]s to fit [[reality]] is called [[accomodation]].
[[Psychology of The Child]]
Different types of [[assimilation]] are created;"reproductive or functional assimilation... generalizing assimilation [the [[generalization]] of behavior psych] and a recognitive assimilation (distinguishing the [object] from other objects).
[[POTC31]]
The system of sensorimotor [[scheme]]s of [[assimilation]] culminates in a kind of logic of action involving the establishment of relationships and correspondences (functions) and classification of schemes (cf. the logic of [[class]]es)...[[POTC32]]
Anna [[Freud]] has since clarified the concept of "[[primary narcissism]]" as an initial lack of differentiation between self and other...
[[POTC41]]
FN 2 A [[scheme]] is the [[structure]] or [[organization]] of [[action]]s ([[behavior]]s) as they are transferred or generalized by [[repetition]] in similar or analogous circumstances.
[[POTC53/54]]
'[[potentiality]]' is the
correlative of '[[givenness]].' The meaning of 'givenness' is that what is 'given'
might not have been '[[given]]'; and that what is not 'given' might have been
'given.'
[[P44]]
[[power]] [[apparatus]]es are essentially [[ramify]]ed [[arborescent]] [[structure]]s.
[[ATP10 p8-1]]
[[power]] is the very thing that
[[produce]]s the [[subject]].
[[DG190]]
...what I am referring to in this part of my work is... not so much the [[object]] used as the use of the object. I am [[drawing]] [[attention]] to the [[paradox]] involved in the use by the [[infant]] of what I have called the [[transitional]] object. [[Playing and Reality]]
This [[paradox]]... has value for every human individual who is not only alive and living in this world but who is also capable of being infinitely enriched by exploitation of the cultural link with the past and the future... the thing that I am referring to is [[universal]] and has [[infinite]] [[variety]].
[[PR12]]
[list of five things to be studied]
The nature of the object
The [[infant]]s capacity to recgonize the [[object]] as 'not-me'.
The place of the object - outside, inside, at the border
The infant's capacity to create, think up, devise, originate, [[produce]] an object
The initiation of an affectionate type of object relationship
I have introduced the terms 'transitional objects' and [[transitional]] [[phenomena]]' for the designation of the [[intermediate]] [[area]] of [[experience]], between the thumb and the teddy beat, between the oral erotism and the true [[object-relationship]], between primary creative activity and the [[projection]] of what has been [[introject]]ed
By this definition an infant's babbling and the way in which an older child goes over... tunes while preparing for sleep come witini the intermediate area as transitional phenomena, along with the use made of objects that are not part of the infants [[body]] yet are not fully recognized as belonging to an [[external]] [[reality]].
Of every [[individual]] who has reached the stage of being a unit with a limiting [[membrane]] and an outside and an inside, it can be said that there is an [inner]] reality to that individual...
My claim is that if there is a need for this double [[statement]], there is also a need for a triple one: the third part of the life of a human being, a part that we cannot ignore, is an intermediate area of experiencing, to which inner reality and external life both contribute. It is an area that is not challenged, because no claim is made on its behalf except that it shall exist as a resting-place for the individual engaged in the perpetual human task of keeping inner and outer reality serparate yet interrelated.
[[PR14]]
I am here staking a claim for an [[intermediate]] [[state]] between a baby's inability and his growing ability to recognize and accept [[reality]]. I am therefore studying the [[substance]] of [[illusion]], that which is allowed to the infant, and which in [[adult]] life is inherent in [[art]] and [[religion]], and yet becomes the hallmark of [[madness]] when an adult...[forces others] to acknowledge a [[share]]ing of illusion tahat is not their own. We can sure a respect for illusory [[experience]], and if we wish we may collect together and form a [group]] on the basis of the similarity of our illusory experiences. This is a natural root of grouping among human beings...
I am not specifically studying the first object of [[object-relationship]]s. I am concerned with the first [[possession]], and with the intermediate [[area]] between the [[subjective]] and that which is [[objective]]ly perceived.
[[PR18]]
[20] There is plenty of reference in psychoanalytic literature to the progress from 'hand to mouth' to 'hand to genital' but perhaps less to the handling of truly not-me [[object]]s. Sooner or later in an infant's [[develop]]ment there comes a [[tendency]] on the part of the infant to [[weave]] other than-me-objects into the [[personal pattern]].
some examples offered alongside thumb-sucking; with the other hand [he] takes an [[external]] object, say a part of a sheet or blanket, into the mouth along with the fingers,
somehow or other the bit of cloth is held and sucked, or not actually sucked; the objects used naturally [21] include napkins... this depends on what is readily and reliably available.. 2 more follow of the same sort
All these things I am calling [[transitional]] [[phenomena]]. Also, out of all of this (if we study one infnat) there may [[emerge]] some thing or some phenomenon perhaps a bundle of wool or the corner of a blanket... or a word or tune, or a mannerism-that becomes vitally important to the infant for use at time of going to sleep, and is a defense against anxiety... PErhaps some soft object... has been found and used by the infant, and this then becomes what I am calling a transitional object. This object goes on being important... the mother lets it get dirty and even smelly, knowing that by washing it she introduces a break in [[continuity]] in the infants [[experience]], a break that may destroy the [[meaning]] and [[value]] of the object to the infant... begins to show @ 4-12mos [the pattern may persist into childhood]
In health, however, there is a gradual [[extension]] of the range of interest, and eventually the extended range is maintained, even when depressive anxiety is near.
[[PR20]]
Sumary of special qualities of the relationship
The [[infant]] assumes rights over the [[object]], and we agree to this assumption. Nevertheless, some abrogation of [[omnipotence]] is a feature from the start.
The object is affectionaately cuddled as well as excitedly loved and mutilated
It must never [[change]], unless changed by the infant
It must survive instinctual loving, and also hating and, if it be a feature, pure [[aggression]].
Yet it must seem to the infant to give warmth, or to move, or to have texture, or to do something that seems to show it has [[vital]]ity or [[reality]] of its own.
It comes from without from our [[point of view]], but not so from the PoV of the baby. Neither does it come from within; it is not a [[hallucination]].
Its fate is to be gradually allowed to be [[decathect]]ed, so that in the course of years it becomes not so much forgotten as relegated to limbo. By this I mean that in health the [[transitional]] object does not go 'inside' nor does the feeling about it necessarily undergo [[repress]]ion. It is not forgotten and it is not mourned. It loses [[meaning]], and this is because the transitional [[phenomena]] have become [[diffuse]]d, have become spread out over the whole intermediate [[territory]] between 'inner [[psychic]] reality' and 'the external world as perceived by two persons in common', that is to say, over the whole cultural [[field]].
At this point my [[subject]] widens out into that of [[play]], and of [a[rt]]istic [[creativity]] and appreciation, and of religious feeling, and of [[dream]]ing, and also of [[fetish]]ism, lying and stealing, the origin and loss of affectionate [25] feeling, [[drug]] [[addiction]], the talisman of obsessional rituals, etc.
something about [[symbolism]] on p25 is quite interesting. Idk, make symbols, then develop them according tot heir own logic.
[[PR21]]
[[case study]] It will be noted that this 11yr old boy with the ordinary good [[reality]]-[[sense]] of his age spoke as if lacking in reality sense when describing the [[transitional]] [[object]]'s [[quality]]s and [[activity]]s.
[[PR23]]
The [[good-enough mother]]... starts off with an almost complete [[adapt]]ation to her [[infant]]'s needs, and as time proceeds she adapts less and less completely, gradually, according to the infant's growing ability to deal with her [[failure]].
[[PR28]]
If all goes well the [[infant]] can actually come to gain from the [[experience]] of [[frustration]], since incomplete [[adaptation]] makes [[object]]s [[real]], that is to say hated as well as loved.
[[perlocutionary]] [[digitus]]
The [[mother]], at the beginning, by an almost 100% [[adapt]]ation affords the infant the opportunity for the [[illusion]] that her [[breast]] is part of the infant... under the baby's [[magic]]al [[control]]... The mother's eventual task is gradually to dis[[illusion]] the infant, but she has no hope of success unless at first she has been able to give sufficient opportunity for illusion...
From birth, therefore, the human being is concerned with the problem of the relationship between what is objectively perceived and what is subjectively conceived of... The [[intermediate]] [[area]] to which I am referring is the area that is allowed to the infant between [[primary]] [[creativity]] and objective perception based on [[reality]]-testing. The transitional phenomena represent the early [[stage]]s of the use of illusion...
[[PR31]]
The [[mother]]'s [[adaptation]] to the [[infant]]'s needs, when good enough, gives the infant the [[illusion]] that there is an [[external]] [[reality]] that corresponds to the infants own capacity to [[create]]... there is an overlap between what the mother supplies and what the child might conceive of... Psychologically the infant takes from a breast that is part of the infant, and the mother gives milk to an infant that is part of herself.
[[PR33]]
...what I consider to be the main [[function]] of the [[transitional]] [[object]] and of transitional [[phenomena]]. The TO and the TP start each [[human]] being off with what will always be important for them, IE a neutral [[area]] of [[experience]] which will not be challenged. Of the transitional object it can be said that it is a [[matter]] of agreement between us and the baby that we will never ask the [[question]]: 'Did you conceive of this or was it presented to you from without?' The important point is that no decision on this point is to be expected. The question is not to be formulated.
[we experience it, it experiences us] [[reality principle]] of a certain [[Baudrillard]] slant here re the question in quotes. Transitional objects let us encounter the mother, let's us encounter the [[digitus]] and be encountered by, and on, the digitus.
This [[problem]], which undoubtedly concerns the human [[infant]] in a hidden way at the beginning, gradually becomes an obvious problem on account of the fact that the mother's main task (next to providing opportunities for [[illusion]]) is disillusionment... In other words, this matter of illusion is one that belongs inherently to human beings and that no individual finally solves for himself...
[[PR34]]
In infancy this [[intermediate]] [[area]] is necessary for the initiation of a relationship between the child and [37] the [[world]], and is made [[possible]] by [[good-enough mother]]ing at the early [[critical]] phase. Essential to all of this is the [[continuity]] (in [[time]]) of the [[external]] [[emotion]]al [[environment]] and of particular [[element]]s in the physical environment such as the transitional [[object]] or objects.
essential [[component]]s for the phenomena. We are Good enough mothers and transitional objects/are sites the spaces-heterogeneity of sites like insta, need cameras, real life events and social grids, comments, lives in the environment of the human, attached to data tracking across sites,mobile phone data gathering, etc
[[summary]] section next
This intermediate area of experience, unchallenged in respect of its belonging to [[inner]] or [[external]] )(shared) [[reality]], constitutes the greater part of the infant's experience, and throughout life is retained in the [[intense]] experience that belongs to the [a[rt]]s and to [[religion]]...
[39] It is not the object, of course, that is transitional. The object represents the infant's transition from a state of being [[merge]]d with the mother to a state of being in relation to the mother as something outside and separate.
[[PR35]]
[[strum]] [[Latour]] [[baboon]]s the way the kids representation of the mother 'dies' if she's gone for too long is here
[[PR37]]
Death of the mother "has to do with the time just before the child has built up the ability to bring people alive in the [[inner]] [[psychic]] [[reality]] apart from the reassurance of seeing, feeling, smelling.
[54] the [[symbol]]ism of the [[transitional]] is real, but the girl knows that what it represents is not. "and all these were symbolical of something and were real for the child; but gradually... she had to doubt the reality of the thing they were symbolizing.
[[PR39]]
When I come to state my thesis I find, as so often, that it is very simple, and that not many [[word]]s are needed to cover the subject. [[psychotherapy]] takes place in the overlap of two areas of [[play]]ing, that of the [[patient]] and that of the [[therapist]]. Psychotherapy has to do with two people [[play]]ing together. The corollary of this is that where playing is not possible then the work done by the therapist is directed towards bringing the patient from a state of not being able to play into a [[state]] of being able to play.
Milner was referring to a 'prelogical fusion of subject and object'. I am trying to [[distinguish]] between this fusion and the fusion or defusion of the subjective object and the object objectively conceived.
[[PR51]]
Whatever I am saying about children [[playing]] really applies to adults as well, only the matter is more difficult to describe when the patient's [[material]] appears mainly in terms of verbal communication. I suggest that we must expect to find playing just as evident in the analyses of adults as it is int he case of our work with children. It manifests itself, for instance, in the choice of words, in the inflections of the voice, and indeed in the sense of humour.
...I make my idea of play concrete by claiming that playing has a [[place]] and a [[time]]. It is not [[inside]] by any use of the word... Nor is it [[outside]], that is to say, it is not a part of the repudiated world. the note-me, that which that [[individual]] has decided to recognize [83] (with whatever difficulty and even pain) as truly [[external]], which is outside magical [[control]]. To control what is outside one has to do things, not simply to think or to wish, and doing things takes time. Playing is doing.
[[PR78]]
In order to give a place to [[play]]ing I postulated a [[potential]] [[space]] between the baby and the mother.
[he contrasts that to the internal space and external space/world]
[[PR81]]
what Edmund did was simply to display the [[idea]] that occupied his life while his mother and I were talking together. I did not interpret and I must assume that this child would have been liable to [[play]] just like this without there being anyone there to see or to receive the [[communication]], in which case it would perhaps have been a communication with some part of the [[self]], the [[observe]]ing [[ego]]. As it happened I was there [[mirror]]ing what was taking place and thus it a quality of communication.
[[PR83]]
When a [[patient]] cannot [[play]] the [[therapist]] must attend to this major [[symptom]] before [[interpret]]ing [[fragment]]s of [[behavior]].
[[PR86]]
The essential feature of my communication is this, that playing is an [[expression]], always a [[creative]] [[experience]], and it is an experience in the space-time continuum, a basic form of living. The precariousness of [[play]] belongs to the fact that it is always on the theoretical line between the [[subjective]] and that which is [[objective]]ly perceived. [[transitional]]
one of the defining characteristics of the current [[assemblage]] of hte [[digitus]] digital media is the lack of creative play. It is a wasteland of creativity.
[[PR94]]
good [[summary]]
[[PR97]]
...the fact that concepts are adequate only to [[individuate]]d [[real]]ity and not to [[pre-individual]] reality.
[[IFI p5/6-1]]
I have adopted the term prehension to express the activity whereby an actual entity effects its own concretion of other things
[[KPR p8-1]]
The pre-position, as the name suggests, is situated before the position to which it gives the [[interpretive key]] by indicating in advance how to understand what will follow, and what [[felicity condition]]s will be applicable to it.
- 2 -
The phrase is taken from James: "But from our point of view both Intellectualists and Sensationalists are wrong. If there be such things as feelings at all then so surely as relations between objects exist in rerum natura, so surely, and more surely, do feelings exist to which these relations are known. (...) We ought to say a feeling of 'and', a feeling of 'if', a feeling of 'but', and a feeling of 'by', quite as readily as we say a feeling of blue or a feeling of cold. Yet we do not: so inveterate has our habit become of recognizing the existence of the substantive parts alone, that language almost refuses to lend itself to any other use [JamesPrinciplesIp·245]." (James, 1892 [2003]) p.118.
- 3 -
The preposition engages all that follows it and yet doesn't participate directly in what follows; it is the term's ambiguity that defines a relationship without defining a [[domain]], without either being outside of the domain that it influences from beginning to end. A tricky metaphor: the use of the word "novel", "testimony" or "thesis" at the beginning of a text must be taken with caution because it is not the case that by changing this one word a reader might read the same text as a novel or as a testimony or as a thesis; this description, in the first place, influenced the author in the choice of each one of his phrases. This relationship, a continual influence without an explicit presence, is at the origin of this concept.
- 4 -
The dictionary definition is useful here: “noun, GRAMMAR, a word governing, and usually preceding, a noun or pronoun and expressing a relation to another word or element in the clause, as in 'the man on the platform', 'she arrived after dinner', 'what did you do it for'. ORIGIN later Middle English: from Latin praepositio(n-), from the verb praeponere, from prae 'before' + ponere 'to place'.” Oxford Dictionary of Linguistics.
- 5 -
"Prepositional" can be used as a substitute for transcendental. The transcendental tends towards conditions of possibility, with the risk of believing that this movement explains something about actual opportunities, whereas the prepositional directs attention towards the interpretive keys which, crucially, do not foresee anything about what follows, except for their type of veridiction.
- 6 -
“Radical empiricism takes conjunctive relations at their face value, holding them to as real as the terms united by them. The world it represents as a collection, some parts of which are conjunctively and other disjunctively related. Two parts, themselves disjoined, may nevertheless hang together by intermediaries which which they are severally connected, and the whole world eventually may hang together similarly, inasmuch as some path of conjunctive transition by which to pass from one to its parts to another may always be discernible. Such determinately various hanging-together may be called concatenated union, to distinguish it from the ’through and through’ type of union, ’each in all and all in each’ (union of total conflux, as one might call it), which monistic systems hold to obtain when things are taken in their absolute reality. In a concatenated world a partial conflux is experienced. Our concepts and our sensations are confluent; successive states of the same ego, and feelings of the same body are confluent. Where the experience is not in conflux, it may be of conterminousness (things with but one thing between); or of contiguousness (nothing between); or of likeness; or of nearness; or of simultaneousness; or of in-ness; or of on-ness; or of for-ness; or of simple with-ness; or even of mere and-ness, which last relations would make of however disjointed a world otherwise, at any rate for that occasion a universe of ’discourse’. Now Mr Bradley tells us that none of these relations, as we actually experience them can possibly be real.” (James, 1996) p. 107-108.
- 7 -
“Against this rationalistic tendency to treat experience as chopped up into discontinuous static objects, radical empiricism protests. It insists on taking conjunctions at their ’face value’, just as they come. Consider for example, such conjunctions as ’and’, ’with’, ’near’, ’plus’, ’towards’. While we live in such conjunctions our state is one of transition in the most literal sense. We are expectant of a ’more’ to come, and before the more has come, the transition, nevertheless, is directed towards it. (..) We can not, it is true, name our different living ’ands’ or ’withs’ except by naming the different terms towards which they are moving us, but we live their specifications and differences before those terms explicitly arrive. Thus, though the various ’ands’ are all bilateral relations, each requiring a term ad quem to define it when viewed in retrospect and articulately conceived, yet in its living moment any one of them may be treated as if it ’stuck out’ from its terms a quo and pointed in a special direction, much as a compass needle (to use Mr Bode’s excellent simile) points at the pole even though it stirs not from its box” (James, 1996) p. 237-238.
[[nondiscursive]]/[[implicit]] :the immanent relation between statements and acts
belonging to the present time of perception
The [[potential]]ity for being an [[element]] is a [[real]] [[concrescence]] of many [[entity]]s into one [[actual]]ity, is the one general metaphysical character attaching to all entities, actual and non-actual ([[virtual]]) [ie to [[actual entity]]s and [[eternal object]]s]. Every item in its [[universe]] is involved in each concrescence. In other words, it belongs to the nature of a [[being]] that it is a potential for every [[becoming]]. This is the [[principle of relativity]]. It asserts that the [[notion]] of an entity means 'an element contributory to the [[process]] of becoming.'
[[KPR p23-1]]
Our basic [[datum]] is not the occurrence of a given [[response]] as such, but the [[probability]] that it will occur at a given time. Every verbal [[operant]] may be conceived of as having under specified circumstances an assignable probability of [[emission]]—conveniently called its “[[strength]].” We base the notion of strength upon several kinds of evidence. [[antecedent]]
[[VB55]]
[[problem]]s as [[genetic]] instances presiding over the production
of [[solution]]s
[[DG154]]
oh so very important of a word
A thing exists in time
This is the first [[meaning]] of process as we use the [[term]]: incorporating [[recording]] and [[consumption]] within [[production]] itself, thus making them the productions of one and the same process. [[AO4]]
What does process mean in this [[sense]]? Process is a movement of a trip insofar as the [[trajectory]] does not pre-exist, that is, insofar as it [[trace]]s its own trajectory. In a certain way, we called it a [[line of flight]]. This is [[tracing]] lines of flight, and lines of flight do not p[re-exist their own trajectory.
...the [[unconscious]]... its business is elsewhere. The process is ultimately the [[emission]] of any flows whatsoever.
[[Ref1 p4-1]]
...[[process]] is a [[movement]] that has neither purpose, nor goal, that has only one [[object]]: its own fulfillment, that is, the [[emission]] of [[flow]]s corresponding to it.
[[Ref1 p13-1]]
by Tandy J. Miller, Thomas H. McQlashan, Joanna L. Rosen, Kristen Cadenhead, Joseph Ventura, William McFarlane, Diana O. Perkins, Qodfrey D. Pearlson, and Scott W. Woods
Year: 2003
Abstract: As the number of studies related to the early identification of and intervention in the schizophrenia prodrome continues to grow, it becomes increasingly critical to
develop methods to diagnose this new clinical entity with validity. Furthermore, given the low incidence of patients and the need for multisite collaboration, diagnostic and symptom severity reliability is also crucial. This article provides further data on these psychometric
parameters for the prodromal assessment instruments developed by the Prevention through Risk Identification, Management, and Education (PRIME) prodromal research team at Yale University: the Structured Interview for Prodromal Syndromes and the Scale of Prodromal Symptoms. It also presents data suggesting that excellent interrater reliability can be established for diagnosis in a day-and-a-half-long training workshop.
What we see: [[schizophrenia prodrome]] is a field of research in ongoing development, and clinical work (that is to say, not just research) and also an entity, with identification and intervention being operations of the machine, in addition to operations being established on the from the basis of needing [[validity]] of 'methods of diagnosis' [[develop]]ed. Need for multisite collaboration- also means [[reliability]] "is also crucial." This enables the [[netowrk]]ing together of [[site]]s as well as [[form]]s and [[vehicle]]s that travel between sites-less messy, allows this [[machine]] to function better as a [[megamachine]] whereby each site emits its own work, but has the ability to [[translate]] and [[transform]] it in order to [[circulate]] and send off its work.
also move from universal to particular in first sentence
The [[temporal scale]] makes a first appearance: "presents data suggesting that excellent interrater reliability can be established for diagnosis in a day-and-a-half-long training workshop."
The three syndromes were described [by YUNG] as (1) frankly psychotic positive symptoms that appeared too brief and too intermittent to constitute a fully psychotic syndrome, (2) attenuated positive symptoms, and (3) functional decline in the presence of genetic risk.
The PRIME prodromal research team at Yale University has developed two instruments to rate and track these phenomena cross-sectionally and over time
given substance of yung prodromal, new forms proliferate for longitudinal and cross sections
The SIPS is a structured diagnostic interview used to diagnose the three prodromal syndromes and may be thought of as analogous to the Structured Clinical Interview for DSM-IV (SCID) or other structured diagnostic interviews. The SIPS includes the SOPS, the Schizotypal Personality Disorder Checklist (APA 1994), a family history questionnaire Andreasen et al. 1977), and a well-anchored version of the Global Assessment of Functioning scale (GAF; Hall 1995). The SIPS also includes operational definitions of the three prodromal syndromes (the Criteria of Prodromal Syndromes [COPS]) and an operational definition of psychosis onset (Presence of Psychotic Syndrome [POPS]). As part of the SIPS, the COPS and the POPS are applied to the information from the positive symptoms of the SOPS, the Schizo-
typal Personality Disorder Checklist, and the family history questionnaire to diagnose a prodromal syndrome or the presence of psychosis
Sips comes from the YALE PRIME lab [[site]]
[2]
The SOPS is a 19-item scale designed to measure the severity of prodromal symptoms and changes over time
[3]
modifies COPS from yung and compares it to CAARMS used by yung and describes the 3 prodromal symptoms
[5]
Studies of the prodromal phase to first onset depend on the ability to reliably and validly diagnose patients in this phase with standardized criteria. Progress also depends on the ability to track symptomatic changes over time and to define operationally the point of conversionfrom "prepsychotic" to psychotic levels of symptom intensity. Because psychosis emerges in a dimensional fashion, the specific "point" of conversion from nonpsychosis to
psychosis has never been defined. Any definition is, to some extent, arbitrary. Nevertheless, for valid research to proceed, it is necessary for the field to develop a definition that can be operationalized and applied reliably.
[7
we now recommend that the SIPS be used in conjunction with another, more general diagnostic measure, such as the SCTD.
-------------------------------------------------------------------------------------------------------------
Follow ups
Papers: yung et al 1996, 1998
[[temporal scale]] [[SIPS]] [[SOPS]] [[PRIME]] [[yale]]
[[CHR papers stratoanalysis]]
related to the [[three syntheses]], generally the first [[connective synthesis]]
related to the [[connective synthesis]]
[[proletarianization]], that is, the [[question]] of the destruction of [[knowledge]] that results from its [[exterior]]ization, the latter being nevertheless the fundamental [[condition]] of the constitution of all [[knowledge]]
[[exosomatization]] [[NL p24-1]]
retentions are what one retains, as such they form memories
protentions are expectations in all their forms,. Algorithms enable psychic protentions to be shirt-circuited, and replaced with automatic protentions
[[Wolfe]]
Boox page numbers
...three criteria [for an alphabet] : a limited number of letters or characters (the optimal range was between twenty and thirty characters), a comprehensive set of characters capable of conveying the minimal sound units of the language, and a complete correspondence between each phoneme in the language and each visual sign or letter.
[alterantive]: any system that can denote the smallest segments of sounds analyzable by the
human ear in an [[oral]] [[language]]—as opposed to larger [[segment]]s such as syllables or whole words can be considered an alphabet.
[[segmentarity]]
[[PS93]]
Lev Vygotsky said, the act of putting spoken words and unspoken thoughts into written words releases and, in the process, changes the thoughts themselves. As humans learned to use written language more and more precisely to convey their thoughts, their capacity for abstract thought and novel ideas accelerated...
From a cognitive perspective, therefore, it is again not that the alphabet uniquely contributed to the production of novel thought, but rather that the increased efficiency brought about by alphabetic and syllabary systems made [[novel]] thought more possible for more people, and at an earlier stage of the novice reader’s development. This, then, marks the revolution in our intellectual history: the beginning democratization of the young reading brain. Within such a broadened context, there can be no surprise that one of the most profound and prolific periods of writing, art, philosophy, theater, and science in all of previously recorded history accompanied the spread of the Greek alphabet.
[[PS99]]
...three major jobs of the [[reading]] [[brain]] are [[recognize]]ing [[pattern]]s, [[plan]]ning [[strategy]], and feelings.
[[PS109]]
[[human]] beings [[invent]]de [[read]]ing only a few thousand years ago. And with this [[invention]], we rearranged the very [[organization]] of our [[brain]]]... [reading] could only come about because of the human brain's extraordinary ability to make new [[connection]]s among existing [[structure]]s, a [[process]] made [[possible]] by the brain's [[ability]] to be [[shape]]d by [[experience]]. The [[plasticity]] at the heart of the brains design forms the basis for much of who we are, and who we might [[become]].
[[Proust and the Squid]]
[[reading]] can only be [[learn]]ed because of the [[brain]]s [[plastic]] [[design]], and when reading takes place, that individual brain is changed forever, both physiologically and intellectually.... a person who learns to reading in Chinese uses a very particular [[set]] of [[neuronal]] [[connection]]s that differ in significant ways from the [[pathway]]s used in reading English. When Chinese readers first try to read in English, their brains attempt to use Chinese-based neuronal pathways. The act of [[learning]] to read Chinese characters has literally shaped the Chinese reading brain.
[[PS26]]
...the [[reading]] [[process]] offers an example... of a recently acquired [[culture]]al [[invention]] that requires something [[new]] from existing [[structure]]s in the [[brain]]...[[PS28]]
While [[reading]], we can leave our own [[consciousness]], and [[pass]] over into the consciousness of another [[person]], another [[age]], another [[culture]]. "Passing over," a term used by the theologian John [[Dunne]], describes the [[process]] through which reading enables use to try on, [[identify]] with, and ultimately enter for a brief [[time]] the wholly different [[perspective]] of another person's consciousness.
[should be generalized to all [[art]], opened up to all of the [[cosmos]], and not just the [[mind]] of another person. further, what is it to 'read'? Surely, at the level of the [[brain]], it's not reducible to the vulgarization of reading qua book time.]
[[PS30]]
[23]... an [[array]] of [[mental]] or [[cognitive]] [[process]]es: [[attention]], [[memory]]; and [[visual]], [[auditory]], and [[linguistic]] processes... attentional and [[executive]] systems [begin to plan to read].. visual system swooped into action quickly across the page, forwarding its gleanings about [[letter]] [[shape]]s, [[word]] [[form]]s, and common [[phrase]]s to [[linguistic]] systems awaiting the [34] information. These systems rapidly connected subtly [[differentiate]]d [[visual]] [[symbol]]s with essential [[information]] about the [[sound]]s contained in these words.
Without a single moment of [[conscious]] [[awareness,]] you applied highly [[automatic]] [[rule]]s about the sounds of [[letter]]s in the English [[writing]] system, and use a great many linguistic processes to do so. This is the essence of what is called the [[alphabetic principle]], and it depends on your brain's uncanny ability to learn to [[connect]] and [[integrate]] at rapid-fire [[speed]]s what it sees and what it hears to what it knows...
...when you read... your word [[mean]]ing, or [[semantic]], systems contributed every [[possible]] meaning of each word you read and incorporated the exact correct meaning for each word in its [[context... David [[Swinney]] helped uncover the fact that when we read a simple word like "bug", we [[activate]] not only the more common meaning... but also the bug's less frequent [[association]]s... the [[brain]] doesn't just find one simple meaning for a word; instead, it stimulates a veritable treasure trove of knowledge about that word and the many words [[relate]]d to it... this semantic [[dimension]] of reading depends on the riches we have already stored...
CHILDREN WITH A RICH REPERTOIRE OF WORDS AND THEIR ASSOCIATIONS WILL EXPERIENCE ANY [[TEXT]] OR ANY [[CONVERSATION]] IN WAYS THAT ARE SUBTLY DIFFERENT FROM CHILDREN WHO DO NOT HAVE THE SAME STORED WORDS AND [[CONCEPT]]S. [ [[HOMOGENIZATION]] ]
technical discussion of how reading something hard like [[Proust]] works
[35] as you linked all this linguistic and conceptual information, you generated your own inferences and hypotheses based on your own background knowledge and engagement... after you integrated all this visual, conceptual, and linguistic information with your background knowledge and inferences, you arrived at an [[understand]]ing...
[[PS32]]
All [[human]] [[behavior]]s rest on [[layer]]s on layers of teeming, underlying [[activity]]. Behaviorsa are based on [[cognitive]] prcesses, which are based on the rapid [[integration]] of [[information]] from very specific [[neurological]] [[structure]]s, which rely on billions of [[neuron]]s capable of trillions of [[possible]] [[connection]]s, which are programmed in large part by [[gene]]s...
Unlike its [[component]] parts such as [[vision]] and [[speech]], which are genetically [[organize]]d, [[reading]] has no direct genetic [[program]] passing it on to future generations... the next four layers involved [those mentioned above] must [[learn]] how to [[form]] the necessary [[pathway]]s anew every time reading is acquired by an individual [[brain]].
[[PS34]]
..the [[reading]] [[brain]] exploited older [[neuronal]] [[pathway]]s... for [[connect]]ing [[vision]] to [[concept]]ual and [[linguistic]] [[functions]], for example connecting the quick recognition of a shape with the rapid inference that this footprint can signal danger...
When confronted, therefor, with the task of [[invent]]ing [[function]]s like [[literacy]] and [[numeracy]], our brain had at its disposal three ingenious [[design]] [[principle]]s: the [[capacity]] to make new connections among older structures; the capacity to form areas of exquisitely precise [[specialization]] for recognizing [[pattern]]s in [[information]]; and the ability to learn to [[recruit]] and connect information with these areas [[automatic]]ally.... these three principles of brain [[organization]] are the foundation for all of reading's [[evolution]], [[develop]]ment, and failure [ [[adaptation]], [[specialization]], new connections]
The elegant properties of the visual system provide an excellent example of how recycling existing [[visual]] [[circuit]]s made the development of reading possible. Visual cells possess the capacity to become highly specialized and highly specific, and to make new circuits among preexisting structures. This allows babies to come into the world with eyes that are almost ready to fire and that are exceptional examples of design and precision. Soon after birth, each neuron in the [[eye]]’s [[retina]] begins to correspond to a specific set of cells in the [[occipital]] lobes. Because of this design feature in our visual system, called [[retinotopic organization]], every line, diagonal, circle, or arc seen by the retina in the eye activates a specific, specialized location in the occipital lobes in a split second...
Critically, the combination of several innate capacities—for adaptation, for
specialization, and for making new connections—allowed our brain to make new pathways between visual areas and those areas serving the cognitive and linguistic processes that are essential to written [[language]].
[[PS36]]
The third principle exploited by [[reading]]—the capacity of the [[neuronal]] [[circuit]]s to become virtually [[automatic]]—incorporates the other two. This is what allowed you to fly across Proust’s passage and understand what you read. Becoming virtually automatic does not happen overnight and is not a characteristic of either a novice bird-watcher or a young novice reader. These circuits and pathways are created through hundreds or, in the case of some children with reading disabilities like dyslexia, thousands of exposures to letters and words. The neuronal pathways for recognizing letters, letter patterns, and words become automatic thanks to [[retinotopic organization]], object recognition capacities, and to one other extremely important dimension of brain organization: our ability to represent highly learned patterns of information in our specialized regions. For example, as the networks of cells responsible for recognizing letters and letter patterns learn to “fire together,” they create representations of their visual information that are far more rapidly retrieved.
...[[network]]s of [[cell]]s that have learned to work together over a long time produce representations of [[visual]] [[information]] even when this information isn't even in front of us... imagining letters results in activation of particular neurons in our [[visual]] [[cortex]].
What happens between our first exposure to letters and expert reading is very important to
scientists because it offers a unique opportunity to watch the orderly development of a cognitive process. The various features that characterize the visual system—enlisting older genetically programmed structures, recognizing patterns, creating discrete working groups of specialized neurons for particular representations, making circuit connections with great versatility, and achieving fluency through practice—are similar in all the other major cognitive and linguistic systems involved in reading. I will elaborate on this later...
[[PS38]]
...in many [[digital]] presentations, is there sufficient [[time]] or sufficient motivation to process the information [the way we do in reading a [[text]] ]? [[idiom]] [[individuation]] [[AoD]]
this associative domain is part of the generative quality at the heart of reading... "endless" [[form]]s [[evolve]] from [[finite]] [[principle]]s. [idiomatic individuation]
[[PS40]]
the [[generative]] capacity of [[reading]] parallels the fundamental [[plasticity]] in the [[circuit]] [[wiring]] of our [[brain]]s: both permit us to go beyond the [[particular]]s of the [[given]].
[[PS43]]
...the [[alphabetic]] [[principle]] represents the profound insight that each [[word]] in spoken [[language]] consists of a [[finite]] [[group]] of [[individual]] [[sound]]s that can be represented by a finite group of individual letters,
syntagmatic studding, transcendent plane of expression, etc, [[grammitization]]
[[PS45]]
Across every known system, writing began with a set of two or more epiphanies. First came a new form of symbolic representation, one level of abstraction more than earlier drawings: the amazing discovery that simple marked lines on clay tokens, stones, or turtle shells can represent either something concrete in the natural world, such as a sheep; or something abstract, such as a number or an answer from an oracle. With the second breakthrough came the insight that a system of symbols can be used to communicate across time and space, preserving the words and thoughts of an individual or an entire culture. The third epiphany, the most linguistically abstract, did not happen everywhere: sound-symbol correspondence represents the stunning realization that all words are actually composed of tiny individual sounds and that symbols can physically signify each of these sounds for every word. Examining how several of our ancestors made these leaps into early writing provides us with a special lens on ourselves. Understanding the origins of a new process helps us see,
as the neuroscientist Terry [[Deacon]] put it, “how it works.” Understanding how it works, in turn, helps us know what we possess and what we need to preserve.
[[grammitization]]
[[PS46]]
...the [[world]] of [[letter]]s may have begun as an [[envelope]] for the [[world]] of [[number]]s. [accounting as beginnings]
[[PS56]]
tokens reflected the [[emergence]] of a new human ability: the use of a form of symbolic representation, in which objects could be [[symbolize]]d by marks for the eye. To “[[read]]” a
symbol demanded two sets of novel connections: one cognitive-linguistic and the other cerebral. Among the long-established [[brain]] circuits for [[vision]], [[language]], and [[conceptualization]], new [[connection]]s developed and new [[retinotopic pathway]]s—between the eye and specialized [[visual]] area —became assigned to the tiny [[token]] [[mark]]s.
reading is an [[individuation]] of a new skill, of connecting [[disparate]] [[order]]s of objects to concepts. [[learn]]ing.
[[PS58]]
From Raichle’s, Poldrack’s, and Gabrieli’s work, we can infer that the likely physiological basis of our ancestors’ first reading of tokens was a tiny new [[circuit]]ry [[connect]]ing the angular gyrus region with a few nearby visual areas and if Dehaene is correct, a few parietal areas involved in numeracy and occipital-temporal areas involved in [[object recognition]] (i.e., area 37) (Figure 2-3). However rudimentary, a [[novel]] [[form]] of connectivity began with the use of tokens, and with it came our species’ earliest cognitive breakthrough in reading. By teaching new generations to use an increasing repertoire of symbols, our ancestors essentially passed on knowledge about the brain’s capability for adaptation and change. Our brain was preparing to read.
[connect this to the tool-forms of [[Leroi-Gourhan]] from [[Gesture and Speech]]-reading, as described here (and with the prior tiddler) is a [[cognitive]] [[process]] that inheres in all non-biological human activity. [[tertiary retention]].
pre-adapted systems. we are not born with these circuits but are born to make these circuits.
"...the [[angular gyrus]], described as the "association area of the [[association]] areas"..."
[[PS59]]
Toward the end of the fourth millenium BCE (3300-3200) a second breakthrough occurred: individual sumerin inscriptions developed into a cuneiform [[system]] and egyptian [[symbol]]s become a hieroglyphic system. [[abstract machine]] pops up at the same time in two places.
Found in [[sumer]]ian palaces, temples, and warehouses, this [[writing]] was originally [[invent]]ed and used largely for [[admin]]istration and [[account]]ing.
The [[Unorganism]] invents [[flow]]s of writing for it's own ends.
[[PS61]]
[[sumer]]ians had a myth to explain writing, [[default of origin]]-[[writing]] is never an [[invention]], it is always [[presupposed]] by the human, as it is a non-genetic requirement of our existence. no [[human]]s w/o it. The invention of writing precedes the invention of our species, it is an identifier of the human as such.
"...Sumerian writing system as a milestone in the evolution of writing. It was a true [[system]], with all that this implies for [[emerge]]ing [[cognitive]] skills in writer, [[reader]], and teacher. Although far more comprehensive than [[token]]s, the earliest signs in Sumerian cuneiform demanded only slightly more abstraction because they were generally pictographic (images that visually resembled the object represented). The pictographic characters were easily recognized by the visual system, which would require only a further match with an object name in the spoken language. Stanislas Dehaene observes that many of the symbols and letters used in writing and numerical systems around the world incorporate highly common visual shapes and features that correspond to objects in nature and our world. The French novelist Victor Hugo, quoted above, observed as much at the turn of the twentieth century. Hugo proposed that all letters originated from Egyptian hieroglyphs, which, in turn, stemmed from images in our world such as rivers, snakes, and lily stalks. These similar ideas between novelist and neuroscientists remain conjectural but they highlight the question of how the brain learned to recognize letters and words in the first place with such alacrity. In Dehaene’s evolutionary terms, early pictographic symbols, which utilized known shapes in the external world, “recycled” the circuits used for object recognition and naming. "
Disagree w/her evolutionism. We recognize these shapes in the world as we've learned them. No need to think that these clean Euclidean geometries are more natural than, say, [[fractal]] geometry. [[Writer]], reader, [[teacher]]. Always several [[face]]s of writing, never the one. action of relating shapes to words-[[Guattari]] should be introduced here?
This simple state of affairs didn’t last long, however. Soon after it originated, Sumerian cuneiform, mysteriously and rather astonishingly, became sophisticated. Symbols rapidly became less [[pictographic]] and more [[logographic]] and [[abstract]]. A logographic writing system directly conveys the [[concept]]s in the [[oral]] [[language]], rather than the sounds in the words. Over time many of the Sumerian characters also began to represent some of the syllables in oral Sumerian. This double function [[double articulation]] in a writing system is classified by [[linguist]]s as a [[logosyllabary]], and it makes a great many more demands on the [[brain]].
Next page introduces [[rebus principle]].
[[PS63]]
[[writing]] is excluded to a small [[caste]] du to the difficulty in [[education]]. [[PS65]]
[[egyptian]] [[writing]] changed "depending on the [[architecture]] of the [[structure]] they were [[inscribe]]ing.
[[PS79]]
The very different histories of the Egyptian and the Sumerian systems do not resolve whether [[writing]] was [[invent]]ed separately by each culture, or whether one system traveled to the other. Cumulative evidence around the world suggests that writing was invented at least three times in the last part of the fourth millennium BCE, and at least three more times in different parts of the world in later periods. In addition to the Egyptian and Sumerian systems, the Indus people’s system of writing evolved from potters’ [[mark]]s around 3300 BCE to a full script around 2500 BCE. This script remains undeciphered, and continues to defy valiant efforts to crack its code.
[[date]]
[[PS81]]
...larger [[question]]: are there significant intellectual resources unique to the [[alphabet]]-[[reading]] [[brain]]?
[[abcedary]]... any [[system]] that lists the [[letter]]s of a script in a fixed order.... also suggests some early schooling system that [[standard]]ized the [[learning]]...
[[PS83]]
the revolutionary contributions of the [[alphabet]] and the core principles of the third cognitive breakthrough in the history of writing: the development of a writing system that requires only a limited number of signs to convey the entire repertoire of sounds in a language. Through a reduction of the signs to be learned in their writing systems, both the Wadi el-Hol and the Ugaritic scripts achieve the advantages that come from [[cognitive efficiency]] and a more economical use of [[memory]] and effort in [[reading]] and [[writing]].
Cognitive efficiency depends on the third great feature of the [[brain]]: the ability of its specialized regions to reach a speed that is almost [[automatic]]. The implications of [[cognitive]] automaticity for human intellectual [[develop]]ment are potentially staggering. If we can recognize symbols at almost automatic [[speed]]s, we can allocate more [[time]] to mental processes that are continuously expanding when we read and write. The efficient reading brain, which took Sumerian, Akkadian, and Egyptian pupils years to develop, quite literally has more time to think.
The questions suggested by these earliest alphabet-like systems are complex: Does the reduction of signs lead to a unique form of cortical efficiency? Are special cognitive capacities released in the alphabet-reading brain?
[[speed]] mentioned above, [[Guattari]]
[[PS91]]
The astounding memory capacities of our Greek ancestors are one result. They remind us of the significant effects of culture on the [[develop]]ment of presumably [[innate]] [[cognitive]] [[process]]es, such as [[memory]].
[[PS 95]]
[170] Perhaps I should emphasize why I hold these [[second-order]] concepts to be so important: As soon as you with- draw to the area of the second-order—the understanding of understanding, the knowledge of knowledge—the first-order problems are suddenly illuminated in ways that you can’t perceive on the first level.
The purpose of [[purpose]] is the determination of [[goal]]s without having to consider the ways, routes, and trajectories right away. And that also hits on the point that Norbert [[Wiener]] and the early [[cybernetic]]ists recognized very decisively: What does the navigator who wants to get into the harbor do? In a purely physical way I can never determine what course the ship will take to get into the harbor. The wind is roaring from the left or right, obstacles sud- denly tower before you, other ships are crossing. Laying it out like this just isn’t possible. But as a rule the navigator manages to get the ship safely to harbor because he constantly sees the divergences from the course and can correct the steering—and in this way finally lands in the harbor. And that’s why the introduction of purpose makes cybernetic [171] and physical sense: It’s purposeful. It relieves me of the burden of having to constantly deal with the next step.
[purpose as [[continuous]] not [[discrete]] ]
[[HE169/170]]
[[quantum]] [[interference]] is discussed
[[QOxv]]
The
most straightforward way to introduce [[entanglement]] phenomena is in terms
of a property of [[particle]]s called [[spin]]. Some particles behave as if they have
angular momentum like spinning balls, and some charged particles behave
as if they have a magnetic [[field]] like spinning charged balls. One should
probably not take this image of spinning balls literally; for one thing we
have not established that quantum "particles" are little balls in any sense yet.
So for the moment we should ignore the implications of the name and forgo
trying to picture spin in any way at all
A central aspect of quantum phenomena is that many physical properties
are [[quantized]]-[[discrete]] rather than [[continuous]]. According to classical
mechanics, properties like energy and momentum can take a continuous
range of values. However, discoveries in the early 20th century suggested
that in fact these quantities can take only certain discrete values and not any
of the values in between. Indeed, it is these phenomena that provided the
initial motivation for the development of quantum mechanics, as well as the
name of the theory. But quantization as such is only mildly metaphysically
revolutionary: If the lesson of quantum mechanics is just that energy comes
in discrete chunks, then [[quantum metaphysics]] would be of only passing
interest. Interference and entanglement suggest that the lessons go much
deeper
[[quantity]] [[Difference and Repetition]] reminiscient of the [[clump]]y reality with all sorts of gaps from [[Millikan]] [[Beyond Concept]]s
Spin is no exception to [[quantization]]: The spin of a particle can only take
certain [[discrete]] values. For a charged particle like an electron, since its spin
is associated with a [[magnetic field]], these values can be measured by passing
the electron through another [[magnet]]ic field and observing the deflection
caused by the interaction of the fields. 2 What one finds is that every electron
exhibits one of two deflections: Either the electron is [[deflect]]ed upward by a
certain amount (relative to the direction of the external magnetic field), or it
is deflected downward by the same amount. That is, the spin of the electron
can take only two [[possible]] values relative to the external field, called (for
obvious reasons) "spin-up" and "[[spin]]-[[down]]." Particles of this kind-those
that can take only two spin values-are called [[spin-1/2]] particles)
[[Q1/6]]
in 1964, [[Bell]] proved that, subject to some physically and metaphysically
plausible assumptions, no such recipe exists; it is impossible to consistently
assign [[spin]] properties to the individual particles that reproduce the observed
[[distribution]] of measurements results (Bell 1964). Bell's theorem and its
consequences will be explained in Chapter 2, but the immediate import of
the theorem is that unless we can find a way to reject one of Bell's plausible
assumptions, we have to deny that the correlations manifested by the pair
of entangled particles can be explained in terms of the properties of the
individual particles
[[entanglement]]
[[math]] can't predict what the particles actually do-[[aleatory]] phenomena only known in reverse-[[dark precursor]]s? [[Difference and Repetition]]
[[interference]] is more naturally represented using [[wave]] mechanics,
whereas entanglement of [[spin]]s is more naturally represented using [[matrix]]
Physicists use the word "[[state]]"
to refer both to the [[physical state]] of a system and to the mathematical
representation of that physical state. This is harmless in physics, but
confusing in philosophy, where one is often trying to discuss the relationship
between the representation and the physical world. So where ambiguity
threatens, I will use the phrase "physical state" to refer to the state of the
physical world and the phrase "[[quantum state]]" to refer to the mathematical
representation in the theory
mechanics
[[Q7]]
[[quantum mechanics]] provides a level of physical theory at which a number of
interrelated conceptual difficulties appear, and it is the responses to these
conceptual difficulties that make quantum mechanics so metaphysically
revisionary. So while it is true that many theories can be regarded as
ubiquitous constraints on our experience, most of them are not terribly
interesting from a metaphysical point of view.
[[Quantum Ontology]]
A change in kind, rather than a change in [[quantitative]] [[state]], ie [[magnitude]], a [[number]] based increase of [[contain]]er and contained, ie 5 contains 4-1, an increase to 7 maintains this [[relation]]
[[quanta]] are precisely [[sign]]s or [[degree]]s of [[deterritorialize]]ation in the decoded flow. from [[ATP p219/220-1]]
Physicists use the word "[[state]]"
to refer both to the [[physical state]] of a system and to the mathematical
representation of that physical state. This is harmless in physics, but
confusing in philosophy, where one is often trying to discuss the relationship
between the representation and the physical world. So where ambiguity
threatens, I will use the phrase "physical state" to refer to the state of the
physical world and the phrase "[[quantum state]]" to refer to the mathematical
representation in the theory
mechanics
[[Q9]]
questions raised in a specific text or segment are marked with [[question]]
Rhizome 14-1; desire, the rhizome, and the disjunctive synthesis of AO
What is the relationship between a [[line]] and a [[point]]? Lines seem to precede points in[[A Thousand Plateaus]], in a sense all [[assemblage]]s are made of lines, and point are abstracted from lines. look at the last line of [[ATP p3/4-1]]
The most important [[problem]] of all: given a certain [[machinic assemblage]] what is its relation of effectuation with the [[abstract machine]]? How does it [[effectuate]] it, with what adequation? Classify [[assemblage]]s. What we call the [[mechanosphere]] is the set of all abstract machines and [[machinic assemblage]]s outside the [[strata]], on the strata, [[between]] strata. [[ATP p71/72-1]]
First project of the [[DrG]] lab
[[CHR papers stratoanalysis]]
[[PSY]]
...[[generality]] expresses a [[point of view]] according to which one term may be exchanged or substituted for another. The exchange or substitution of [[particular]]s defines our conduct in relation to generality.
[[repetition]] as a conduct and as a [[point of view]] concerns non-exchangeable]] and non-substitutable [[singularity]]s. Reflections, echoes, doubles, and souls do not belong to the domain of [[resemblance]] or [[equivalnce]]; and it is no more possible to exchange one's soul than it is to substitute real twins for one another. If exchange is the criterion of generality, [[theft]] and [[gift]] are those of repetition. There is, therefore, an economic difference between the two.
To repeat is to behave in a certain manner, but in relation to something [[unique]] or [[singular]] which has no equal or equivalent. And perhaps this repetition at the [[level]] of external conduct [[echoe]]s, for its own part, a more secret vibration which animates it, a more profound, internal repetition within the singular. This is the apparent [[paradox]]... repeat an 'unrepeatable.'... do not add a decent and a third time to the first, but carry the first to the 'nth' power. With respect to this power, repetition [[interior]]izes and thereby reverses itself... [[Monet]]'s first water lily which repeats all the others.
The repetition of a work of [[art]] is like a singularity without a [[concept]], and it is not by chance that a [[poem]] must be [2] learned by heart.
[[RDxxii]]
[[RDxxii]]
In the theatre of repetition, we experience pure [[force]]s, dynamic lines in space which act without intermediary upon the spirit, and link it directly with nature and history, with a language which speaks before words, with [[gesture]]s which develop before organised bodies, with [[mask]]s before faces, with spectres and phantoms before characters - the whole apparatus of [[repetition]] as a 'terrible power'.
[[RD9]]
Is it not true that the only dead who return are those whom one has buried too quickly and too deeply, without paying them the necessary respects, and that remorse testifies less to an excess of [[memory]] than to a powerlessness or to a failure in the working through of a memory? [[quote]]
There is a tragic and a comic repetition. Indeed, repetition always. appears twice, once in the tragic destiny and once in the comic aspect. In, the theatre, the hero repeats precisely because he is separated from an' essential, infinite knowledge. This knowledge is in him, it is immersed in' him and acts in him, but acts like something hidden, like a blocked representation. The difference between the comic and the tragic pertains to two elements: first, the nature of the repressed knowledge - in the one case. immediate natural knowledge, a simple given of common sense, in the other terrible esoteric knowledge; second, as a result, the manner in which . the character is excluded from this knowledge, the manner in which 'he does not know that he knows'. In general the practical problem consists in this: this unknown knowledge must be represented as bathing the whole scene, impregnating all the elements of the play and comprising in itself all the powers of mind and nature, but at the same time the hero cannot represent it to himself - on the contrary, he must enact it, play it and repeat it until the acute moment that Aristotle called 'recognition'. At this point, repetition and representation confront one another and merge, . without, however, confusing their two levels, the one reflecting itself in and being sustained by the other, the knowledge as it is represented on stage and as repeated by the actor then being recognised as the same. [[Marx]]
[[RD10]]
The first [[question]], then, is: How is it that the theme of [[death]], which appears to draw together the most negative elements of psychological life, can be in itself the most positive element, transcendentally positive, to the point of affirming [[repetition]]? How can it be related to a primordial instinct? But a second question immediately arises: Under what form is repetition affirmed and prescribed by the death instinct? Ultimately, it is a question of the relation , between [[repetition]] and [[disguise]]s. Do the disguises found in the work of dreams or symptoms - condensation, [[displace]]ment, [[dramatization]] -
rediscover while attenuating a [[bare]], brute repetition (repetition of the [[Same]])? From the first theory of repression, Freud indicated another path: Dora elaborates her own role, and repeats her love for the father, only through other roles filled by others, which she herself adopts in relation to those others (K., Frau K., the governess ...). The disguises and the variations, the [[mask]]s or costumes, do not come 'over and above': they are, on the contrary, the internal [[genetic]] elements of repetition itself, its integral and constituent parts. This path would have been able to lead the analysis of the [[unconscious]] towards a veritable theatre. However, if it did not do so, this was because [[Freud]] was unable to prevent himself maintaining the model of a brute repetition, at least as a tendency.
[[RD15]]
[[repetition]] is truly that which [[disguise]]s itself in constituting itself, that it
which constitutes itself only by disguising itself. It is not underneath the [[mask]]s, but is formed from one mask to another, as though from one distinctive [ [[singular]] ] point to another, from one privileged instant to another, with and within the variations. The masks do not hide anything except other masks. There is no first term which is repeated... [t]here is therefore nothing repeated which may be isolated or abstracted from the repetition in which it was formed, but in which it is also hidden. There is no [[bare]] repetition which may be abstracted or inferred from the disguise itself. The same thing is both disguising and disguised. A decisive moment in psychoanalysis occurred when Freud gave up, in certain respects, the hypothesis of real childhood events, which would have played the part of ultimate disguised terms, in order to substitute the power of fantasy which is immersed in the death instinct, where everything is already masked and disguised. In short, repetition is in its essence symbolic; symbols or [[simulacra]] are the letter of repetition itself. Difference is included in repetition by way of disguise and by the order of the symbol. This is why the variations do not come from without, do not express a secondary
compromise between a repressing instance and a repressed instance, and must not be understood on the basis of the still negative forms of opposition, reversal or overturning. The variations express, rather, the differential mechanisms which belong to the essence and origin of that which is repeated. We should even overturn the relations between 'covered' and 'uncovered' within repetition.
[[RD16/17]]
the mechanical element in the repetition, the [18] element of action apparently repeated, .serves as a cover for a more profound repetition, which is played in another dimension, a secret verticality in which the roles and masks are furnished by the death instinct... The [[mask]], the costume, the covered is everywhere the truth of the uncovered. The mask is the true subject of repetition. Because [[repetition]] differs in kind from [[representation]], the repeated cannot be represented: rather, it must always be signified, masked by what signifies it, itself masking what it signifies.
I do not repeat because I repress. I repress because I repeat, I forget
because I repeat. I repress, because I can live certain things or certain experiences only in the mode of repetition. I am determined to repress whatever would prevent me from living them thus: in particular, the representation which mediates the lived by relating it to the form of a similar or identical object. [[quote]]
[[RD17]]
Here as elsewhere, becoming conscious counts for little [[quote]]
If repetition makes us ill, it also heals us; if it enchains and destroys us, it also frees us, testifying in both cases to its '[[demon]]ic' power. All cure is a voyage to the bottom of [[repetition]]... repetition constitutes by i itself the selective game of our illness and our health, of our loss and our salvation... It seems that the idea of a death instinct must be understood in terms of three paradoxical and complementary requirements: to give repetition an original, positive principle, but also an autonomous disguising power; and finally, to give it an immanent meaning in which terror is closely mingled with the movement of selection and freedom.
Our problem concerns the [[essence]] of [[repetition]]. It is a question of knowing why repetition cannot be explained by the form of identity in concepts or representations; in what sense it demands a superior 'positive' principle.
bottom of 19 through 21 is such a great piece of [[writing]] [[example]]
[[RD18]]
[[repetition]] can always be 'represented' as extreme [[resemblance]] or perfect [[equivalence]], but the fact that one can pass by [[degree]]s from one thing to another does not prevent their being [[different]] in [[kind]].
...at each level, it is in relation to large, [seemingly] permanent natural objects that the subjectt of a [[law]] experiences its own powerlessness. [similar to [[Buddhism]]-having the longest [[sensation]] seem to be the permanence against which [[impermanence]] is measured]
If [[repetition]] is [[possible]], it is due to miracle rather than to [[law]]. It is against the law: against the similar form and the equivalent content of law. If repetition can be found, even in [[nature]], it is in the name of a power which affirms itself against the law, which works underneath laws, perhaps superior to laws. If repetition exists, it expresses at once a [[singularity]] opposed to the general, a universality opposed to the particular, a [[distinct]]ive opposed to the ordinary, an instantaneity opposed to variation [3] and an [[eternity]] opposed to permanence. In every respect, repetition is a [[transgression]]. It puts law into question, it denounces its nominal or general character in favour of a more profound and more artistic reality.
[[quote]]
[[RD1]]
the logical relation of causality is inseparable from a physical process of [[signal]]ling, without which it would not be translated into action. By 'signal' we mean a [[system]] with orders of [[disparate]] size, endowed with elements of dissym- metry; by '[[sign]]' we mean what happens within such a system, what flashes across the intervals when a communication takes place between disparates. The sjgn is indeed an effect, but an effect with two aspects: in one of these it expresses, qua sign, the productive dissymmetry; in the other it tends to cancel it. The sign is not entirely of the order of the symbol; nevertheless, it makes way for it by implying an internal difference (while leaving the con- ditions of its reproduction still external).
For in the dynamic order there is no representative concept, nor any figure represented in a pre-existing space. There is an [[Idea]], and a pure [[dynamism]] which creates a corresponding space. [[individuation]]
[[RD19]]
Take the example of [[rhyme]]: it is indeed verbal [[repetition]], but repetition which includes the difference between two words and inscribes that difference at the heart of a poetic [[Idea]], in a [[space]] which it determines.
[[RD20]]
The reproduction of the [[Same]] is not a motor of bodily movements. We know that even the simplest imitation involves a difference between [[inside]] and [[outside]]. Moreover, imitation plays only a secondary and regulatory role in the acquisition of a [[behavior]]: it permits the correction of movements being made, but not their instigation. [[learn]]ing takes place not in the relation between a representation and an action (reproduction of the Same) but in the relation between a [[sign]] and a [[response]] (encounter with the Other). Signs involve heterogeneity in at least three ways: first, in the object which bears or emits them, and is necessarily on a different level, as though there were two orders of size or disparate realities between which the sign flashes; secondly, in themselves, since a sign envelops another 'object' within the limits of the object which bears it, and incarnates a [23] natural or spiritual power (an Idea); finally, in the response they elicit, since the movement of the response does not 'resemble' that of the sign. The movement of the swimmer does not resemble that of the wave, in particular, the movements of the swimming instructor which we reproduce on the sand bear no relation to the movements of the wave, which we learn to deal with only by grasping the former in practice as signs. That is why it is so difficult to say how someone learns: there is an innate or acquired practical familiarity with signs, which means that there is something amorous - but also something fatal - about all education. We learn nothing from those who say: 'Do as I do'. Our only teachers are those who tell us to 'do with me', and are able to emit signs to be developed in heterogeneity rather than propose gestures for us to reproduce. In other words, there is no ideo-motivity, only sensory-motivity. When a body combines some of its own distinctive points with those of a wave, it espouses the principle of a repetition which is no longer that of the Same, but involves the Other - involves difference, from one wave and one gesture to another, and carries that difference through the repetitive space thereby constituted. To learn is indeed to constitute this space of an [[encounter]] with [[sign]]s, in which the distinctive points renew themselves in each other, and repetition takes shape while disguising itself.
Apprenticeship always gives rise to images of death, on the edges of the space it creates and with the help of the heterogeneity it engenders. Signs are deadly when they are lost in the distance, but also when they strike us with full force. Oedipus receives a sign once from too far away, once from too close, and between the two a terrible repetition of the crime is woven. Zarathustra receives his 'sign' either from too near or from too far, and only at the end does he foresee the correct distance which will turn that which in eternal return makes him ill into a liberatory and redemptive repetition. Signs are the true elements of theatre. They testify to the spiritual and natural powers which act beneath the words, gestures, characters and objects represented. They signify repetition as real movement, in opposition to representation which is a false movement of the abstract.
[[RD20]]
For there is no [[repetition]] without a repeater, nothing repeated without a repetitious [[soul]]. [[quote]]
[[RD22/23]]
the two [[repetition]]s are described t length
[[RD23]]
Why, however, do we feel that the problem is not properly defined so long as we look for the criterion of a principium [[individuation]]is in the facts? It is because a differ-nce can be internal, yet not conceptual (as the paradox of symmetrical objects shows). A dynamic space must be defined from the [[point of view]] of an [[observer]] tied to that space, not from an external position. There are internal differences which [[dramatize]] an [[Idea]] before representing an object. Difference here is internal to an Idea, even though it be external to the concept which represents an object.
Following certain neo-Kantian interpretations, there is a step-by-step, internal, dynamic construction of [[space]] which must precede the 'representation' of the whole as a form of exteriority. The element of this internal [[genesis]] seems to us to consist of [[intensive]] [[quantity]] rather than [[schema]], and to be related to Ideas rather than to concepts of the understanding. If the spatial order of extrin-ic differences and the conceptual order of intrinsic differences are finally in harmony, as the schema shows they are, this is ultimately due to this intensive [[differential]] element, this [[synthesis of continuity]] at a given moment which, in the form of a continua repetitio, first gives rise internally to the space corresponding to Ideas. With Leibniz, the affinity between extrinsic differences and intrinsic conceptual differences already appealed to the in- ternal process of a continua repetitio, grounded upon an intensive differen- tial element which ensures the synthesis of [[continuity]] at a point in order to engender space from within
[[RD23/25]]
Natural phenomena are produced in a free state, where any inference is possible among the vast cycles of resemblance: in this sense, everything reacts on everything else, and everything resembles everything else (resemblance of the diverse with itself). [[Bergson]] [[Matter and Memory]] [[facet]]s [[image]]s.
(what is important in principle is On' times as the power of a single time, without the need to pass through a
second or a third time). In its essence, [[repetition]] refers to a [[singular]] [[power]] which differs in kind from generality, even when, in order to appear, it takes advantage of the artificial passage from one [[order]] of generality to another.
[[RD2]]
[[RD2]]
[[individuation]] properly precedes [[matter]] and [[form]], [[species]] and [[part]]s, and every other [[element]] of the constituted [[individual]]. Univocity of being, in so far as it is immediately related to difference, demands that we show how individuating difference precedes generic, specific and even individual differences within being; how a prior field of individuation within being conditions at once the determination of species of forms, the determination of parts and their individual variations. If individuation does not take place either by form or by matter, neither qualitatively nor extensionally, this is not only because it differs in kind but because it is already presupposed by the forms, matters and extensive parts
[[RD26]]
It is useless to point to the existence of immoral or bad habits: it is the form of habit - or, as [[Bergson]] used to say, the [[habit]] of acquiring habits (the whole of obligation) - which is essentially moral or has the form of the good
[[second-order]] has the form of the good [[RD3]]
If repetition is possible, it is as much opposed to moral law as it is to natural law. There are two known ways to overturn moral law. One is by. ascending towards the principles: challenging the law as secondary, derived, borrowed or 'general'; denouncing it as involving a second-hand principle which diverts an original force or usurps an original power. The other way, by contrast, is to overturn the law by descending towards the consequences, to which one submits with a too-perfect attention to detail. By adopting the law, a falsely submissive soul manages to evade it and to taste pleasures it was supposed to forbid. We can see this in demonstration by absurdity and working to rule, but also in some forms of masochistic behaviour which mock by submission. The first way of overturning the law is ironic, where irony appears as an art of principles, of ascent towards the principles and of overturning principles. The second is humour, which is an art of consequences and descents, of suspensions and falls. Must we understand that repetition appears in both this suspense and this ascent, as though existence recommenced and 'reiterated' itself once it is no longer
constrained by laws? Repetition belongs to humour and irony; it is by nature transgression or exception, always revealing a singularity opposed to the particulars subsumed under laws, a universal opposed to the generalities which give rise to laws.
[[quote]]
[[RD4]]
Everywhere, couples and polarities presuppose bundles and [[network]]s, organised oppositions presuppose radiations in all directions. Stereoscopic images form no more than an even and flat opposition, but they depend upon something quite different: an arrangement of [[coexistent]], tiered, mobile planes, a '[[disparate]]ness' within an original depth. Every- where, the [[depth]] of difference is primary. It is no use rediscovering depth as a third dimension unless it has already been installed at the beginning, enveloping the other two and enveloping itself as third. [[space]] and [[time]] display oppositions (and limitations) only on the surface, but they presuppose in their real depth far more voluminous, affirmed and distributed differences which cannot be reduced to the banality of the negative. [[spatium]]?
[[RD38]]
Only [[contemplation]] or the [[mind]] which [[contemplate]]s from without 'extracts'...
[[RD5]]
[[repetition]] appears [7] as the logos of the [[solitary]] and the [[singular]], the logos of the 'private thinker'. Both Kierkegaard and Nietzsche develop the opposition between the private thinker, the thinker-comet and bearer of repetition, and the public professor and doctor of law...
Oppose repetition not only to the generalities of [[habit]] but also to the particularities of [[memory]]. For it is perhaps habit which manages to '[[draw]]' something new from a repetition contemplated from without. With habit, we act only on the condition that there is a little Self within us which contemplates: it is this which extracts the new - in other words, the general - from the pseudo-repetition of particular cases. Memory, then, perhaps recovers the particulars dissolved in generality. These psychological movements are of little consequence: for both Nietzsche and Kierkegaard they fade away in the face of repetition proposed as the double condemnation of habit and memory. In this way, repetition is the thought of the future: it is opposed to both the ancient category of reminiscence and the modern category of habitus. It is in repetition and by repetition that Forgetting becomes a positive power
[[Luhmann]] and memory
[[RD6]]
It is not enough, therefore, for them to propose a new representation of movement; [[representation]] is already mediation. Rather, it is a question of producing within the work a movement capable of affecting the [[mind]] outside of all representation; it is a question of making movement itself a work, without interposition; of substituting [[direct sign]]s for mediate representations; of inventing vibrations, rotations, whirlings, gravitations, dances or leaps which directly touch the [[mind]].
[[quote]]
[[RD7]]
'I look only at [[movement]]s' is the [[language]] of a director who poses the highest theatrical problem, the problem of a movement which would directly touch the soul, which would be that of the soul. [[quote]]
...we can understand these texts only by taking them for what they are: the remarks of a director indicating how the [[Overman]] should be 'played'.
[[RD8]]
The primacy of [[identity]], however conceived, defines the world of [[representation]]. But modern thought is born of the failure of representation... The modern world is one of [[simulacra]]. Man did not survive [[God]]... All identities are only simulated, produced as an optical 'effect' by the more profound game of difference and repetition. We propose to think difference in itself independently of the forms of representation which reduce it to the Same, and the relation of different to different independently of those forms which make them pass through the negative.
Modern life is such that, confronted with the most mechanical, the most stereotypical repetitions, inside and outside ourselves, we endlessly extract from them little differences, variations and modifications. Conversely, secrete, [[disguise]]d and hidden [[repetition]]s, animated by the perpetual [[displacement]] of a [[difference]], restore bare, mechanical and stereotypical repetitions, within and without us. In [[simulacra]], repetition already plays upon repetitions, and difference already plays upon differences. Repetitions repeat themselves, while the [[differenciator]] [[differenciate]]s itself. The task of [[life]] is to make all these repetitions [[coexist]] in a space in which difference is distributed. [[quote]]
[[RDxvi]]
[[RDxvi]]
By contrast, might we not form such a concept [of repetition] once we realize that variation is not added to [[repetition]] in order to hide it, but is rather its [[condition]] or constitutive element, the [[interior]]ity of repetition par excellence? [[disguise]] no less than [[displacement]] forms part of repetition, and of difference: a common transport or diaphora. At the [[limit]], might there not be a single power of difference or of repetition, but one which operates only in the multiple and determines multiplicities?
Every philosophy must achieve its own manner of speaking about the [[art]]s and sciences, as though it established alliances with them. It is very difficult, since philosophy obviously cannot claim the least superiority, but also creates and expounds its own concepts only in relation to what it can grasp of scientific functions and artistic constructions. A philosophical [[concept]] can never be confused with a scientific [[function]] or an artistic construction, but finds itself in affinity with these in this or that domain of science or style of art. The scientific or artistic content of a philosophy may be very elementary, since it is not obliged to advance art or science, but it can advance itself only by forming properly philosophical concepts from a given function or construction, however elementary. Philosophy cannot be undertaken independently of science or art. It is in this sense that we tried to constitute a philosophical concept from the mathematical function of differentiation and the biological function of differenciation, in asking whether there was not a statable relation between these two concepts which could not appear at the level of their respective objects. Art, science and philosophy seemed to us to be caught up in mobile relations in which each is obliged to respond to the other, but by its own means.
I mean not only that we think according to a given method, but also that there is a more or less implicit, tacit or presupposed [[image of thought]] which determines our goals when we try to think. For example, we suppose that thought possesses a good nature, and the thinker a good will (naturally to 'want' the true); we take as a model the process of recognition - in other words, a common sense or employment of all the faculties on a supposed same object; we designate error, nothing but error, as the enemy to be fought; and we suppose that the true concerns solutions - in other words, propositions capable of serving as answers. This is the classic image of thought, and as long as the critique has not been carried to the heart of that image it is difficult to conceive of thought as encompassing those problems which point beyond the propositional mode; or as involving encounters which escape all recognition; or as confronting its true enemies, which are quite different from thought; or as attaining that which tears thought from its natural torpor and notorious bad will, and forces us to think. A new image of [xvii] thought - or rather, a liberation of thought from those images which imprison it.
[[Difference and Repetition]]
a concept of [[difference]] without negation, precisely because unless it is subordinated to the identical, [[difference]] would not extend or 'would not have to extend' as far as [[opposition]] and [[contradiction]]; the other concerns a concept of [[repetition]] in which physical, mechanical or bare repetitions (repetition of the [[Same]]) would find their raison d'etre in the more profound structures of a hidden repetition in which a '[[differential]]' is disguised and displaced. These two lines of research spontaneously came together, because on every occasion these concepts ofa pure difference and a complex repetition seemed to connect and coalesce. The perpetual [[divergence]] and [[decentering]] of difference corresponded closely to a
, [[displacement]] and a [[disguise]]ing within repetition.
The greatest danger is that of lapsing into the [[representation]]s of a [[beautiful soul]]: there are only reconcilable and federative differences, far removed from bloody struggles. The beautiful soul says: we are different, but not opposed... . The notion of a [[problem]], which we see linked to that of difference, also seems to nurture the sentiments of the beautiful soul: only problems and [[question]]s matter.... Nevertheless, we believe that when these problems attain their proper degree of positivity, and when difference becomes the object of a corresponding [[affirmation]], they release a power of aggression and [[selection]] which destroys the beautiful soul by depriving it of its very identity and breaking its good will. The [[problematic]] and the differential determine struggles or destructions in relation to which those of the negative are only [[appearance]]s, and the wishes of the beautiful soul are so many mystifications trapped in appearances. The [[simulacram]] is not just a [[copy]], but that which overturns all copies by also overturning the [[model]]s: every thought becomes an aggression.
A book of philosophy should be in part a very particular species of detective novel, in part a kind of science fiction. By detective novel we mean that [[concept]]s, with their [[zone]]s of presence, should intervene to resolve [[local]] situations. They themselves change along with the problems. They have spheres of influence where, as we shall see, they operate in relation to '[[drama]]s' and by means of a certain '[[cruel]]ty'. They must have a [[coherence]] among themselves, but that coherence must not come from themselves. They must receive their coherence from elsewhere.
This is the secret of [[empiricism]]. Empiricism is by no means a reaction against [[concept]]s, nor a simple appeal to lived experience. On the contrary, it undertakes the most insane creation of concepts ever seen or heard. Empiricism is a mysticism and a mathematicism of concepts, but precisely one which treats the concept as object of an [[encounter]], as a here-and-now, or rather as an [[Erewhon]] from which emerge inexhaustibly ever new, differently distributed 'heres' and 'nows'. Only an empiricist could say: concepts are indeed things, but things in their free and wild state, beyond [xxi] anthropological predicates'. I make, remake and unmake my concepts along a moving [[horizon]], from an always decentred centre, from an always displaced [[periphery]] which repeats and [[differenciate]]s them.
[[RDxix]]
Neither empirical [[particular]]ities nor abstract [[universal]]: a [[Cogito]] for a dissolved [[self]]. We believe in a [[world]] in which [[individuation]]s are [[imperson]]al, and [[singularity]]s are [[pre-individual]]: the splendor of the [[pronoun]] '[[one]]'-whence the science-fiction aspect, which necessarily derives from this [[Erewhon]]. What this book should therefore have made apparent is the advent of a [[coherence]] which is no more our own, that of mankind, than that of [[God]] or the world. In this sense, it should have been an apocalyptic book (the third [[time]] in the series of ]]time]]
How else can one write but of those things which one doesn't know, or knows badly? It is precisely there that we imagine having something to say. We write only at the frontiers of our knowledge, at the border which separates out knowledge from our ignorance and [[transform]]s on into the other. Only in this manner are we resolved to [[write]]. To. satisfy ignorance is to put off [[writing]] until tomorrow - or rather, to make it impossible. Perhaps writing has a relation to silence altogether more threatening than that which it is supposed to entertain with [[death]]. We are therefore well aware, unfortunately, that we have spoken about [[science]] in a manner which was not scientific.
(One imagines a philosophically bearded [[Hegel]], a philosophically clean-shaven [[Marx]]., in the same way as a mustached Mona Lisa). [[quote]].
[[RDxx]]
[[Borges]], we know, excelled in recounting imaginary books. But he goes further when he considers a real book, such as [[Don Quixote]], as though it were an imaginary book, itself reproduced by an imaginary author, Pierre Menard, who in turn he considers to be real. In this case, the most exact, the most strict [[repetition]] has as its correlate the maximum of [[difference]] ('The text of Cervantes and that of Menard are verbally identical, but the second is almost infinitely richer...'). Commentaries in the [[history]] of philosophy should represent a kind of slow motion, a congelation or immobilisation of the text: not only of the text to which they relate, but also of the text in which they are inserted - so much so that they have a double existence and a corresponding ideal: the pure repetition of the former text and the present text in one another. It is in order to approach this double existence that we have sometimes had to integrate historical notes into the present text.
[[quote]]
[[RDxxi]]
the [[distinction]] must be and is drawn merely in order to [[distinguish]] one side. Thus, every distinction contains two [[component]]s: [[indication]] and distinction. The distinction contains itself, but apparently in a very specific form - namely, as the distinction between distinction and indication [[re-entry]]
Accordingly, the re-entry of the form into the [[form]] - or of the distinction into the distinction, or of the difference between system and environment into the system - should be understood as referring to the same thing twice. The distinction re-enters the distinguished. This constitutes [[re-entry]].
[[IS60]]
n [[ontological]] [[distinction]]. No X is a Y and no Y is an X.
...[[tendency]]s, [[duration]]s, [[continuous]]
[[multiplicity]]s are transcendental conditions of experience, it is because
they are the acts internal to experience which make it be through a
process of [[actualization]]... these conditions are no broader than that
which they condition. Nevertheless, these conditions are not the given
insofar as experience itself presents nothing but composites, mixtures,
differences in degree.
[[transcendental empiricism]]
[[DG61]]
par3 [[reality]] is not what is "[[given]]" to this or that "[[subject]]," it is a [[state]] of the [[referent]] (that about which one speaks) which results from the [[effectuate]]ion of establishment procedures defined by a unanimously agreed-upon protocol, and from the possibility offered to anyone to recommence this effectuation as often as he or she wants. The publishing [[industry]] would be one of these protocols, historical inquiry another.
[[TD4]]
Good, now here comes Heinz [[von Foerster]] starting his “[[inversion]] game”:
“[[Reality]] is a [[model]] of a [[picture]].”
Here the picture becomes the cause and the “world,” our “reality,”
the consequence, not the other way round. And naturally the [[constructivist]]s are very happy with this [[inversion]] because this is how they see this connection as well.
Does this inversion bring you into contradiction with other [[Wittgenstein]] “theorems,” that is, do you stumble? No, I’d claim that one can— unless one forgets to invert the relevant sub-propositions—develop a totally consistent philosophical picture if you invert his “world-picture postulate”—and build it up as the “picture-world postulate.”
[[HE149]]
[[Latour]]
To do: [[definitition]]s:
[[actor]]-Actor presupposes having some sort of agency, but an agency being mentioned doesn't make it an actor in a given event/account, may be invoked as an explanation, a boundary, an anti-group by an actor, or something to be explained, investigated, etc. the 50's pages.
[[agent]]-one individuated agency-an agency in action, given some role?
[[agency]]-a force, a difference, an 'it' that isn't necessarily an individuated actor? Agencies become actors, actors may fade away into agencies-what is the actor/agency distinction?
[[actant]] p71 actor w/o a figure that makes a difference
[[intermediary]] [[mediator]]- [[RTS p39-1]]
[[clamp]]
[[network]]
[[articulator]]s or [[localizer]]s.
[[vehicle]]
[[RTS p1-1]]
[[RTS p13-1]] we are looking at "how society is held together, instead of using society to explain something else or to help solve one of the political questions of the time."
[[RTS p34/35-1]] ost/perf [[RTS p37-1]]
[[RTS p36-1]] every choice of a departure point will lead to the drawing of a completely different animal, fully incommensurable with the others... social links have to be traced by the circulation of different vehicles which cannot be substituted by one another...
[the social] is only a movement that can be seized indirectly when there is a slight change in one older association mutating into a slightly newer or different one. Far from a stable and sure thing, it is no more than an occasional spark generated by the shift, the shock, the slight displacement of other non-social phenomena.
[[RTS p39-1]] causes and effects are only a retrospective way of interpreting events.
[[RTS p44-1]] action is not done under the full control of consciousness; action should rather be felt as a node, a knot, and a conglomerate of many surprising sets of agencys that have to be disentangled. It is this venerable source of uncertainty that we wish to render vivid again in the odd expression of actor-network.
[[RTS p45-1]] action should remain a surprise, a mediation, an event. It is for this reason that we should begin... from the under-determination of action, from the uncertaintys and controversys about who and what is acting when we act....
[[RTS p46-1]] An actor is what is made to act by many others. An actor in the hyphenated expression actor-network is not the source of an action but the moving target of a vast array of entitys swarming towards it. To retrieve its multiplicity, the simplest solution is to reactivate the metaphors implied in the word actor... Action is borrowed, distributed, suggested, influence, dominated, betrayed, translated. If an actor is said to be an actor-network, it is first of all to underline that it represents the major source of uncertainty about the origin of action... [47] Forgive them Father, they know not what they do.
[[RTS p51-1]] The question then becomes how to explore the actors own metaphysics.
[[RTS p64/65-1]] For ANT, as we now understand, the definition of the term social is different: it doesn't designate a domain of reality or some particular item, but rather is the name of a movement, a displacement, a transformation, a translation, an enrollment. It is an association between entitys which are in no way recognizable as being social in the ordinary manner except during the brief moment when they are reshuffled together.
[[RTS p107-1]] ...if we are good enough at describing so many mediators, we would realize that there is no need anymore for a society that lies behind... We don't know yet how all those actors are connected, but we can state as the new default position before the study starts that all the actors we are going to deploy might be associated in such a way that they make others do things. This is done not by transporting a force that would remain the same throughout as some sort of faithful intermediary, but by generating transformations manifested by the many unexpected events triggered by the other mediators that follow them along the line
[[RTS p108-1]] definitions of network and translation An actor-network is traced whenever, in the course of a study, the decision is made to replace actors of whatever size by local and connected sites instead of ranking them into macro and micro. The two parts are essential, hence the hyphen. The first part (actor) reveals the narrow space in which all the grandiose ingredients of the world begin to be hatched; the second part (the network) may explain through which vehicles which traces which trails which types of information, the world is being brought inside those places and then, after having been transformed there, are being pumped back out of its narrow walls.. network... remains what connects the actors together.
[[RTS p180-1]] An actor-network is traced whenever, in the course of a study, the decision is made to replace actors of whatever size by local and connected sites instead of ranking them into macro and micro. The two parts are essential, hence the hyphen. The first part (actor) reveals the narrow space in which all the grandiose ingredients of the world begin to be hatched; the second part (the network) may explain through which vehicles which traces which trails which types of information, the world is being brought inside those places and then, after having been transformed there, are being pumped back out of its narrow walls.. network... remains what connects the actors together.
[[RTS p183-1]]
The first ANT reflex should be to ask; in which building? In which bureau? Through which corridor is it accessible? Which colleagues has it been read to? How has it been compiled?.. be surprised at the number of sites and the number of conduits that pop up as soon as those queries are being raised.
[[RTS p200/2-1]]
[[RTS p204-1]] movement and displacements come first, places and shapes second.
[[uncertainty]]
''12-31-2020''
* Upgraded Stroll site and empty version of Stroll to TiddlyWiki version 5.1.23.
* Updated $:/plugins/wikilabs/link-to-tabs and $:/plugins/flibbles/relink to most recent versions.
* Updated [[$:/.giffmex/ui/EditTemplate]] because it was causing the delete and close buttons to stop working in edit mode after the upgrade to 5.1.23.
* Added the editor-autolist plugin by Saq Imtiaz, which makes numbered lists and bulleted lists easier to use. Hit enter to create a new line, tab to indent, shift+tab to unindent, and enter (twice) to escape list. $:/plugins/sq/editor-autolist
* Added a new way to view references - as tabs!: [[$:/.giffmex/ViewTemplate/refstabs]] Try it out from the pink eyeball tab.
* Added [[Remove Stroll from your TW]] and edited [[Welcome to Stroll]] so it appears in the tabs.
* Still working on a fix for the non-functioning Close others and Fold others buttons in the more menu.
''8-8 -2020''
*Added update to the Stories plugin to fix the bug with the titles. If you have been keeping up with prior updates, you should be able to drag $:/plugins/sq/Stories and $:/.giffmex/sidebar/advancedconfig to your file to fix it. If you encounter more problems, you may have an older version of Stroll, and you will need to drag the following tag pill to your file to update all Stroll tiddlers. {{$:/giffmex/stroll||$:/core/ui/TagTemplate}}
''8-3-2020''
*Added te new update to the Stories plugin. Now you can:
**Adjust the ratio between the two story columns (with a slider in the gear tab of the sidebar)
**Add a custom viewtemplate or edittemplate to your tiddlers (see [[$:/plugins/sq/Stories/changelog]], 1.01)
*To update, drag these links to your file:
**[[$:/.giffmex/sidebar/advancedconfig]] (the slider added to the sidebar tab)
**[[$:/.giffmex/ViewTemplate/title]] (contained errors related to the sidebar tab)
**[[$:/core/ui/ViewTemplate/title]] (contained errors related to the sidebar tab)
''6-3-2020''
*Fixed an oversight which kept autocomplete from working. If your autocomplete doesn't work, drag [[this link|$:/config/EditorTypeMappings/text/vnd.tiddlywiki]] into your file. Updated the troubleshooting tab accordingly. Thanks to Fact Droid for catching this!
''5-27-2020''
*Added to the troubleshooting tab about ~TiddlyMap.
''5-21-2020''
*Now the only non-system tags will be yours. The others have been turned into system tags.
*Added the <<icon {{$:/core/images/chevron-down}}"">> button in editing view. Clicking this button reveals a dropdown which allows you to hide editing sections as desired, and expand the text area. This gives you more space and less clutter when writing and editing.
*Updated [[Advanced stuff]] [[Add Stroll to your TW]] accordingly.
''5-19-2020''
*Added instructions on updating Stroll
*Untagged 'stroll' from $:/DefaultTiddlers so that adding Stroll to an existing ~TiddlyWiki file will not overwrite the user's default tiddlers.
''5-16''
* Added a [[Troubleshooting]] section with hacks for Markdown, ~TiddlyMap, and iOS
* New to the [[Goodies file|https://giffmex.org/stroll/goodies.html]]: a new way to view references!
''5-14''
*Reverted the animation duration to the default 400. This was an unnecessary part of Stroll. Thanks to Faldrian for pointing this out, to keep Stroll lean and as much like a standard ~TiddlyWiki as possible.
''5-10:''
*Fixed description fields for the new-note-here buttons (thanks Gerrit Beine!)
*Put link to Muffin back in the pink eyeball tab (thanks Mark Krieg!).
*Added two new goodies to the [[Goodies file|https://giffmex.org/stroll/goodies.html]].
''5-9:''
*Changed Stylesheet tiddler to $:/.giffmex/.Stylesheet4Stroll, and removed the tc-sidebar-scrollable line, since it was conflicting with the Stories plugin and user tweaks. (It had been for the parallel tab in ~TiddlyBlink.)
*Added documentation for disabling autocomplete for iOS, etc, and additional explanation about importing the 'blinks' tag pill to one's own ~TiddlyWiki file.
*Added the present 'Updates to Stroll' tab.
related to the [[disjunctive synthesis]]
if you can manage to introduce [[recursion]]s into such a system in a conspiratorial manner or by a hidden path, so that the input/ output correlation increases, then the system runs [[recursive]]ly and becomes predictable. [ [[generate]]s an [[eigen]] ]
[[HE25]]
if you can manage to introduce [[recursion]]s into such a system in a conspiratorial manner or by a hidden path, so that the input/ output correlation increases, then the system runs [[recursive]]ly and becomes predictable. [ [[generate]]s an [[eigen]] ]
[[HE25]]
[[redundancy]] has two [[form]]s, [[frequency]] and [[resonance]]; the first concerns the [[signifiance]] of information, the second (I=I) concerns the [[subjectivity]] of [[communication]]. It becomes apparent that information and communication, and even [[signifiance]] and [[subjectification]], are subordinate to redundancy.
[[ATP p79-2]]
[[redundancy]] is the only way of fighting against [[noise]].
[[ATP1 5-1]]
...this really is [[redundancy]], redundancy of [[resonance]]. I need it to remind me of something. If it doesn't remind me of anything I'm lost.
[[ATP2 p3-1]]
we have aged on the [[rigid]] [[line]], while aging is a kind of [[process]] that continued for a long time on the [[supple]] [[segment]]. The [[time]] of the two lines is not the same.
[[segmentarity]]
[[Ref1 p9-1]]
...[[process]] is a [[movement]] that has neither purpose, nor goal, that has only one [[object]]: its own fulfillment, that is, the [[emission]] of [[flow]]s corresponding to it.
[[Ref1 p11-1]]
...maybe [[schizophrenia]] reveals something that happens to us in detached [[part]]s of in small bits and always and everywhere and fairly cosntantly, specifically, we do not cease to be as if caught, snatched, carried away, by what? It's on this point that we contributed a little something because we said the most useful [[word]] yet is [[flow]]s, we spend out time being crisscrossed by flows. And [[process]] is the development of a flow.
What does process mean in this [[sense]]? Process is a movement of a tri[p insofar as the [[trajectory]] does not pre-exist, that is, insofar as it [[trace]]s its own trajectory. In a certain way, we called it a [[line of flight]]. This is tracing lines of flight, and lines of flight do not p[re-exist their own trajectory
...the [[unconscious]]... its business is elsewhere. The process is ultimately the [[emission]] of any flows whatsoever.
It is obvious that [[parent]]s are only [[sign]]posts of all these [[vectors]]/[[line]]s that crisscross the [[social field]] [[socius]]
[[Ref1 p4-1]]
...each time you are faced with either the written transcript or [[oral]] recording fo some sort of [[delirium]], you will see... [[line of flight]]s, the [[line]]s that [[connect]] the [[delirious]] [[person]] to a [articular [[direction]] or to a particular [[region]] of the historical-global [[field]] ..
[[analysis]] cannot be an [[interpretation]] or a [[signifying]] [[operation]]; its a [[cartography]]c [[outline]]. If you can't find the lines that [[compose]] someone, including their lines of flight, you do not understand the problems that occur or that they pose for themself. And, in fact, liens of flight, you understand, are not uniform... A line of flight is even an ambiguous [[operation]], I'm saying; its the [[process]] that carries us away.
excellent [[example]]s follow from this
[[treatment]] [[segment]] [[segmentarity]] [[rigid]] [[supple]] [[treatment]]
[[Ref1 p7-1]]
[[Ref1 p9-1]]
[[Deleuze]]
In a general sense, we call a [[refrain]] any [[aggregate]] of [[matter of expression]]s that [[draw]]s a territory and develops into territorial [[motif]]s and [[landscape]]s (there are optical, gestural, motor, etc., refrains)
a set of statements arising in the social field ([[formation of power]]?) considered
as a stratum. From [[ATP p66/67-1]]
See [[ATP p65-1]] for [[language]] to [[regime of signs]] relation
...every veritable relation as having the [[status]] of being. Relation is a [[mode]]ality of being, it is simultaneous with respect to the [[term]]s whose existence it guarantees. A [[relation]] must be grasped as a relation in [[being]], a relation of being, a manner of being, and not a simple rapport between two terms that could be adequately known via [[concept]]s because they would have an effectively prior, separate existence.
[[IFI p12-3]]
To remove Stroll from to your own ~TiddlyWiki,
# Open $:/AdvancedSearch
# Go to the 'Filter' tab
# Type or paste in `[tag[$:/giffmex/stroll]]`
# Hit the red garbage can button and click Delete these tiddlers. Save changes.
[[repetition]] as a conduct and as a [[point of view]] concerns non-exchangeable]] and non-substitutable [[singularity]]s. Reflections, echoes, doubles, and souls do not belong to the domain of [[resemblance]] or [[equivalnce]]; and it is no more possible to exchange one's soul than it is to substitute real twins for one another. If exchange is the criterion of generality, [[theft]] and [[gift]] are those of repetition. There is, therefore, an economic difference between the two.
To repeat is to behave in a certain manner, but in relation to something [[unique]] or [[singular]] which has no equal or equivalent. And perhaps this repetition at the [[level]] of external conduct [[echoe]]s, for its own part, a more secret vibration which animates it, a more profound, internal repetition within the singular. This is the apparent [[paradox]]... repeat an 'unrepeatable.'... do not add a decent and a third time to the first, but carry the first to the 'nth' power. With respect to this power, repetition [[interior]]izes and thereby reverses itself... [[Monet]]'s first water lily which repeats all the others.
The repetition of a work of [[art]] is like a singularity without a [[concept]], and it is not by chance that a [[poem]] must be [2] learned by heart.
[[RD1]]
If [[repetition]] is [[possible]], it is due to miracle rather than to [[law]]. It is against the law: against the similar form and the equivalent content of law. If repetition can be found, even in [[nature]], it is in the name of a power which affirms itself against the law, which works underneath laws, perhaps superior to laws. If repetition exists, it expresses at once a [[singularity]] opposed to the general, a universality opposed to the particular, a [[distinct]]ive opposed to the ordinary, an instantaneity opposed to variation [3] and an [[eternity]] opposed to permanence. In every respect, repetition is a [[transgression]]. It puts law into question, it denounces its nominal or general character in favour of a more profound and more artistic reality.
[[RD2]]
[[repetition]] is truly that which [[disguise]]s itself in constituting itself, that it
which constitutes itself only by disguising itself. It is not underneath the [[mask]]s, but is formed from one mask to another, as though from one distinctive [ [[singular]] ] point to another, from one privileged instant to another, with and within the variations. The masks do not hide anything except other masks. There is no first term which is repeated... [t]here is therefore nothing repeated which may be isolated or abstracted from the repetition in which it was formed, but in which it is also hidden. There is no [[bare]] repetition which may be abstracted or inferred from the disguise itself.
[[RD17]]
The mask, the costume, the covered is everywhere the truth of the uncovered. The mask is the true subject of repetition. Because repetition differs in kind from representation, the repeated cannot be represented: rather, it must always be signified, masked by what signifies it,
I itself masking what it signifies.
[[RD18]]
For there is no [[repetition]] without a repeater, nothing repeated without a repetitious [[soul]]. [[quote]]
[[RD23]]
the two [[repetition]]s are described t length
[[RD23/25]]
The primacy of [[identity]], however conceived, defines the world of [[representation]]. [[RDxix]]
tiddlers that stick out as needing to be revisited
inspo-switch words to be about identity or the self and it's the same [[pattern]] of [[investigation]] through [[association]].
[[RTS p29-1]] [our] starting point begins precisely with the controversys about which grouping one pertains to, 31-1 expands
[[RTS p34/35-1]] One way to mark this difference is to say that social aggregates are not the object of an ostensive definition-like mugs and cats and chairs that can be pointed at by the index finger-but only of a performative definition. They are made by the various ways and manners in which they are said to exist... [35] For ANT, if you stop making and remaking groups, you stop having groups.
[[RTS p37-1]] [self] as a movement that needs to continually be done or it ceases to exist-hence the use of performative rather than ostensive
[[RTS p47-1]] It's precisely because the social is not yet made that sociologists of associations should keep as their most cherished treasure all the traces that manifest the hesitations actors themselves feel about the drives that make them act... This is why we should paradoxically take all the uncertaintys, hesitations, dislocations, and puzzlements as our foundation. Just as actors are constantly engaged by others ingroup formation and destructions (1st uncertainty) they engage in providing controversial accounts for their actions as well as those of others... as soon as the decision is made to move in this direction, traces become innumerable and no study will ever stop for lack of information on those controversies
[[RTS p64/65-1]] For ANT, as we now understand, the definition of the term [self] is different: it doesn't designate a domain of reality or some particular item, but rather is the name of a movement, a displacement, a transformation, a translation, an enrollment. It is an association between entitys which are in no way recognizable as being [selves] in the ordinary manner except during the brief moment when they are reshuffled together.
[[RTS p68-1]] ANTs "slogan 'Follow the actors,' becomes 'Follow the actors in [weaving their self] so as to render more durable the constantly shifting interactions. +
[[RTS p74/75-1]] by collective we don't mean an action carried over by homogeneous social [[force]]s but, on the contrary, an action that collects different type of forces woven together because they are different... from now on the word collective will take the place of society... + diff types of forces because they are woven together-parts of today that present the self as unified as such-the necessity of presenting the self as unified-we never have a fractured self (it's never presented as such)
[[RTS p90-1]] ...The strong connection was actually one's main claim to fame... Is a given [[self]] well or badly constructed?
[[RTS p93-1]] What ANT was trying to modify was simply the use of the whole critical repertoire by abandoning simultaneously the use of nature and of society, which had been invented to reveal behind social phenomena what was really taking place.
[[RTS p97-1]] the [self] has never explained anything;the [self] has to be explained instead.
[[RTS 102-1]] ...giving an explanation should not be confused with substituting a phenomenon...
[[RTS p107-1]] ...if we are good enough at describing so many mediators, we would realize that there is no need anymore for a [self] that lies behind... We don't know yet how all those actors are connected, but we can state as the new default position before the study starts that all the actors we are going to deploy might be associated in such a way that they make others do things. This is done not by transporting a force that would remain the same throughout as some sort of faithful intermediary, but by generating transformations manifested by the many unexpected events triggered by the other mediators that follow them along the line
[[RTS p 132-1]] network is a word to "designate the flows of translations... There exists no good word anyway, only sensible usage... three important features..: A point-to-point connection is being established which is physically traceable and thus can be recorded empirically,
Such a connection leaves empty most of what is not connected, as any fisherman knows when throwing his net in the sea,
This connection is not made for free, it requires effort as any fisherman knows when repairing it on the deck...
a network is not... made of a durable substance but is the trace left behind by some moving agent... it has to be traced anew by the passage of another vehicle, another circulating entity
[[RTS p136-1]] If the social circulates and is visible only when it shines through the concatenations of mediators, then this is what has to be replicated, cultivated, elicited, and expressed by our textual accounts. The task is to deploy actors as networks of mediations-hence the hyphen in the composite word actor-network.
[[RTS p153-1]] So a placeholder, by definition, is entirely substitutable by any other?
But that's also what is so implausible and what makes it radically incompatible with [[ANT]]. In my vocabulary, an [[actor]] that makes no difference is not an actor at all. An actor, if words have meaning, is exactly what is not substitutable. Its a unique [[event]], totally irreducible to any other except if you render one commensurable with another one by some process of standardization-but even that requires a third actor, a third event.
-------------------------------------------------------------------------------------------
The scope of this [[project]] is quite simple. By using the [[three]] [[strand]]s of [[primary retention]] [[secondary retention]] and [[tertiary retention]] [[retention]]/[[protention]] and the three strands of [[psychic]] [[collective]] and [[technical]] [[individuation]] pre-existing data on [[identity]] and [[pathology]] can be re-interpreted in the direction of a new [[metamodelization]] aimed to [[draw]] out a new [[horizon]] for [[treatment]].
-------------------------------------------------------------
[[Studies|study]]
https://onlinelibrary.wiley.com/doi/10.1111/nous.12328
https://journals.sagepub.com/doi/full/10.1177/2167702620917459
https://journals.sagepub.com/doi/10.1177/2167702620921341
--------------------------------------------------------
search history
12/29/2021
[[short link|https://web.s.ebscohost.com/ehost/resultsadvanced?vid=15&sid=ba244bf1-b519-428a-9f01-6172d4e6b0a2%40redis&bquery=identity+AND+pathology&bdata=JkF1dGhUeXBlPXNoaWImZGI9cGJoJmRiPXBkaCZkYj1zbGgmZGI9cGhsJnR5cGU9MSZzZWFyY2hNb2RlPVN0YW5kYXJkJnNpdGU9ZWhvc3QtbGl2ZSZzY29wZT1zaXRl]]
" Psychology and Behavioral Sciences Collection, APA PsycArticles, Sociological Collection, Philosopher's Index"
identity next field pathology
identity next field trauma
recurring treatment
[[redundancy]] has two [[form]]s, [[frequency]] and [[resonance]]; the first concerns the [[signifiance]] of information, the second (I=I) concerns the [[subjectivity]] of [[communication]]. It becomes apparent that information and communication, and even [[signifiance]] and [[subjectification]], are subordinate to redundancy.
[[ATP p79-2]]
[[respondent conditioning]]
• Pairing a neutral stimulus
• with an unconditioned stimulus
• causes it to elicit the conditioned response.
[[respondent extinction]]
• Present the conditioned stimulus
• without pairing it
• with the unconditioned stimulus,
• or with an already established conditioned stimulus,
• and the conditioned stimulus will lose its eliciting
power.
[[P8 8]]
If a [[response]] is [[reinforce]]d upon a given occasion or class of occasions, any feature of that occasion or common to that class appears to gain some measure of [[control]]. A novel [[stimulus]] possessing one such feature may evoke a response. There are several ways in which a novel stimulus may resemble a stimulus previously present when a response was reinforced, and hence there are several types of what we may call “extended [[tact]]s.”
[[VB125]] [[reinforcement]] [[stimulus control]] [[induction]]
retentions are what one retains, as such they form memories
[[protention]]s are expectations in all their forms,. Algorithms enable psychic protentions to be shirt-circuited, and replaced with automatic protentions
pleasure is a [[reterritorialize]]ation of [[desire]] on the [[body without organs]]
[[DR p96-1]]
https://www.quantamagazine.org/in-brains-rich-club-meetings-of-the-mind-20131024/
"The connections between rich club hubs are anatomically long but [[topology]]cally short, meaning one [[node]] is [[connect]]ed to any other by only one or two [[intermediate]] nodes. Van den Heuvel said this could allow faster and less noisy communication among [[neuron]]s."
"...Bullmore and collaborators published an analysis of a rich club in the microscopic roundworm C. elegans, the popular model organism whose entire set of neuronal connections, called a [[connectome]], have been mapped out. “It’s as close to a canonical gold standard wiring [[diagram]] that we have in neuroscience so far,” Bullmore said."
Wiring optimization can relate neuronal structure and function: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1550972/
[[Neuro]]
It's the [[power]] exerted through [[entity]]s that don't sleep and [[association]]s that don't break down that allow power to last longer and expand further-and, to achieve such a feat, many more [[material]]s than social compacts have to be devised. See p69 for a discussion of social rituals of 'niceness' for baboon [[hierarchy]] from another author, inset quote.
[[RTS p68-1]]
[[network]] is a [[word]] to "designate the [[flow]]s of [[translation]]s... There exists no good word anyway, only [[sensible]] usage... three important features..: A [[point]]-to-point [[connection]] is being established which is physically [[trace]]able and thus can be recorded empirically,
Such a connection leaves empty most of what is not connected, as any fisherman knows when throwing his net in the sea,
This connection is not made for free, it requires effort as any fisherman knows when repairing it on the deck...
a network is not... made of a durable [[substance]] but is the trace left behind by some moving [[agent]]... it has to be traced anew by the passage of another [[vehicle]], another circulating [[entity]]
[[RTS p131-1]]
Social can be "a [[movement]] during a [[process]] of assembling" but shouldn't be thought of as "a specific type of ingredient that is supposed to differ from other [[material]]s"
"...it's no longer [[possible]] to inspect the precise ingredients that are entering into the [[composition]] of the [[social]] domain. What I want to do is to redefine the notion of social by going back to its original meaning and making it able to [[trace]] [[connection]]s again.
Instead of establishing some [[connection]] [[between]] two [[entity]]s, it often happens that one entity is substituted by another one. At which point the necessary search for causality has become a wholly different enterprise dangerously close to prestidigitation.
[[RTS p97-1]]
...giving an explanation should not be confused with substituting a [[phenomenon]]...
[[RTS p100-1]]
...to explain is not a mysterious cognitive feat, but a very practical world-building enterprise that consists in [[connect]]ing [[entity]]s with other entities, that is, in [[tracing]] a [[network]]. Every time some A is said to be related to some B, its the [[social]] itself that is being generated... I don't want to confuse the assembling of the [[collective]] with the mere review of the entities already assembled or with a bundle of homogeneous social ties. Its thus essential to detect as early as possible any sleight of hand in the ways the collective is being composed.
[[RTS p102-1]]
...fishermen, oceanographers, satellites and scallops might have some [[relation]]s with one another, relations of such a sort that they make others do unexpected things-this is the [[definition]] of a [[mediator]]. Is there one [[element]] in this concatenation that can be designated as [[social]]? No.
[[RTS p103-1]]
[[social]] is nowhere in particular as a thing among other things but may [[circulate]] everywhere as a [[movement]] [[connecting]] non-social things...
We don't know yet how all those [[actor]]s are [[connect]]ed, but we can state as the new default position before the study starts that all the actors we are going to [[deploy]] might be [[associate]]d in such a way that they make others do things. This is done not by transporting a [[force]] that would remain the same throughout as some sort of faithful [[intermediary]], but by generating [[transformation]]s manifested by the many unexpected [[event]]s triggered by the other [[mediator]]s that follow them along the [[line]]... a concatenation of mediators does not [[trace]] the same [[connection]]s and does not require the same type of explanations as a retinue of intermediaries transporting a cause.
[[RTS p106-1]]
...if we are good enough at describing so many [[mediator]]s, we would realize that there is no need anymore for a [[society]] that lies behind.
...To designate this thing which is nether on [[actor]] among many nor a [[force]] behind all the actors transported through some of them but a [[connection]] that transports, so to speak, [[transformation]]s, we use the word [[translation]]-the tricky word [[network]] being defined in the next chapter as what is [[trace]]d by those translations in the scholars accounts. So the word translation now takes on a somewhat specialized meaning: a [[relation]] that does not transport causality but induces two [[mediator]]s into coexisting. If some [[causality]] appears to be transported in a predictable and routine way, then its the proof that other mediators hav been put in place to render such a [[displacement]] smooth and predictable... there is no social realm... but there exists translations between mediators that may generate traceable [[association]]s.
[[RTS p107-1]]
...it is no longer enough to limit [[actor]]s to the role of informers offering cases of some well-known types. You have to grant them back the ability to make up their own theories of what the [[social]] is made up of... [12] you have to follow the actors themselves, that is try to catch up with their often wild [[innovation]]s in order to learn from them what the [[collective]] existence has become in their hands, which methods they have elaborated to make it fit together, which accounts could best define the new [[association]]s that they have been forced to establish.
[[metamodelization]] [[Guattari]] [[Chaosmosis]] I think from the schizoanalytic metamodelization chapter but idk
[[RTS p5-1]]
we do not have "the interpretive flexibility allowed by multiple points of view on taken on the same thing. It is the thing itself that [is being] allowed to be deployed as [[multiple]] and thus allowed to be grasped through different viewpoints, before being possibly unified at some later stage depending on the abilities of the [[collective]] to unify them.... we shift from the world of matters of fact to the [[world]]s of [[matters of concern]]...
[[RTS p108-1]]
When we list the qualities of an [[ANT]] account, we will make sure that when [[agency]]s are introduced they are never presented simply as [[matters of fact]] but always as [[matters of concern]], with their [[mode]] of fabrication and their stabilizing mechanisms clearly visible. In addition, we will be especially attentive to counteract the [[deconstruction]] mood by making sure that [[multiplicity]] is [[associate]]d with interpretive flexibility or with a weakening of the empirical grasp. Finally, we will be attentive to the procedures through which the multiplicity of [[reality]]-[[metaphysics]]-can be distinguished from its progressive unification-[[ontology]].
[[RTS p116-1]]
[[ANT]] "has to be able to register [[difference]]s, to absorb [[multiplicity]], to be remade for each [[new]] case at hand.
[[RTS p120-1]]
...the [[text]] [is] a [[mediator]].
[[RTS p121-1]]
If the [[social]] is a [[trace]], then it can be retraced; if its an [[assembly]] then it can be reassembled...
I would define a good [[account]] as one that traces a [[network]]. I mean by this [[word]] a string of [[action]]s where each [[participant]] is treated as a full-blown [[mediator]]... A good [[ANT]] account is a [[narrative]] or a [[description]] or a [[proposition]] where all the [[actor]]s do something and don't just sit there. Instead of simply [[transport]]ing effects without [[transform]]ing them, each of the [[point]]s in a [[text]] may become a bifurcation, an [[event]], or the origin of a new [[translation]]. As soon as actors are treated not as [[intermediary]]s but as mediators, they render the [[movement]] of the social visible to the reader. Thus, through many textual inventions, the social may become again a circulating [[entity]] that is no longer composed of the stale [[assemblage]] of what passed earlier as being part of [[society]]. A text, in our [[definition]] of social science, is thus a test on how many [[actor]]s the writer is able to treat as mediators and how far she is able to achieve the social.
[[RTS p124-1]]
Thus, the [[network]] does not designate a thing out there that would have roughly the shape of interconnected [[point]]s, much like a telephone... network. It is nothing more than an indicator of the quality of a [[text]] about the topics at hand. It qualifies its objectivity, that is, the ability of each [[actor]] to make other actors do unexpected things. A good text elicits networks of actors when it allows the writer to [[trace]] a set of [[relation]]s defined as so many [[translation]]s.... vs a bad text where there's grouped [[intermediary]]s, ideally as few as possible, to account for all effects [130]
[[RTS p128-1]]
we are looking at "how [[society]] is held together, instead of using society to explain something else or to help solve one of the political [[question]]s of the time."
[[RTS p11/12-1]]
For the [[network]] "[find]... the necessary [[vehicle]]s to extend it further." [[rhizome]]
So, [[network]] is an [[expression]] to check how much [[energy]], [[movement]], and specificity our own reports are able to capture. Network is a [[concept]], not a thing out there. It is a tool to help describe something, not what is being described.... a network is not what is represented in the [[text]], but what readies the text to take the [[relay]] of [[actor]]s as [[mediator]]s. The consequence is that you can provide an [[actor-network]] [[account]] of things which are in now way the shape of a network-a symphony...
[[RTS p129-1]]
four notebooks
[[RTS p 132-1]]
If the social circulates and is visible only when it shines through the concatenations of [[mediator]]s, then this is what has to be replicated, cultivated, elicited, and expressed by our textual [[account]]s. The task is to [[deploy]] [[actor]]s as [[network]]s of [[mediation]]s-hence the hyphen in the composite word [[actor-network]].
[[RTS p134-1]]
description vs explanation [[Tarde]] "to exist is to differ"
[[RTS p136-1]]
To [[deploy]] simply means that through the [[report]] concluding the enquiry the number of [[actor]]s might be increased, the range of [[agency]]s making the actors [[act]] might be expanded, the number of objects active in stabilizing [[groups]] and agencies might be multiplied and the [[controversy]]s about [[matters of concern]] might be [[map]]ped
[[RTS p137-1]]
So a placeholder, by definition, is entirely substitutable by any other?
But that's also what is so implausible and what makes it radically incompatible with [[ANT]]. In my vocabulary, an [[actor]] that makes no difference is not an actor at all. An actor, if words have meaning, is exactly what is not substitutable. Its a unique [[event]], totally irreducible to any other except if you render one commensurable with another one by some process of standardization-but even that requires a third actor, a third event.
[[RTS p138-1]]
A local [[informant]], prodded by the questions of a visiting ethnographer, realizes that most of his habits of thought are coming from places and [[agency]]s over which he has no control... [[interaction]]s do not resemble a picnic where all the food is gathered on the spot by the participants, but rather a reception given by some unknown sponsors who have staged everything down to the last detail-even the place to sit might be already pre-inscribed by some attentive keeper. So, it is perfectly true to say that any given [[interaction]] seems to overflow with [[element]]s which are already in the situation coming from some other time, some other place, and generated by some other agency... if any observer is faithful to the direction suggested by this [[overflow]], she will be led away from any given interaction to some other places, other times, and other agencies that appear to have molded them into shape. It is as if a strong wind forbade anyone to stick to the local site and blew bystanders away; as if a strong current was always forcing us to abandon the local scene.
[dont let this lead you to positing some underlying framework, some place of transcendence]
[[RTS p153-1]]
..we have to lay [[continuous]] [[connection]]s leading from one [[local interaction]] to the other places, times, and [[agency]]s through which a local site is made to do something. This means that we have to follow the path indicated by the [[process]] of delegation or [[translation]]... this deployment might take the shape of a [[network]] on the condition that every [[transport]] be paid in [[transformation]]s, that is, if we make sure to pave the whole way from one site to the next not with [[intermediary]]s but with full-blown [[mediator]]s. If we do this, we will render visible the long chains of [[actor]]s linking [[site]]s to one another without missing a single step.
At the bottom of this page and the top of the next he proposes a [[flat]] [[ontology]] so as to make it impossible for [[actor]]s to jump; if they want to [[connect]], they must be [[account]]able in flatland, they "clearly need a [[conduit]] and a [[vehicle]]." [174]
[[RTS p166-1]]
... all of the idiosyncratic terms I am going to offer designate nothing more than specific tricks to help resist the temptation to jump to the global. Because of the corrective nature of this gymnastic movement, the virtues of those [[concept]]s, first of all, negative. They pertain to our [[infralanguage]], such as the weak terms of , [[actor]], [[agency]], [[translation]], and [[fluid]]. Like the notion of [[network]], they don't designate what is being mapped, but how it is possible to [[map]] anything from such a [[territory]].
[[RTS p173-1]]
The first kind of [[clamp]]... "where are the structural effects actually being produced?"... for any piece of scientific knowledge I am used to supplying its indispensable conditions of production... Even Karl [[Marx]] in the British library needs a desk to [[assemble]] the formidable forces of capitalism... We have to take into account the practical ways through which the [[knowledge]] of others [[action]]s is being daily produced. Is this [[relativism]]? I hope so. If no signal travels faster than light, no knowledge travels without scientists, laboratories and fragile reference [[chain of reference]] [176]
[[RTS p174]]
...as soon as the local [[site]]s that manufacture [[global]] structures are underlined, it is the entire [[topography]] of the social [[world]] that is being modified. [[macro]] no longer describes a wider or larger site in which the [[micro]] would be [[embed]]ded... but another equally [[local]], equally micro place, which is [[connect]]ed to others though some [[medium]] [[transport]]ing specific types of [[trace]]s. No place can be said to be bigger than any other place, but some can be said to benefit from far safer connections with many more places than others... keep the [[landscape]] [[flat]]... What is now highlighted much more vividly than before are all the connections, the cables, the means of transportation, the [[vehicle]]s linking places together. This is their strength, but also... their frailty... if you cut a [[structure]] making site from its connections, it simply stops being able to structure anything...
Its not that there is no [[hierarchy]], no ups and downs... [but] if you wish to go from one site to another then you have to pay the full cost of [[relation]], [[connection]], [[displacement]], and [[information]].
[[RTS p175-1]]
There is no other known way to achieve changes in relative scale. For each of the macro places the same type of questions can be raised. The answer provided by fieldwork will being [[attention]] back to a [[local]] [[site]] and re-describe them as some disheveled [[array]]s of [[connection]]s through which [[vehicle]]s (carrying types of [[document]]s, [[inscription]]s and [[material]]s) are traveling via some sort of [[conduit]].
[[RTS p176-1]]
Don't focus on [[capitalism]], but don't stay stuck on the screen of the trading room either; [[follow]] the [[connection]]s, 'follow the [[actor]]s themselves.' No cold objectification has taken place there, no superior reason is being [[unfold]]ed. Everywhere, blind termites are busy cranking out [[data]]. Just keep sniffing through their galleries, no matter how far this takes you... For an office to be traversed by longer faster and more [[intense]] connections is not the same thing as being wider... There exists no place that can be said to be non-local. If something is to be delocalized, it means that it is being sent from one place to some other place, not from one place to no place.
[[RTS p177-1]]
An [[actor-network]] is [[trace]]d whenever, in the course of a study, the decision is made to replace actors of whatever size by [[local]] and [[connect]]ed [[site]]s instead of ranking them into macro and micro. The two parts are essential, hence the hyphen. The first part ([[actor]]) reveals the narrow space in which all the grandiose ingredients of the [[world]] begin to be hatched; the second part (the [[network]]) may explain through which [[vehicle]]s which traces which trails which types of [[information]], the world is being brought inside those places and then, after having been transformed there, are being pumped back out of its narrow walls.. network... remains what connects the actors together.
[[RTS p179-1]]
Scientific disciplines, including... accounting, management... provide marvelous examples because, like the fruit flies of geneticists, they offer us an exaggerated version of what occurs everywhere in a less clearly, [[trace]]able way... the more science and technology develops, the easier it is to physically trace social connections. Satellites, fiber optic networks, calculators, data streams, and laboratories are the new [[material]] [[equipment]] that underline the [[tie]]s as if a huge red pen was connecting the dots to let everyone see the [[line]]s that were barely [[visible]] before... is true for all the other connecting or structuring sites as well... To designate this first category of landmarks, I propose to use the word [[oligopticon]] as the generic term, reserving the expression of [[centres of calculation]] [for actual places with calculation occurring]... from [[oligoptica]], sturdy but extremely narrow views of the [[connect]]ed whole are made possible-as long as connections hold
[[RTS p180-1]]
The first [[ANT]] reflex should be to ask; in which building? In which bureau? Through which corridor is it accessible? Which colleagues has it been read to? How has it been compiled?.. be surprised at the number of [[site]]s and the number of [[conduit]]s that pop up as soon as those queries are being raised. [[RTS p180/1-1]]
[[clamp]]
...[[scale]] is what [[actor]]s achieve by [[scaling]], [[spacing]], and [[contextualizing]] each other through the [[transportation]] in some specific [[vehicle]]s of some specific [[trace]]s... absolute frames of reference only generate horrible deformations......take the [[shifting]] itself as data and to see through which practical means 'absolute measure' is made to spread. [185]
[[RTS p183-1]]
In effect, the Big Picture is just that: a picture. And then the question can be raised: in which movie theatre, in which exhibit gallery is it shown? Through which optics is it projected? To which audience is it addressed? I propose to call [[panorama]]s the new [[clamp]]s by asking obsessively such questions. Contrary to [[oligoptica]] panoramas, as [[etymology]] suggests, see everything. But they also see nothing since they simply show an image painted (or projected) on the tiny wall of a room fully closed to the outside... Full [[coherence]] is their forte-and their main frailty... Most of the time, its this excess of coherence that give the [[illusion]] away. [188]
[[RTS p183/4-1]]
[[panorama]]s... also have to be studied very carefully because they provide the only occassion to see the 'whole story' as a whole... they should be added, like everything else, to the [[multiplicity]] of [[site]]s we want to [[deploy]]... there role may be become central since they allow spectators... to be equipped with a [[desire]] for wholeness and centrality.
[[RTS p187-1]]
...the voluntarily blind [[ANT]] scholar should keep asking... whenever a well-ordered pecking order between scales has been staged: In which room? In which [[panorama]]? Through which [[medium]]? With which stage manager? How much?
After go slow, the injunctions are now dont jump and keep everything flat!
[[RTS p189-1]]
...our [[attention]] will begin to concentrate on the [[connect]]ors that will then, and then only, be allowed to freely [[circulate]] without ever stopping at a place called context or [[interaction]]... [the social]] will take a new and plausible shape... that might lend itself to the later work of assembling, collecting, and composing.
[[RTS p190-1]]
what has been designated by the term [[local interaction]] is the [[assemblage]] of all the other local interactions distributed in time and space, which have been brought to bear on the scene through the [[relay]]s of various non-human [[actor]]s. It is the [[transport]]ed presence of places into other ones that I call [[articulator]]s or [[localizer]]s.
[[RTS p193-1]]
...face-to-face [[interaction]]s should be taken... as the [[terminus]] [[point]] of a great number of [[agency]]s swarming toward them....
[[circulation]] is first, the [[landscape]] in which templates and [[agent]]s of all sorts and colors [[circulate]] is second...
[[scale]] does not depend on absolute size but on number and qualities of [[dispatcher]]s and [[articulator]]s
[[RTS p194-1]]
The ways in which baboons have to repair every morning their fast decaying social order remains visible because of the fewer [[tool]]s at their disposal. Baboons glue the social with ever more complex social interactions while we use interactions that are slightly less social and in a way slightly less complex, even though they may be more complicated, that is, made of more [[fold]]s.
[[RTS p196-1]]
...complex baboons who have [[fold]]ed themselves into many [[entity]]s-[[landscape]], predators, [[group]]s-and complicated humans who have folded themselves into vastly more entities, some of them having the great advantage of remaining in place, thus simplifying, locally at least, the task of ordering. In humans moreso than monkeys, [[interference]], [[dispatch]]ing, [[delegation]], and [[articulation]] are [[visible]] and should offer us, in place of local face-toface interactions, an excellent point of departure.
[[RTS p198-1]]
more negative lessons of [[ANT]]-what face-to-face [[interaction]]s can't deliver.
First, no interaction is what could be called [[isotopic]]. What is acting at the same moment in any place is coming from many other places, many distant [[material]]s, and many faraway [[actor]]s...
Second, no interaction is [[synchronic]]... [[time]] is always [[fold]]ed... the idea of any synchronic interaction where all the ingredients will have the same age and the same pace is meaningless-even for baboons. [[action]] has always been carried on thanks to shifting the burden of [[connection]] to longer or shorter lasting [[entity]]s...
Third, interactions are not [[synoptic]]. Very few of the [[participant]]s in a given course of action are simultaneously visible at any given [[point]]...You will never get the same count... because every time different agents will be made visible while others have become dormant. [[unconscious]].
Fourth, interactions are not homogeneous...
Fifth, interactions are not [[isobaric]]... Some of the participants are pressing very strongly, requesting to be heard and taken into account, while others are fully routine customs sunk rater mysteriously into bodily [[habit]]s... If any of the [[intermediary]]s mutates into a [[mediator]], then the whole set up, no matter how solemn or controlled, may become unpredictable...
stretch any given inter-action and sure enough it becomes an [[actor-network]]
[[RTS p199-1]]
...a [[structure]] is simply an [[actor-network]] on which there is scant [[information]] or whose [[participant]]s are so quiet that no new information is required. An [[interaction]] is a [[site]] so nicely framed by [[localizer]]s behaving as [[intermediary]]s that it can be viewed, without too much trouble, as taking place locally.
[[RTS p200/2-1]]
Every local [[site]] is being localized by a flood of [[localizer]]s, dispatchers, deviators, articulators-whatever word we want to choose. The role of [[inter-objectivty]] is to introduce in local interactions some fundamental dislocation
[[RTS p202-1]]
[[movement]] and [[displacement]]s come first, places and shapes second.
[[RTS p203-1]]
Especially important is that which allows [[actor]]s to [[interpret]] the setting in which they are located. No matter how many [[frame]]s are pouring through the [[localizer]]s to format a setting, no matter how many documents are flowing from this setting to [[oligoptica]] and back, there is still a huge distance between the generic [[actor]]s preformatted by those [[movement]]s and the course of [[action]] carried out by fully individualized [[participant]]s. Everyone has this common experience when they try and make [[sense]] of even the most carefully written user's manual. No matter how many generic persons an [[assembly]] drawing has been designed for, you will surely start grumbling.
[[RTS p204-1]]
...where are the other [[vehicle]]s that [[transport]] [[individuality]], [[subjectivity]], personhood and interiority?.. why not postulate that subjectivities, justifications, unconscious and personalities would [[circulate]] as well?... new [[clamp]]s offer themselves to facilitate our enquiry. They could be called [[subjectifier]]s. [[personnalizer]]s, or [[individualizer]]s, but I prefer the neutral term of [[plug-in]]s... you see nothing on the screen... you might not have the right plug ins, and that you should download a bit of software which, once installed on your system, will allow you to [[activate]] what you could not see before... to obtain complete human [[actor]]s, you have to [[compose]] them out of successive [[layer]]s, each of which is empirically distinct from the next... discreet pellets... patches and applets... [[strata]]
[[RTS p205-1]]
...information technologies help us realize the work going on in [[actor]]-making... we should be able to observe empirically how an anonymous and generic [[body]] is made to be a [[person]]: the more [[intense]] the shower of offers of [[subjectivity]]s, the more [[interior]]ity you get... to be an actor now is at last a fully artificial and fully [[trace]]able gathering...
[[RTS p207-1]]
...it's precisely once the overall [[society]] disappears that the full range of what [[circulate]]s outside can be brought to the foreground.
[[RTS p208-1]]
...make every single [[entity]] populating the former inside come from the outside and not as a negative constraint limiting [[subjectivity]] but as a positive offer of [[subjectivation]]. As soon as we do this, the former [[actor]], member, [[agent]], person, individual-whatever it's [[frame]]-takes the same star-shaped aspect we have observed earlier when flattening the global and redispatching the local.
[[RTS p209-1]]
...every [[mediator]] along any chain of [[action]] is an individualized [[event]] because it is [[connect]]ed to many other individualized events.[
[RTS p212/3-1]]
..when we speak of [[actor]] we should always add the large [[network]] of [[attachment]]s making it [[act]].
[[RTS p216-1]]
Every time a [[connection]] has to be established, a new [[conduit]] has to be laid down and some new type of [[entity]] has to be [[transport]]ed through it. What circulates, so to speak, inside the conduits are the very acts of giving something a [[dimension]]. Whenever a [[locus]] has to act on another locus, it has to go through some [[medium]], transporting something all the way; to go on [[act]]ing, it has to maintain some sort of more or less durable [[connection]]. Conversely, every locus is now the target of many such activities, the crossroads of many such tracks, the provisional repository of many such [[vehicle]]s. [[site]]s, no [[transform]]ed into [[actor-network]]s for good, are moved into the background; connections, vehicles, and attachments are brought into the foreground. As soon as we do this, we end up with a [[superposition]] of various canals... entangled and varied...
[[RTS p217-1]]
...five major [[uncertainty]]s:
-The nature of [[group]]s: there exist many contradictory ways for [[actor]]s to be given an [[identity]]; [[RTS p29-1]] [[RTS p31-1]] [[RTS p31/32-1]] [[RTS p34/35-1]]
-the [[nature]] of [[action]]s: in each course of action a great variety of [[agent]]s seem to barge in and displace the original goals; [[RTS p44-1]] [[RTS p45-1]] [[RTS p46-1]] [[RTS p47-1]] [[RTS p47/48-1]] [[RTS p49-1]] [[RTS p51-1]] [[RTS p52-1]] [[RTS p52/53-1]]
-the nature of [[object]]s: the type of [[agency]]s participating in [[interaction]] seems to remain wide open;
-the nature of [[fact]]s; the links of natural [[science]] with the rest of society seems to be the source of [[continuous]] disputes;
-and, finally, about the type of studies done under the label of a science of the social as it seems it is never clear in which precise [[sense]] social [[science]]s can be said to be [[empirical]].
I have chosen 'uncertainties'-in a weak allusion to the 'uncertainty principle'-because it remains impossible to decide whether it resides in the [[observer]] or in the phenomenon observed. As we will see, its never the case that the [[analyst]] knows what the actors ignore, nor is it the case that the actors know what the [[observer]] ignores. This is the reason why the social needs to be reassembled.
[[RTS p15-1]]
As soon as we concentrate on what [[circulate]]s from [[site]] to site, the first type of [[entity]]s to snap into focus are [[form]]s...A form is simply something which allows something else to be transported from one site to another. Form then becomes one of the most important types of [[translation]]. Such a [[displacement]] from the [[ideal]] to the [[material]] can be extended to [[information]]. To provide a piece of information is the [[action]] of putting something into a form. But now the word takes a very mundane, practical meaning; it can be a paper slip, a [[document]], a [[report]], an account, a map, whatever succeeds in practicing the incredible feat of massive [[transformation]]s... Whatever the [[medium]], a [[material]] description of [[formalism]] is now [[possible]] which takes very seriously the [[connect]]ing ability of forms-conceived as physically as possible-while shedding the idea that formalisms themselves be formally described. [after ... is page 226]
[[RTS p219/220-1]]
discussion of pre-existing social categories, then "follow the [[actor]]s themselves; yes, one must follow the them when they multiply [[entity]]s and again when they rarefy entities.
[[RTS p222/3-1]]
[[ANT]] claims to be able to find [[order]] much better after having let the [[actor]]s deploy the full range of [[controversy]]s in which they are immersed... The task of defining and ordering the social should be left to the actors themselves, not taken up by the [[analyst]]... [[trace]] [[connection]]s [[between]] the controversies rather than decide how to settle any given controversy.
[[rhizome]]
[[RTS p22-2]]
collecting [[statement]]s and [[speech act]]s as so many [[form]]s of the libidinal life of the group, "Without collecting [[statement]]s, how could the [[collective]] be collective?"
[[RTS p227-1]]
...one should say that 'when faced with an object, attend first to the [[association]]s out of which its made and only later look at how it has renewed the repertoire of social [[tie]]s.'
[[RTS p231/2-1]]
[[thing]]s, quasi-objects, and [[attachment]]s are the real [[center]] of the [[social]] [[world]].
[[RTS p233-1]]
...[[law]], for instance, is unexplainable by the influence social forces exert over it... law has much better things to do: one of them is to [[circulate]] throughout the [[landscape]] to [[associate]] [[entity]]s in a legal way... He makes the same point but with science, and religion.
[[RTS p238-1]]
[[ANT]] claims that is is [[possible]] to [[trace]] more sturdy [[relation]]s and discover more revealing [[pattern]]s by finding a way to register the links between unstable and shifting frames of reference rather than by trying to keep one frame stable. Society is no more roughly made up of individuals... than Africa is roughly a circle.
[[RTS p23-1]]
Once social explanations are relocated into the making and dissemination of [[standard]]s, the other beings that gather the [[collective]] on their own ways may be emphasized at last...
[[mediator]]s have finally told us their real names: we are beings out there that gather and [[assemble]] the [[collective]] just as extensively as what you have so far called the [[social]], limiting yourselves to only one standardized version of [[assemblage]]s; if you want to follow the [[actor]]s themselves you'll have to follow us as well. [[address]] mediators scrupulously
[[RTS p239-1]]
What is meant by [[interpretation]]s, flexibility, and fluidity is simply a way to register the vast [[outside]] to which every course of [[action]] has to appeal in order to be carried out. This is not true for just human actions, but for every activity. [[hermeneutic]]s is not a privilege of humans but, so to speak, a property of the world itself.
[[RTS p240-1]]
Many of the difficulties in developing those disciplines have come from a refusal to be theoretical enough and from a misplaced attempt at clinging to [[common sense]] mixed with an ill-timed craving for political relevance.
[[RTS p24-1]]
...there is no relevant [[group]] that can be said to make up social [[aggregate]]s, no established [[component]] that can be used as an incontrovertible starting [[point]]... [our] starting point begins precisely with the [[controversy]]s about which grouping one pertains to, including of course the controversies among social scientists about what the social world is made of.
[[micropolitic]]s
[[RTS p25-1]]
...substitute the list of groupings of social aggregates... with the list of the [[element]]s always present in [[controversy]]s about [[group]]s... it generates more data since every time a new group is alluded to the fabrication [[mechanism]] necessary to keep it alive will be made visible and thus traceable... in any controversy about group formation-including academic disputes-some items will always be present: groups are made to talk; anti-groups are [[map]]ped; new resources are fetched so as to make their [[boundary]]s more durable; and professionals with their highly specialized paraphernalia are mobilized.
[[RTS p29-1]]
First, to [[delineate]] a [[group]], no matter if it has to be created from scratch or simply refreshed, you have to have spokespersons which speak for the group existence... some people defining who they are, what they should be, what they have been... justifying the groups existence, invoking rules and precedents and... measuring up one definition against all the others... [32] There is no group without some kinds of recruiting officer... How many admonitions from parents, teachers, bosses, partners and colleagues before we learned that we had better be a group of our own (the ego)?... Although groups seem to be already fully equipped, [[ANT]] sees none existing without a rather large retinue of group makers, group talkers, and group holders...
Group delineation is... also the very constant task of the [[actor]]s themselves. Actors do the sociology for the sociologists and sociologists learn from the actors what makes up their [[set]] of [[association]]s
[[signifying]] [[regime]] [[priest]] [[placard]] [[territory]] [[pack]]s [[population]]s [[multiplicity]] [[ATP10 p8-1]]
[[RTS p31-1]]
Overdefining, make a group [[signifying]], giving it to a [[priest]] of the social sciences; "The [[ensemble]] is now entirely out of the social [[world]]-in the [[ANT]] [[sense]]-even though it is now, in the usual sense, a bonafide member of the [[social]]."
[[RTS p31/32-1]]
One way to mark this [[difference]] is to say that [[social]] [[aggregate]]s are not the object of an [[ostensive]] definition-like mugs and cats and chairs that can be pointed at by the index finger-but only of a [[performative]] definition. They are made by the various ways and manners in which they are said to exist... [35] For [[ANT]], if you stop making and remaking groups, you stop having [[group]]s.
[[RTS p33-1]]
[for [[ANT]] theorists] .every choice of a departure [[point]] will lead to the [[draw]]ing of a completely different animal, fully incommensurable with the others. For the first school, [[society]] is always there putting its full weight behind whatever vehicle can carry it; in the second approach, [[social]] [[link]]s have to be [[trace]]d by the [[circulation]] of different [[vehicle]]s which cannot be substituted by one another...
[the social] is only a [[movement]] that can be seized indirectly when there is a slight change in one older [[association]] mutating into a slightly newer or different one. Far from a stable and sure thing, it is no more than an occasional spark generated by the shift, the shock, the slight [[displacement]] of other non-social [[phenomena]].
[[RTS p34/35-1]]
[[social]] as a [[movement]] that needs to continually be done or it ceases to exist-hence the use of [[performative]] rather than [[ostensive]]
[[RTS p36-1]]
An [[intermediary]], in my vocabulary, is what [[transport]]s [[meaning]] or [[force]] without [[transformation]]: defining its inputs is enough to define its outputs [can be counted as one]... [[mediator]]s, on the other hand, cannot be counted as just one; they might count for one, for nothing, for several, or for infinity. Their input is never a good predictor of their output; their specificity has to be taken into account every time. Mediators [[transform]], [[translate]], [[distort]], and [[modify]] the meaning of the [[element]]s they are supposed to carry...
[[cause]]s and [[effect]]s are only a retrospective way of [[interpret]]ing [[event]]s. [[causality]]
...it is this [[constant]] [[uncertainty]] over the intimate nature of [[entity]]s-are they behaving as intermediaries or mediators-that is the source of all the other uncertainties we have decided to follow... the real [[difference]].. becomes [[visible]] when the means or tools used in construction are treated as mediators and not intermediaries.
[[RTS p37-1]]
To sum up the contrast in a rudimentary way, the sociologists of the [[social]] believe in one type of social [[aggregate]]es, few [[mediator]]s, and many [[intermediary]]s; for [[ANT]], there is no preferable type of social aggregates, there exist endless numbers of mediators, and when those are transformed into faithful intermediaries it is not the rule, but a rare exception that has to be accounted for by some extra work-usually by the mobilization of even more mediators!
[[RTS p39-1]]
For scientific, political, and even moral reasons, it is crucial that enquirers do not in advance, and in place of the [[actor]]s, define what sorts of building blocks the [[social]] [[world]] is made of.
[[RTS p40-1]]
[[action]] is not done under the full [[control]] of consciousness; action should rather be felt as a [[node]], a [[knot]], and a [[conglomerate]] of many surprising [[set]]s of [[agency]]s that have to be disentangled. It is this venerable source of [[uncertainty]] that we wish to render vivid again in the odd [[expression]] of [[actor]]-[[network]].
[[RTS p41-1]]
[[action]] should remain a surprise, a [[mediation]], an [[event]]. It is for this reason that we should begin... from the under-determination of action, from the [[uncertainty]]s and [[controversy]]s about who and what is acting when we [[act]].... [46] Since that which makes us act is not made of social stuff, it can be [[associate]]d together in new ways.
[[RTS p44-1]]
An [[actor]] is what is made to [[act]] by many others. An actor in the hyphenated expression [[actor-network]] is not the source of an action but the moving target of a vast array of [[entity]]s [[swarm]]ing towards it. To retrieve its [[multiplicity]], the simplest solution is to reactivate the [[metaphor]]s implied in the word actor... Action is borrowed, distributed, suggested, influence, dominated, betrayed, [[translate]]d. If an actor is said to be an actor-network, it is first of all to underline that it represents the major source of [[uncertainty]] about the origin of action... [47] Forgive them Father, they know not what they do.
[[mediator]]
[[RTS p45-1]]
It's precisely because the [[social]] is not yet made that sociologists of [[association]]s should keep as their most cherished treasure all the [[trace]]s that manifest the hesitations [[actor]]s themselves feel about the [[drive]]s that make them act... This is why we should paradoxically take all the [[uncertainty]]s, hesitations, dislocations, and puzzlements as our foundation. Just as actors are constantly engaged by others in[[group]] formation and destructions (1st uncertainty) they engage in providing controversial accounts for their actions as well as those of others... as soon as the decision is made to move in this direction, traces become innumerable and no study will ever stop for lack of information on those controversies
[[difference]]
[[RTS p46-1]]
The mistake we must learn to avoid is listening distractedly to these convoluted productions and to ignore the queerest, baroque, and most idiosyncratic terms offered by the [[actor]]s, following only those that have currency in the rear-world of the [[social]]... We have to resist the idea that there exists somewhere a dictionary where al the variegated [[word]]s of the [[actor]]s can be [[translate]]d into a few words of the social vocabulary...
Are we able to treasure this odd way of speaking or not? It was very precise, very revealing, very telling, and also very moving. Is not being moved, or rather, put into motion by the [[informant]]s exactly what we should mean by an enquiry?
[[RTS p47-1]] [[RTS p44-1]] [[RTS p45-1]]
We have to resist pretending that [[actor]]s have only a [[language]] while the [[analyst]] possesses the [[metalanguage]] in which the first is [[embedded]]... Analysts are allowed to possess only some [[infralanguage]] whose role is simply to help them become attentive to the actors own fully developed metalanguage, a reflexive account of what they are saying...
The [[ANT]] job is to "retrace the many different [[world]]s [[actor]]s are elaborating for one another."
[[RTS p47/48-1]]
[in his view] '[[social]]' is not some glue that could fix everything including what the other glues cannot fix; it is what is glued together by many other types of [[connector]]s.
social as a trail of [[association]]s, social designates a "type of [[connection]] between things that are not themselves social
[[RTS p1-1]]
The [[question]] then becomes how to explore the [[actor]]s own [[metaphysics]] [[RTS p49-1]]
Although we never know for sure who and what is making us [[act]], we can define a list of features which are always present in contradictory arguments about what has happened; [[agency]]s are always part of an [[account]]; they are given a [[figure]] of some sort; they are opposed to other competing agencies; and finally they are accompanied by some explicit theory of [[action]].
Next few pages describe this in detail
[[actant]] is mentioned as being figure
An agency can be a statistical aggregate as much as a person as much as a ghost; choice of figuration does not determine theory of action (is it an intermediary or mediator?) 55/58
[57] "///existence, figuration, and opponents" then a theory of action.
"The major distinction will be to decide whether the agency, once provided with existence, figuration, and opponents-is treated as an [[intermediary]] or [[mediator]]. In both cases, the outcome of the [[actor]]s account will be deeply different."
[[RTS p51-1]]
First, [[agency]]s are always presented as doing something, that is, making some [[difference]] to a [[state of affairs]], [[transform]]ing some As into Bs through trials with Cs.... An invisible agency that makes no difference... is not an agency... If it has no [[vehicle]] to travel, it won't move an inch, it will leave no [[trace]], it wont be recorded in any sort of [[document]].
[[RTS p52-1]]
... if [[agency]] is one thing, it's [[figure]] is another. What is doing the [[action]] is always provided in the [[account]] with some flesh and features that make them have some [[form]] or [[shape]], no matter how vague... To endow an agency with anonymity gives it exactly as much figure as when it is endowed with a [[name]], a nose, a voice or a face. To say 'culture forbids having kids out of wedlock' requires, in terms of figuration, exactly as much work as saying 'my future mother-in-law wants me to marry her daughter.' To be sure the first [[figuration]] (anonymous) is different from the second one (my mother in law) but they both give a figure, a form, a cloth a flesh to an agency forbidding me or forcing me to do things...
No one knows how many people are simultaneously at work in any given individual; conversely, no one knows how much individuality there can be in a cloud of data points. Figuration endows them with a shape but not necessarily in the manner of a smooth portrait... To break away from the influence of what could be called 'figurative sociology,' [[ANT]] uses the technical word [[actant]] that comes from the study of literature. [he is using this to describe that which is acting in a given statement, 'The united states wishes to withdraw from the UN' has the USA as actant.
[[RTS p52/53-1]]
Recording not filtering out, describing not disciplining, these are the [[law]]s and [[prophet]]s.
[[RTS p53/54-1]]
[[actor]]s also engage in criticizing other [[agency]]s... In the same way group-as-[[performative]] [[map]]s out for the benefit of the enquirer the anti-groups making up their social [[world]], [[account]]s of [[agency]] will constantly add new [[entity]]s while withdrawing others as illegitimate. Thus, each actor will map out for the benefit of the [[analyst]] the empirical [[metaphysics]] to which they are both confronted... 'I refuse to be taken over by the general opinion which is pure propaganda anyway,' 'you are thinking like your whole generation.' He gives more examples. "It's as if each of these [[sentence]]s was making some additions and subtractions to the list of agencies endowed with a legitimate role in the [[world]]. [57]
[[RTS p55-1]]
[[actor]]s are also able to propose their own [[theory of action]] to explain how [[agency]]s effects are carried over... actors... also have their own meta-theory about how agency acts... They will not only enter into a [[controversy]] over which [[agency]] is taking over but also on the ways in which it is making its influence felt. And here again, the major distinction will be to decide whether the agency-once provided with [[existence]] [[figure]] and [[opposition]]-is treated as an [[intermediary]] or [[mediator]]... [this makes] the actors account.. deeply different.. this difference cuts across all agencies, no matter what their figuration is.. the choice of figuration, in other words, is a bad predictor of which theory of action will be invoked. What counts is not the type of figures but the range of mediators one is able to invoke.
[[RTS p56-1]]
Causes, in such a strange and very archaic theology, are supposed to create things ex nihilo [they are acting as [[intermediary]]s}. But if vehicles are treated as [[mediator]]s [[trigger]]ing other mediators, then a lot of new and unpredictable situations will arise (they might make things do other things than what was expected)... the differences in the type of [[cartography]] are immense. The first solution draws [[map]]s of the [[world]] which are composed of a few [[agency]]s, followed by trails of consequences which are never much more than effects, expressions, or reflections of something else.
The second solution, the one preferred by [[ANT]] pictures a world made of concatenations of [[mediator]]s where each [[point]] can be said to fully act. Thus, the key question for a social science is to decide whether it tried to deduce from a few causes as many of the effects that where there in [[potential]] or whether it tries to replace as many causes as [[possible]] by a series of [[actor]]s-such is the technical meaning that the word [[network]] will later take.
[[RTS p57-1]]
"When a [[force]] [[manipulate]]s another, it does not mean that it is a cause generating effects; it can also be an [[occasion]] for other things to start acting... So who is pulling the strings? Well, the puppets do in addition to the puppeteers... the interesting questions at this point is not to decide who is acting and how but to shift from a certainty about [[action]] to an uncertainty about action-but to decide who is acting and how... recover the full range of [[uncertainty]]s about [[agency]]s." I don't play music, music plays me- [[language]] as a [[subject]] that speaks, and so on.
"..if action is dislocal, it does not pertain to any specific [[site]]; it is distributed, variegated, [[multiple]], dislocated and remains a puzzle for the [[analyst]]s as well as the [[actor]]."
Is anything that remains consistent in the speech of a group, or a discourse a sort of puzzle? or in any [[expression]]-all of us always discuss action, and it is always a puzzle-[[difference]] remains.(?) It does have to be constantly upkept, constantly assembled and having life be breathed into it
[[RTS p59-1]]
Concreteness does not come from choosing some [[figure]] over some other ones in the place of the [[actor]]s, but from the increase, in the accounts, of the relative share of [[mediator]]s over [[intermediary]]s. This will be the tell tale [[sign]] that indicates to us what is a good [[ANT]] study... The only important [[difference]]s to keep for now are the following: Which [[agency]]s are invoked? Which figurations are they endowed with? Through which [[mode]] of [[action]] are they engaged? Are we talking about causes and their intermediaries or a concatenation of mediators? ANT is simply the social theory that has made the decision to follow the natives, not matter what [[metaphysical]] imbroglios they lead us into-and they quickly do...
[[RTS p60-1]]
...[[group]]s are constantly being [[perform]]ed, and that [[agency]]s are ceaselessly debated...
[[RTS p61/62-1]]
...it's so important to maintain that [[power]], like [[society]], is the final result of a [[process]] and not a reservoir, a [[stock]], or a [[capital]] that will automatically provide an explanation. Power and [[domination]] have to be produced, made up, composed. Asymmetries exist, yes, but where do they come from and what are they made out of?
...In the same way as the overtaking of [[action]] by other [[agency]]s does not mean that society is taking over, the flagrant [[asymmetry]] of [[resource]]s does not mean that they are generated by [[social]] asymmetries. It just leads to the opposite conclusion: if inequalities have to be generated, this is proof that other types of [[actor]]s than the social ones are coming into play. [[RTS p63-1]]
For [[ANT]], as we now understand, the definition of the term [[social]] is different: it doesn't designate a domain of [[reality]] or some particular item, but rather is the name of a [[movement]], a [[displacement]], a [[transformation]], a [[translation]], an [[enrollment]]. It is an [[association]] between [[entity]]s which are in no way recognizable as being social in the ordinary manner except during the brief moment when they are reshuffled together.
To pursue the [[metaphor]] of the supermarket, we would call social not any specific shelf or aisle, but the [[multiple]] [[modification]]s made throughout the whole place in the [[organize]]ation of all the goods-their packaging, their pricing, their labeling-because those minute shifts reveal to the [[observer]] which new [[combination]]s are [[explore]]d and which [[path]]s will be taken (what will later be defined as a '[[network]]'). Thus, social, for ANT, is the name of a type of [[moment]]ary association which is characterized by the way it gathers together into new [[shape]]s.
[[RTS p64-1]]
If the [[social]] [[world]] was made of [[local interaction]]s, it will retain a sort of provisional, unstable, and chaotic aspect and never this strongly differentiated landscape that the appeals to [[power]] and [[domination]] purport to explain.
[[RTS p64/65-1]]
[[ANT]]s "[[slogan]] '[[Follow]] the [[actor]]s,' becomes 'Follow the actors in their weaving through things they have added to [[social]] skills so as to render more durable the constantly shifting interactions.
[[RTS p66-1]]
If [[action]] is limited a prior to what intentional meaningful [[human]]s can do, it is hard to see how a hammer, a basket, a door... could act... if we stick to our decision to start from the [[controversy]]s about [[actor]]s and [[agency]]s, then any thing that does modify a [[state of affairs]] by making a [[difference]] is an [[actor]]-or, if it has no [[figure]]. an [[actant]]... Does it make a difference in the course of some other agent's action or not? Is there some trial that allows someone to detect this difference?
...these implements, according to our [[definition]], are [[actor]]s, or more precisely, [[participant]]s in the course of [[action]] waiting to be given a [[figuration]].
[[RTS 70-1]]
[[ANT]] is not simply the empty claim that objects do things instead of human [[actor]]s: it simply says that no [[science]] of the [[social]] can even begin if the [[question]] of who and what participates in the [[action]] is not thoroughly explored, even thought it might mean letting in... non-humans... The project of ANT is simply to extend the list and modify the [[shape]]s and [[figure]]s of those [[assembled]] as [[participant]]s and to design a way to make them [[act]] as a durable [[whole]]... what is new is that [[object]]s are suddenly highlighted not only as being full-blown actors, but also as what explains the contrasted [[landscape]] we started with, the overarching [[power]]s of [[society]], the huge [[asymmetry]]s, the crushing exercise of power.
[[assemblage]]
[[RTS p71-1]]
[gives an explanation of how action and convo happens on a worksite] the apparently reasonable division between [[material]] and [[social]] becomes just what is obfuscating any enquiry on how a [[collective]] [[action]] is [[possible]]... by collective we don't mean an [[action]] carried over by homogeneous social [[force]]s but, on the contrary, an action that [[collect]]s different type of forces woven together because they are different... from now on the word collective will take the place of society... will designate the project of [[assembling]] new [[entity]]s not yet gathered together and which, for this reason, clearly appear as being not made of social stuff.
social and material are not to be distinguished a priori. material/social division is complete shit
[[assemblage]]
[[RTS p72-1]]
The social fluid does not offer up to the [[analyst]] a continuous and substantial experience, but rather puts up only a brief provisional appearance much like a shower of physical [[particle]]s in the brief instant its forced into existence. You begin with [[assemblage]]s that look vaguely familiar and you end up with completely foreign ones. It is true that this oscillation makes the [[tracing]] of social [[connection]]s especially tricky...
[[RTS p74/75-1]]
How are we to balance studies with these two halves of [[assemblage]]s? "One solution is to stick to the new definition of social as a fluid visible only when new [[association]]s are being made. Such is the rightful domain of [[ANT]], even though it is not a specific stretch of land nor an enclosed turf but only a brief flash which may occur everywhere like a sudden change of [[phase]]... those situations are not as rare as one might think. To be accounted for, [[object]]s have to enter into [[account]]s... the situation is the same for [[group]]s and [[agency]]s-no trial, no account, no [[information]]..." no difference that makes a [[difference]].[[RTS p77-1]]
Gives 4 examples of where [[technology]] comes to the forefront-[[innovation]] in workshops/labs/design departments, [[distance]] in time, ie archeaology or retro, accidents/breakdowns/strikes, and fourth "when objects have receded into the background for good" ie museums and historical accounts. Fiction on p83. Whole point is that these turn objects from being daily use [[intermediary]]s into being [[mediator]]s; bringing a certain strangeness with them.
[[RTS p79-1]]
...[[power]] and [[domination]] are explained by the [[multiplicity]] of [[object]]s given a central role and transported by [[vehicle]]s which should be empirically [[visible]]...
[[RTS p80/81-1]]
In plain [[English]], to say something is constructed means that it's not a [[mystery]] that has popped out of nowhere, or that or has a more humble but also more [[visible]] and more interesting origin.
[[RTS p83-1]]
Facts were [[fact]]s-meaning exact-because they were fabricated-meaning that they emerged out of artificial situations. Every scientist we studied was proud of this [[connection]] between the [[quality]] of its [[construction]] and the quality of its data. The strong connection was actually one's main claim to fame... Is a given fact of [[science]] well or badly constructed?
[[RTS p88-1]]
social construction meant a renewed attention to the number of heterogeneous [[reality]]s entering into the fabrication of some [[state of affair]]s
[[RTS p90-1]]
For a lawyer, its not the same thing to obey the constitution or to yield to powerful lobbies hidden behind the law... The substitution of the social with other stuff seems to every [[actor]] a catastrophic loss to be adamantly resisted-and rightly so!
What [[ANT]] was trying to modify was simply the use of the whole critical repertoire by abandoning simultaneously the use of [[nature]] and of [[society]], which had been invented to reveal behind social phenomena what was really taking place.
[[RTS p92-1]]
[[relativism]] is not the [[relativity]] of [[truth]] but the [[truth]] of the [[relation]] [[Deleuze]] [[The Fold]]
[[RTS p93-1]]
...no social explanation of science is possible... a new path opens up for social theory: the social has never explained anything;the social has to be explained instead. It's the very notion of a social explanation that has to be dealt with.
[[RTS p95-1]]
A [[notion]]-idea no longer concerns the [[effect]] of another [[body]] on mine , its an idea which concerns and has for its [[object]] the agreement or disagreement of characteristic [[relation]]s [[between]] bodies. A comprehension of [[causes]].
[[S0 p7-1]]
Primacy of [[idea]] over [[affect]]. "idea and affect are two kinds of [[mode]]s of [[thought]] that differ in [[nature]]." They, however, need each other. Affect is the non-representational of thought, idea is the representational character of thought. "[[formal]] reality of the idea: "the reality of the idea insofar as it is itself something." The idea of the idea itself, rather than the idea of the [[objective reality]] which the idea is a [[representation]] of,
"what [[Spinoza]] very often terms a certain [[degree]] of [[reality]] or of perfection that the idea has as such. As such, every idea has a certain degree of reality or perfection. (p3) the [[extrinsic]] character of the idea is the idea as such, formal character is the [[intrinsic]] character.
"I would say that for [[Spinoza]] there is a [[continuous variation]]-and this is what it means to [[exist]]-of the [[force]] of existing or of the [[power]] of [[act]]ing."
increase-diminution-increase-diminution
[[affectus]] ([[affect]]) in Spinoza is [[variation]]... continuous variation of the force of existing, insofar as this variation is determined by the [[idea]]s one has.
affect is constituted by the lived [[transition]] or lived [[passage]] from one [[degree]] of [[perfection]] to another, insofar as this passage is determined by ideas; but in itself it does not consist in an idea, but rather constitutes affect.
And on this [[melody]] [[line]] of continuous variation constituted by the affect, Spinoza will assign two [[pole]]s: [[joy]]-[[sadness]], which for him will be the fundamental [[passion]]s. Joy will be any passion involving an increase in my power of acting.
[[S0 p2-1]]
...an [[affection]] is the following: its a [[state]] of a [[body]] insofar as it is [[subject]] to the [[act]]ion of another body... "I feel the sun on me"... its an affection of your body... action always implies a contact, and is even a [[mix]]ture of bodies.
[[S0 p4-1]]
[[affectio]] is a [[mix]]ture of two bodies, one [[body]] which is said to [[act]] on another, and the other receives the [[trace]] the first. Every mixture of bodies will be termed an [[affection]]...
[affectio] indicated the nature of the modified body, not the [[modifying]] and it [[envelope]]s the nature of the [[modifying]] body.
...at the [[level]] of affection-[[idea]]s, we have only [[inadequate]] and confused [[idea]]s...
these are [[chance]] [[encounter]]s
[[occursus]]=encounter
[[S0 p5-1]]
In 'I don't like cheese,' there is also an [[affair]] of the [[soul]], but in "Pierre does not please me" there is also an affair of the [[body]]... this is an [[inadequate]] [[idea]]... [[consequence]]s separated from their [[premise]]s... a [[knowledge]] of effects independent of the knowledge of causes; they are chance encounters.
For [[Spinoza]], the [[individual]]ity of a [[body]] is defined by the following: its when a certain [[composite]] or [[complex]] [[relation]]... of [[movement]] and [[rest]] is preserved through all the [[change]]s which [[affect]] the [[part]]s of the body. Its a permanence of a relation of movement and rest through all the changes which affect all the parts...
[[S0 p6-1]]
interesting remarks on [[paint]]ing, [[line]]s, [[color]], [[form]], [[art]], and [[freedom]]
[[S0 p11-1]]
...there won't be any [[hierarchy]]. All the [[attribute]]s have the same [[value]] from the moment that they are attributes of [[substance]]. We are still in the [[abstract]]. This is the [[speculative]] [[figure]] of [[immanence]].
[[S1 p2-1]]
[[flat]] ([[plane of consistency]]?) and the [[plane of immanence]] are mentioned here in brief.
[[univocity of being]]. [[univocal]] [[being]] is precisely what [[Spinoza]] defines as being [[substance]] having entirely equal [[attribute]]s, have all things as [[mode]]s.
The attributes all equal to one another are the [[essence]] of being, and here you have this kind of [[plane]] onto which everything falls back and on which everything is [[inscribe]]d.
[[S1 p4-1]]
...I am two [[mode]]s of two [[attribute]]s: [[body]], mode of [[extension]]; [[soul]] ([[mind]] in my translation?) mode of [[thought]], but I am a single and same modification of [[substance]]. I am single and same modification of substance, which is [[express]]ed in two attributes...
[[ethic]]s vs [[morality]]
[[S2 p7-1]]
We only know two [[attribute]]s, [[thought]] and [[extension]]
[[S1 p5-1]]
We are not [[being]]s, but [[manner]]s of being. "This is a very, very curious [[vision]] of the [[world]], to see [[people]] as [[quantity]]s, as [[package]]s of [[power]]."
[[S3 p7-1]]
[[power of action]] is never an [[object]]. Its through [[power]] of [[action]] that I [[create]] or I [[submit]].
[[S3 p16-1]]
[[Spinoza]] will call [[affect]] that which [[realize]]s [[power of action]]. The [[concept]] of power of action for Spinoza will be in correlation with the concept of affect. Affect is defined exactly in this way: that which at a given [[moment]] fulfills my power of action, realizes my power of action. So, you see, to say that my power of action is realized is to say that it is realized by affects...at each [[instant]], affects fulfill my power of action. My power of action is a [[capacity]] that never exists independently of affects that realize it.
[[S3 p17-1]]
When it gets difficult to [[think]], one has to try to [[live]] through it.
[[S3 p20/21-1]]
[[Spinoza]]'s [[essence]]s as [[Deleuze]]'s [[singularity]]s. A discussion of [[ethic]]s and the [[surface]] vs [[morality]] and [[depth]]
"the two [[criteria]] of ethics, in other words, the [[quantitative]] [[distinction]] of [[existent]]s and the [[qualitative]] [[opposition]] of [[mode]]s of [[existence]], the qualitative polarization of modes of existence...
[[S2 p10-1]]
[[quantitative]] [[distinction]]: what a [[body]] can DO, not what it IS
[[S3 p3-1]]
What a thing can do is not the same thing as its [[essence]]... it opens up some [[experiment]]ation. [we have to experiment with things, follow up on hunches, intuitions, open up to the [[Cosmos]] to see just what it is that things can do]... I am not seeking someone's essence; I am creating something like a description of what he can do, a [[diagram]] of his [[power]].
[[S3 p5-1]]
This [[differentiable]] [[quantity]], the [[expression]] for which I am seeking, I at least have a name for it... it's [[power]] of [[act]]ion, specifically the [[actions and passions]] a thing is capable of, not what the thing is, but what it manages, what it is capable of managing and of doing. And if there is no general [[essence]], its because at this level of power, of action, everything is [[singular]]... A [[man]] cannot do what a neighbor can do. There will thus be an [[infinite]] differentiation of the [[quantity]] of power according to the [[existent]]s...
[[power of action]] is not what I want, by [[definition]] its what I have. [[will to power]] is discussed here [[Nietzsche]].
[[morality]]: what should you do? [[judgement]], [[essence]].
[[ethic]]s: what can you do? power of action
[[S3 p6-1]]
When you say "[[God]] prohibited [[Adam]] from eating of the fruit," you aren't [[express]]ing a fact; you are already giving an [[interpretation]]. It happens that this interpretation is from the [[Old Testament]]. It's an interpretation; it's not a fact. You are telling a [[tale]], the very tale told in the Old Testament. And this tale implies a certain [[code]], as we'd say today, What is the code? It's the [[system]] of [[judgement]]. "You are [[translate]]ing a fact"-there is indeed a fact; [[Spinoza]] is going to try to discover this fact-"but when you recount: 'God prohibited Adam and Adam did it anyway," well ,this is a tale, indeed its fine, its interesting, it's a tale that has its code and the code is the system of judgement.
[[strata]] [[judgement of god]] [[body without organs]]
[[S4 p8/9-1]]
...what will [[Spinoza]] call the [[effort of reason]]? The [[effort]] of [[reason]] will typically be an effort to [[select]] within a [[situation]] that which is apt to give me what Spinoza calls [[joy]] and to eliminate that which is apt to give me [[sadness]]..
[[S4 p13-1]]
What appears to me striking in a [[pure]] [[ontology]] is the [[point]] at which it [[repudiate]]s the [[hierarchy]]s
[[S3 p21-1]]
the [[status]] of [[being]]s in [[Spinoza]]'s [[ontology]] is double. On one hand, theres [[quantitative]] [[distinction]] between beings. From what [[point of survey]]? what [[quantity]]? Quantity of [[power of action]]. beings are each [[degree]]s of power of action. On the other hand, and at the same time, there's [[qualitative]] [[distinction]] [[between]] [[mode]]s of [[existence]]. From what point of view? From the point of view of [[affect]]s that [[realize]] power of action.... two [[concept]]ions... quantitative distinction between [[existent]]s, and... qualitative opposition between modes of existence, far from contradicting themselves, have been [[interlinked]] with one another the whole time.
POA is one status of the being, POA being realized is another? 1 vs 2. 1 (And its degrees of POA) vs 2 (and its qualities of affects)
...the [[difference]] [[between]] beings is quantitative and qualitative at the same time, quantitative difference of powers of action, qualitative difference of modes of existence. But it is not [[hierarchy]]cal
[[S4 p7-1]]
[[Spinoza]] says that what constitutes a [[thing]] is , in the end, an extremely [[complex]] [[aggregate]] of [[relation]]s...you or me, each of us is constituted by an aggregate of relations. Let's call these relations: [[constitutive relations]]
[[S4 p21-1]]
...the [[aptitude]] for being [[active]] or [[passive]] is exactly the aptitude I have for entering into relations with [[exterior]] [[body]]s, [[relation]]s of [[movement]] and [[rest]].
[[S5 p9-1]]
And between what are these [[relation]]s established?.. [[Spinoza]] would say: between [[particle]]s. For us... we could say: these are relations between [[molecule]]s. and then [[component]]s of molecules, and finally, we'd also come upon relations between molecules. We still don't know where these particles come from... So, I am constituted by an [[aggregate]] of so-called [[constitutive relations]], relations of [[movement]] and [[rest]] that are established [[between]] particles.
[[S5 p1-1]]
To some extent what I am calling "my [[constitutive relations]]" must never stop constituting each otter, and [[decompose]]ing each other, that is: they never stop passing into one another in both [[direction]]s, in the direction of a greater [[complex]]ity, and in the direction of an [[analysis]], a decomposition. And if I can say these are my constitutive relations, its because there is this [[mode]] of [[penetration]] of relations, of them in order to [[form]] my most complex relations, and my most complex relations never stop decomposing one another to the benefit of the simple ones. There's a kind of [[circulation]] that is going to define and that is going to be defined by the [[aggregate]] of relations that constitute me.
[[S5 p2-1]]
chyle and lymph are two [[system]]s of [[relation]]s between [[particle]]s. These are not simple [[body]]s, there are no simple bodies. Simple bodies are particles... I'll call chyle and lymph bodies of the first [[power]]. They are each defined by a relation of [[movement]] and [[rest]]. These relations agree... two relations agree when one and the other are directly composed. If they are directly composed, they compose a third, more [[complex]] relation. This third, more complex relation we can call a "body of the second power." This will by blood, my blood.
[[S5 p2-2]]
..these relations of [[movement]] and [[rest]] never cease [[pass]]ing into each other, being [[decompose]]d and [[recompose]]d. And that's what [[perseverance]] is, this [[communication]] of [[relation]]s. [[duration]]/[[consistency]]
[[S5 p2-3]]
Relations are [[eternal]]. 'to destroy' a relation is to stop it from being [[realize]]d.
And what are these [[particle]]s? You sense that these are nothing other, at the extreme, than relational supports. Obviously the particles don't have an [[interior]]ity; they are uniquely relational supports, relation terms, [[variable]] relational terms.
why do these particles no longer realize it? they no longer realize it because they have been determined to return under another relation, incompatible with mine. So, they no longer realize my relation, they have taken up another one.
[[actualize]]ing the [[relation]], [[realize]]ing the relation, means furnishing for the relation, entirely relative terms, since these terms will be relations in their turn, but other sorts of relations. As a result, every relation is a relation of relations to [[infinity]], the terms being simply the terms relative to a particular [[level]] of relation.
[[S5 p3-1]]
Some [[particle]]s that [[realize]]d one of my [[relation]]s are no longer realizing it.... Why do they no longer realize it?.. because they have been determined to return under another relation, [[incompatible]] with mine...they have taken up another one... that does not [[circulate]] with mine. [[poison]], [[sadness]] as poison
[[S5 p8-1]]
...[[soul]] and [[body]] are the same modification, in two [[mode]]s... What the [[body]] [[express]]es within the [[attribute]] [[extension]] the soul expresses it within the attribute [[thought]]. [you can't consider a modification of body under the attribute soul and vice versa]... we can only speak of [[movement]] and [[rest]] of [[body]]s, but not of souls. I can speak of a movement of the soul but this is through [[metaphor]]...
[[S5 p8-2]]
[[alienation]]
diminished [[self-presence]]
[[hyperreflexivity]]
[[self]]
Modern [[storytelling]] practices are not simply [[technology]]s for formatting [[discourse]]s. They are also the very [[space]] within which discourses are elaborated and [[transmit]]ted, a [[dispsoitif]] in which the social forces and [[institution]]s, storytellers and [more]... come into conflict or collude with one another-and we must not forget the [[fragment]]ed [[speech]] that constantly throbs and reverberates throughout the mediasphere... [we have] given birth to a "new [[narrative]] [[order]]..."
My intention is... to identify what is at stake in [narrative [[practice]]s], the ways in which they [[operate]], and their specific [[effect]]s.
[[SB7]]
The [[narrativist]] [[turn]] of the mid 1990s in the social sciences coincided with the [[internet]] explosion and the advances in new [[information]] and [[communication]] [[technology]]s that created the preconditions for the "storytelling revival" and that allowed it to spread so rapidly.
[[SB10]]
...[[reality]] is now caught in a [[narrative]] [[net]] that [[filter]]s [[percept]]ions and [[simulate]]s useful [[emotion]]s.
The great narratives that punctuate human history... told of [[universal]] [[myth]]s and [[transmit]]ted the lessons learned by past [[generation]]s. They passed on lessons in wisdom that were the fruit of cumulative experience. [[storytelling]] goes in the opposite [[direction]]: it tacks [[artificial]] narratives on to reality, [[block]]s [[exchange]]s, and [[saturate]]s [[symbolic]] [[space]] with its [[series]] and [[story]]s. It does not talk about past [[experience]]. It [[shape]]s [[behavior]]s and [[channel]]s [[flow]]s of [[emotion]]. Far from being the "course of [[recognition]]" that Paul [[Ricoeur]] detected in narrative activity, storytelling establishes narrative [[system]]s that lead [[individual]]s to [[identify]] with [[model]]s and to [[conform]] to [[protocol]]s.
[[SB23]]
Interesting page. Failure of socioprofessional [[category]]s for [[marketing]], [[advertising]], [[brand]]ing [[SB28]]
"The job of a marketer today is to [[aggregate]] people. It's not about eyeballs, its about engagement."... For that to happen, the brand must rediscover a strong and coherent [[identity]] that speaks to [[consumer]]s as well as to the company's collaborators-employees, shareholders, suppliers, investors-and [[condense]] all the [[element]]s that go to make up the company into a [[coherent]] [[story]]: its [[history]], the nature of the [[products]] it makes, the quality of its customer care, [[labor]] relations, and its relationship with the environment.
[[SB37]]
..[[storytelling]] is not just an effective way of attracting consumers and winning their loyalty. Marketers use this [[tool]] to understand what consumers think of the brand... [[observation]] has been developed to the point of [[paranoia]].
[[SB50]]
production of [[oxymoron]]s and contradictory marketing [[narrative]]s as a useful [[tool]] for [[marketing]].
[[SB50]]
The [[injunction]] to tell [[story]]s has swollen to become a popular obsession, an [[ideology]] and even a [[slogan]]-the slogan for a whole era.
This book is the product of an investigation into the new ways that [[narrative]]s are being used in areas as diverse as management, marketing, political and institutional communications, and the manufacture of [[news]]-and into the surprising applications of narrative in both civilian and [[military]] [[domain]]s.
There are spontaneous cultural practices, but there are also [[technology]]s of [[control]] and [[discipline]]
[[precept]] [[order-word]]
[[Storytelling Bewitching the Modern Mind]]
[[silence]] in the early [[factory]]s and [[workshop]]s
[[SB52]]
When it comes to storytelling management, David Boje is, however, the precursor with his 1991 study of storytelling performance in an office-supply firm. The analysis of 12 hours of taped interviews allowed him to identify eleven scenarios. Boje found that the narrative activity of a [[group]] or organization does not take the form of structured [[narrative]]s that are passed on by narrators to passive listeners. People tell their stories in fragments and are constantly interrupted by colleagues who add [[element]]s drawn from their own experience. The outcome is a [[collective]] [[form]] of [[narration]]. It is polyphonic but it is also [[discontinuous]] and made up of interwoven [[fragment]]s, of histories that are talked about and swapped. They can sometimes be contradictory, but the company becomes a [[storytelling]] [[organization]] whose stories can be listened to, [[regulate]]d, and, of course, [[control]]led. Silent firms like Enron or WorldCom are contrasted with the symmetrical model of a firm that is talkative and voluble, and that tells stories[[SB56]]
a man notices [[rational]] arguments beginning to fail in the 1990's-there's too much [[information]][[SB75]]
The [[irrupt]]ion of [[storytelling]] gurus into a business world famed for its cult of efficiency and pragmatism—that justifies its actions by appealing to supposedly [[natural law]]s (the market, profit), that is characterized by its aggressive tautologies (“business is business”), and that respects only the law of economic performance—is symptomatic of an underlying phenomenon, which might be described as the business world’s regression into the world of fables and fictions. The rise of storytelling in business is in any case inseparable from the “management guru” phenomenon. The term is recent and, according to David Greatbatch and Timothy Clark’s book on how the gurus perform, 36 was first used to describe management consultants in an article in the Sunday Times in 1983; it coincides with the emergence of the phenomenon in the United States.
[[SB77]]
The misunderstanding implicit in the appearance of the concept of “management gurus” in the America of the 1980s is therefore a good illustration of the slippage from a set of management tools and techniques that were to a greater or lesser extent inspired by the human [[science]]s (social psychology, rhetoric, and linguistics), to practices that are legitimized by [[magic]]al thought, and then storytelling. Denning writes: “When I saw how easily round-edged stories could slide into our minds, I found myself wondering whether our brains might not be hardwired to absorb [[story]]s.
tie to [[Stiegler]] book, decadence of... and the america vs japan craze at the end of the 1980's; SB 89 discusses the america vs japan thing [[SB87]]
FN43 provides a study to see the decline in the length of the life-cycle of a management idea from the 1950's-1990s
[[SB88]]
The idea of [[schizoanalysis]] having as its goal the demonstration that [[libidinal]] [[investment]]s are plugged into the [[social]] [[field]] by way of [[desiring-machine]]s.
...there are misunderstandings+ a whole game of investments that are the problem of [[schizoanalysis]]: instead of having the [[family]] as [[referent]], it has as a referent the [[movement]]s of [[deterritorialize]]ation and reterritorialize]]ation.
[[AO1 p11-1]]
[[Dev Systems]]
[[Mechanics]]
[[Molecular Biology]]
[[Neuro]]
[[PSY]]
iVBORw0KGgoAAAANSUhEUgAAAvUAAAE2CAYAAADh1m0KAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzt3Xl0FHXa9vErECBsjWwqgcioIKuACj4iuAcCbuwaBFxAxGUGWZy8wySPBNwVUIwL6CAgDlHZdERBAScq4gKJI/oIQWAUAmHJCFkwgXT6fv/gpIcm6XQSOglFvp9zcrSrqqvu7rr7Vxfd1dUhZmYCAAAA4Fg1qroAAAAAAKeGUA8AAAA4HKEeAAAAcDhCPQAAAOBwhHoAAADA4Qj1AAAAgMMR6gEAAACHI9QDAAAADkeoBwAAAByOUA8AAAA4HKEeAAAAcDhCPQAAAOBwhHoAAADA4Qj1AAAAgMMR6gEAAACHI9QDAAAADkeoBwAAAByOUA8AAAA4HKEeAAAAcDhCPQAAAOBwhHoAAADA4Qj1AAAAgMMR6gEAAACHI9QDAAAADkeoBwAAAByOUA8AAAA4HKEeQIUws6ouATgt8Fo4c5Vm357q/qd/UFqhVV0AAOdYuXKlli1bppycHL/LREVFKTc3V0888YS2bdsml8tViRXiTPTRRx/pqaeeUp06ddSiRQtdcskl2rhxoxITE6u6NL8yMzP12muvaeXKlerXr5+mTJlS1SUhgDlz5mjdunUBl/vjH/+o//znP3r77beVnZ2tVatW+V02ISGhXGMh/YPy4J16AKV288036/rrr9fSpUvVuHFjLVmyREuWLNE777yjOXPm6PLLL9emTZvUuXNn3Xjjjapfv/4pb/Po0aNBqBxO9emnn+q2227TzJkztXbtWs2dO1dbt27V22+/rby8vKouz69GjRpp0KBB+vzzz+XxeKq6HJTCl19+qbPOOkuPPfaY5s6dqz/84Q9aunSpoqOj9fLLLysmJkb79+/Xzz//rKioKG3durXENzgklXsspH9QHoR6AGUSEREh6fhBp1CNGjXUtGlT/fnPf1abNm103XXX6Y033lDNmjVPaVtZWVmaNGnSKa0DzjZ//nxdeOGFuvzyyyVJ9erV09y5c9WnTx+lp6dXcXUla9OmTVWXgDIICwvTK6+8ovbt26tJkyYKCwuTJDVo0EBnn322evToodmzZysvL0/169dXy5YtA67zVMZC+gdlRagHUCYhISF+5/3222965JFHJEkej0cFBQU+848dOyZJys/P93n3yePxKCsry2fZvLw8RUdHa+fOnUW2c+K799nZ2X7ryc/P1++//17svOK2WZp5qFw5OTn66aeftGnTJu+0kJAQxcTEFLuPStrn0vHzkw8fPux3fmZmpt95pe07j8dT4ju4Fdm/9G75/fnPf1atWrVKXKZbt26Kiooqdp6/fVmWsbBw+VPtH8a+6olQDyAofv31V82fP19btmxRTEyMWrdure3bt0uSPvnkEw0fPly9evXSkiVLdM455+j666+XJCUmJmrcuHFauXKlRowYoVmzZkmSli1bpuTkZG3ZskUTJ07Uxx9/rNWrV6t///7q0aOH1q5dq8suu0wul0tRUVFyu93eWg4ePKjY2FjFxcUpKipKffv21d69e73z/W0z0DxUviFDhsjtdisyMtLnHPrIyEh17drVezvQPv/9998VFxenqVOnKiEhQW3atNGHH37onTdx4kRNnz5dL7/8sq644grNmDHDG7ZK23dut1uTJk1SbGysXnvtNU2cONHnsVR0/9K7p+aiiy4KuExISIjatm3rM23p0qXq0qWLXC6Xrr32Wu9pYWUdC4PRP4x91ZwBQBkkJSWZJOvVq5c9/vjj9vjjj9tf//pX69Spk82YMcMyMzMtPj7eJNnWrVvNzOzAgQN22WWXWZMmTWzp0qWWlJRkc+fOtfz8fGvQoIHt37/fu1x8fLx3W71797Z+/fr5bP/mm282l8tlixYtMjOzxMREk2TLly/3LjNgwABLS0szM7Pc3Fxr3ry59e/f38ysxG0GqgdVIzY21kJCQkyS3XDDDbZt27Yiy5S0z83M7r77bktMTPTeHjRokDVv3tx73+nTp3vn7dixw+rVq2f/+7//651Wmr4bM2aMTZkyxXs7OTnZJNnjjz9epvWUp3/p3eCLi4szSbZ69epi5/fr18/OOeccW7JkiZmZLV261CTZW2+9ZWZWprHQLDj9w9hXvRHqAZRJYaiPjo629evX2/r1623NmjU2atQomzFjhpmZLVmyxOdAZmZ2++232x/+8AefdeXm5lpoaKiNHz/ejh07ZmZmqamp3vnFhfpx48ZZq1atvLePHDlikuzpp5/21teiRQubMWOG969du3YWGhpqubm5JW4zUD2oOuvXr7fOnTubJAsLC7Nly5Z55wXa5xs3brTGjRubx+Px3mf37t22evVq27hxo0myzZs3+2zvnnvusVq1allW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1zRmzBj98Y9/VEZGhv7+978XWaakY0NJPfHUU0/p3HPP1cCBAyUdfyPk/vvvV+PGjfXuu+9KUoWNfU4+xiCAKv6koErExsZaSEiISbIbbrjBtm3b5jM/MzPT4uPjTZJt3brVO3327NnWsWNH7+27777bGjdubFu2bLGcnBwzM7v55pvN5XLZokWLzMwsMTHRJNny5cv91vP000+bJPvxxx+909566y176623/NaTn59vDRo0sP3795uZ2YEDByw+Pj7gYw8PD/cul5WVZbVq1bLFixeXeJ+Krs/f812a57J3797Wr18/n/UNGDDA0tLSzMwsNzfXmjdvbv379/fWcdlll1mTJk1s6dKllpSUZM8//7xdeumldtZZZ9m7775rubm59vHHH1v9+vXt2muv9Xu/uXPnBtyevxoD7YfyPvbKsmnTJpNko0ePtv3799uGDRvsvvvusxo1atgDDzxgbrfbZ/l+/frZOeecY0uWLDEzs6VLl5okbw+Zlfw8PvDAAxYaGmoLFy40j8djBw4csDp16li3bt0sOTnZzMw++eQTk2SfffZZqdYJZ/jxxx/9nn5TqFmzZla3bl0rKCjwO57cfffdlpiY6L09aNAga968eZnHr8o+PqBq/N///Z/deeedZmZ29OhRO/vss61z585Flivp2BCoJ3r27GmRkZHe+Vu2bCkyLlbU2He6H2NQPtXunXpJevzxx/XFF1+oc+fOWrdunbp06aLly5d757tcLnXq1KnI/VatWqXw8HDv7QEDBujQoUNq1KiR9wtTLVu2lMvl0siRIyVJt956qyRp27Ztfut54IEH1KBBA82fP9877aOPPtKwYcP81uN2u5WXl6cnnnhC+fn5at68eZEr+BRn4sSJGjx4sCQpLCxMYWFh2rVrV4n3qej6/D3f5XkuP/vsM3377bd6++23NXPmTL388stq0qSJ1qxZo7y8PDVv3lxt2rSRy+XSkCFDdM0112jChAk6//zz1bp1aw0bNkxhYWHq27ev7r33XiUlJenXX38t9n733XdfwO35E2g/lOexV4WvvvpKDzzwgK688kr98MMP2rdvn1555RXVrFmzyLJt27bV0KFDJUk333yzQkNDvY8n0PMYHh4ut9utO++8UyEhIWrevLkuvvhiNWvWTJdeeqkk6YorrpAkbd26tVTrxJmjfv36crvdKigoKHY8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
The second articulation concerns [[expression]]
[170] Perhaps I should emphasize why I hold these second-order concepts to be so important: As soon as you with- draw to the area of the second-order—the understanding of understanding, the knowledge of knowledge—the first-order problems are suddenly illuminated in ways that you can’t perceive on the first level.
The purpose of [[purpose]] is the determination of [[goal]]s without having to consider the ways, routes, and trajectories right away. And that also hits on the point that Norbert [[Wiener]] and the early [[cybernetic]]ists recognized very decisively: What does the navigator who wants to get into the harbor do? In a purely physical way I can never determine what course the ship will take to get into the harbor. The wind is roaring from the left or right, obstacles sud- denly tower before you, other ships are crossing. Laying it out like this just isn’t possible. But as a rule the navigator manages to get the ship safely to harbor because he constantly sees the divergences from the course and can correct the steering—and in this way finally lands in the harbor. And that’s why the introduction of purpose makes cybernetic [171] and physical sense: It’s purposeful. It relieves me of the burden of having to constantly deal with the next step.
[purpose as [[continuous]] not [[discrete]] ]
[[HE169/170]]
belonging to the past time of memory
[[thirdness]] is [[mediation]], [[secondness]] is [[relation]]. [ [[firstness]] is [[immediacy]] ]
[[12CS14]]
So [[secondness]] is when [[potential]]ity is [[actualize]]d in a [[state]] of [[thing]]s. You can see that we're
beginning to sketch out our [[action-image]]. The [[affection-image]] is the [[power]]-[[quality]] in itself,
[[12CS15]]
...all these heterogenous [[element]]s compose "the" [[multiplicity]] of [[symbiosis]] and [[becoming]]. If we imagine the positions of a fascinated [[self]], it was because the multiplicity toward which it leans, stretching to the breaking point, is the continuation of another [[multiplicity]] that works it and strains it from the inside. In fact, the self is only a [[threshold]], a door, a continuous [[line]] of [[borderline]]s ([[fiber]]) following which the multiplicity changes.
[[ATP p249-2]]
Self-[[identity]] requires
that every entity have one conjoined, self-consistent function, whatever be
the complexity of that function. [[P57]]
Time and again it must be said that this means that the [[system]] has only its own [[operation]]s at its disposal. In the system, there is nothing but the system's own operations. These operations serve two distinct purposes. On the one hand, they are needed for the formation of the system's own [[structure]]s. The structures of an operationally [[closed]] system must be created through the system's very own operations. In other words, there is no importation of structures! This is what is meant by "[[self-organization]]."
[[IS70]]
there is no difference between [[self-reference]] and [[observation]]. For he who observes something must distinguish himself from that which he observes
We begin with a distinction. However, since the result of the distinction must function as a [[unity]], the distinction can be neither designated nor named. It is simply there.
[[IS49]]
"that which can only be sensed" [[DG94]] (really 95)
"That
which can only be sensed (the [[sentiendum]] or the [[being of the sensible]])
[[DG102]]
the [[sign-vehicle]] of the [[sign]]... is only some [[element]] of a sign that enables it to [[signify]] its [[object]], and when speaking of the signifying element of the sign or rather the sign vehicle, this is what he means...
[[Peirce]]'s notion of [[determination]] ... is that the object imposes certain parameters that s sign must fall within if it is to [[represent]] that object... only certain characteristics of an object are relevant to this [[process]] of determination... the causal connection... is the characteristic it imposes upon its sign, and it is this connection that the sign must represent if it is to succeed in signifying. [Objects have an inexhaustible plenitude; in order for an object to be signified as such, it must impose restrictions on the sign. In order for a painting to be signified as the painting, I ignore the brute reality of the canvas, the paints, and instead have the picture itself signified. A manner of bracketing things out, of placing an [[order]]-ing out of excess]
...although we have characterized the [[interpretant]] as the understanding we reach of some [[sign/object]] [[relation]], it is perhaps more properly thought of as the [[translation]] or development of the original sign. The idea is that the interpretant provides a translation of the sign, allowing us a more complex understanding of the signs object...
Second, just as with the sign/object relation, Peirce believes the determination is not determination ion any causal sense, rather, the sign determines an interpretant by using certain features of the way the sign signifies its object to [[generate]] and shape our understanding.... the way smoke generates or determines an interpretant sign of its object, fire, is by focusing our [[attention]] upon the physical connection of between smoke and fire
[[summary]]: ...any instance of [[signification]] contains a sign-vehicle, an object and interpretant. The object determines the sign by placing constraints which any sign must meet if it is to signify the object. Consequently, the sign signifies its object only in virtue of some of its features. The sign determines an interpretant by focusing our understanding on certain features of the signifying relation between sign and object. This enables us to understand the object of the sign more fully.
[[generative]] [[transformative]] [[schizoanalysis]]
[[SEP Peirce]]
...whilst our interpreting the [[signifying]] [[relation]] between [[sign]] and [[object]] relied upon understanding the basis of [[signification]] in any case... the generated [[interpretant]] itself functions as a further, more developed sign of the object in question... as a further sign, it will also signify that object through some features... we must interpret, and generate a further interpretant. [[infinite]] [[semiosis]]. [[infinite semioisis]]
[[icon]]s-a mere community in some quality
[[index]]-relation to their object consists in a correspondence of fact [ie causality or brute facts]
[[symbol]]-relation to their objects is an imputed character
[[SEP p3/4-1]]
Noise, art, [[repression]] discussion added at the start-move elsewhere? [[morph]] [[substance]] [[form]] [[circulation]] [[homogenization]] [[speed]] [[spinoza]] [[anidiom]]
"It is only under certain conditions that [[strata]] can be said to include [[sign]]s; signs cannot be equated with [[language]] in general but are defined by [[regime]]s of [[statement]]s that are so many real usages or [[function]]s of language. Then why retain the word sign for these regimes, which [[formalize]] an [[expression]] without [[designating]] or [[signifying]] the simultaneous [[content]]s which are formalized in a different way?
Signs are not sings of a thing; they are signs of [[deterritorialize]]ation and [[reterritorialize]]ation, they mark a certain [[threshold]] crossed in the course of these movements, and it is for that reason that the [[word]] should be retained (as we have seen, this applies even to an [[animal]] "signs")." (See [[ATP p65-1]]
[[ATP p67/68-1]]
We have already seen that [[signifiance]] and [[subjectification]] are semiotic systems that are entirely distinct in their principles and have different [[regime]]s (circular irradiation versus [[segmentary]] [[linear]]ity) and different [[apparatus of power]]s (despotic generalized slavery versus [[authoritarian]] contract-proceeding.)
[[ATP p181/182-1]]
Here we find the core reason supporting
Deleuze's critique of [[Plato]]. If allusion to [[simulacra]] undermines the
relation between [[model]]s and [[copy]]s, then this is because the order
of simulacra announces a [[difference]] other than that found in the
relationship of a model to a copy or in resemblance between copies. A
simulacrum is a difference without a model.
[[pure difference]] [[DG30]]
In [[simulacra]], repetition already plays upon repetitions, and difference already plays upon differences. Repetitions repeat themselves, while the [[differenciator]] [[differenciate]]s itself. The task of [[life]] is to make all these repetitions [[coexist]] in a space in which difference is distributed. [[quote]][[RDxix]]
What is an inflection? An inflection – I am generally using language from mathematics – the inflection of a line is a [[singularity]], that is – oh, it’s not complicated – a singularity is something that happens to a line; it’s an event, something that happens to a line, the curvature. We will call it point of inflection; it’s a singular point. Every singular point is not an inflection, but the point of inflection is a singular point, the singular point of this inflection. In general, singularities are not independent from an axis of coordinates, but the inflection is independent of any axis of coordinates. It does not assume any coordinates
[[L81-12]]
If the [[action-image]], according to the terminology we've borrowed from [[Peirce]], is the
domain of [[secondness]] in the very approximate form: two... in any action, there are
two, we see that this level of the action-image presents two types of secondness. The
first secondness – and this is what will constitute the whole of the action-image – first
secondness is that of the sinsign, or of the milieu itself as a derived [[world]]. In what
way does this constitute secondness? In that the [[power]]-[[quality]]s are [[actualize]]d in a
state of [[thing]]s. There are indeed two terms: the power-qualities and the state of things
that actualizes them. These two terms are nonetheless quite difficult to distinguish, so
I would call this an introductory secondness. [[embryonic]]
Second secondness: the character acts, and by [[act]]ing, by behaving, [[react]]s upon the
situation. Here we have a real secondness. But in what form? Action, modification of
the situation. Or more profoundly, what is this second secondness exactly? It is –
and in fact we have seen it... we have seen it and that's why Peirce's analysis is
useful to us, we have seen this – all [[action]] implies [[reaction]], all effort implies
[[resistance]]. And after all behavior can perhaps only be conceived in what form? In the
form of a duel. And this is the true secondness of the action-image. It will necessarily
be a question of a [[duel]]: a duel with the milieu, or a duel with an [[element]] of the
milieu, or a duel with someone else.
Already, we can be either worried or satisfied, but we have the presentiment that the
form of the duel opens up all kinds of possibilities and that you will find it every time
there is behavior. Every time there is behavior, a duel is inscribed in the behavior. It
is this that will apportion the emotions and motives of the behavior. Now this, always
keeping to Peirce's vocabulary, is the domain not of the sinsign but of the [[index]].
When two elements are in a relation of action and reaction, one is the index of the
other. The [[resistance]] is the index of the effort, and the [[effort]] is the index of the
resistance. I would say, therefore, that the two secondnesses of the action-image in
this realist sense are that of the sinsign and that of the index.
[[14CS7]]
[[digitus]] [[prophecy]] [[larval selves]] [[essay idea]]
general [[term]]s
abstract
[[antecedent]] [[behavior]] [[consequence]]
[[chain]]
[[avoidance]]
[[conditioned aversive stimuli]]
[[contingency]]
[[control]]
[[deprivation]]/[[satiation]]
[[escape]]
[[extinction]]
[[fading]]
[[frequency]]
[[generalization]]
[[induction]]
[[lawful]]
[[learn]]ed and unlearned
[[maintenance]]
[[neutral stimulus]]
[[operant]]
[[Pavlov]]
[[punishment]]
[[punisher]]
[[prompt]]ing
[[rate]]
[[reflex]]
[[reinforcement]]
[[reinforcer]]
[[respondent]]/Pavlovian
[[shaping]]
[[stimulus control]]
[[stimulus discrimination]]
[[stimulus induction]]
--------------------------------------------------------------------------------------------
[[Contingencies of Reinforcement]] maxims converted into behaviorist lingo as an essay
---------------------------------------------------------------------------------------------
[[Verbal Behavior]]
relationship between a community's established operants, their tending toward a certain average level (look for the middle in the 40's or 50's on this) and precepts from ATP
[[autoclitic]]
[[class]]
[[community]]- a sort of [[collective assemblage]]
[[conditioned aversive stimuli]]
[[echoic]]
[[energy]]
[[generalized conditioned reinforcer]]
[[instance]]
[[intraverbal]]
[[meaning]]
[[mand]]
[[operant discrimination]]
[[speed]]
[[strength]] - speed, energy, repetition
[[tact]]
[[textual]]
total speech [[episode]]
[[verbal]]
[[prediction]] of probability of future occurrences-[[behaviorism]] as operating of/creating predictions-[[Maturana]]s notion of [[cognition]] as fundamentally [[infer]]ential.
Skinner's [[semiotic]]s as [[transition sign]]s [[transition]] [[neutral]] to [[conditioned]] stimuli
[[cognition]] is a tag marking pages to [[revisit]] and [[review]]
[[condition]]ing vs [[experience]]
[[Symbolic Misery vol 1]]
...the [[aesthetic]] [[apparatus]] of [[socialization]] and the feeling of a [[we]] that it alone can engender are now extremely fragile, if not completely destroyed. It is because of the AA of socialization that men and women live together, are able to live together... and say 'we'.
[[SM1 p10-1]]
I am the relationship with my [[object]]s inasmuch as it is [[singular]]. But the relationship with the [[standard]]ized objects of [[industry]] is 'profiled' and categorized into [[particular]]isms which, for the purposes of marketing, constitute [[market]] [[segment]]s. In this way the singular is [[transform]]ed into the particular...
[[SM p1/3]]
By [[symbolic misery]] I mean, therefore, the loss of [[individuation]] which results from the [[loss]] of [[participation]] in the production of [[symbol]]s. Symbols here being as much the fruits of intellectual life (concepts, ideas, theorems, [[knowledge]]) as of [[sensible]] life ([[art]]s, know-how, mores). And I believe that the present state of generalized loss of individuation can only lead to a [[symbolic]] collapse, or the [[collapse]] of [[desire]]- in other words to the decomposition of the social as such: total war.
[[SM p5]]
[[epiphylogenesis]]... is the sedimentary deposit left by the [[process]] of production of [[tertiary retention]]s... it is both the process of production and the resultant [[system]] of these retentions. Epiphylogenesis and the retentions that constitute it as a system, are the [[condition]] for the constitution of a '[[we]]'.
[[SM p15-1]]
...[[grammitization]]... [[analysis]] as discretization of the [[continuous]].
[[SM1 p35-1]]
...an [[I]] is also a [[consciousness]] consisting of a [[temporal]] [[flux]] of [[primary retention]]s. The primary retention is what consciousness retains in the now of the flux that constitutes it... My conscious life is essentially made up of such retentions, which can be just as much [[phenomena]] that I [[receive]] as ones that I [[produce]]... these retentions are selections: you do not retain everything that could be retained. In the flux of what appears to your consciousness, you make [[selection]]s which are personal retentions: these selections are made through the [[filter]]s of [[secondary retention]]s which are held in your [[memory]] and which constitute your [[experience]]
..conscious life consists of such an [[organization]] oof primary retentions, R1, filtered by secondary retentions, R2, with the relations of primary retentions and secondary retentions ultimately determined by what I call [[tertiary retention]]s, R3-there R3 relating just as much to [[technical individuation]] as to the [[process]] of [[grammitization]] which traverses it. These interactions can be written as follows.
R3 (R2(R2))
But since R1 is in fact always a selection, we should write it as S1:
R3(R3(R1=S1))
Or even
((S1=R1)=f (R2))=f (R3) Jack time: does this simplify to (f(R2))=f (R3)?
Clearly, such a flux should not be thought of as an even [[line]]. It is less a line than a [[tissue]] or a [[weave]]-what I have referred to as my temporal [[fabric]]-such that certain [[motif]]s and [[design]]s are delineated there. The primary retention is here also the [[recurrence]], the [[return]], the [[refrain]] and the [[haunting]] of that which [[persist]]s. Ultimately the flux is a whirling [[spiral]] where [[event]]s may take place... And one could demonstrate that a primary selection is the [[repetition]] of a secondary retentions in what is primarily retained from what has happened. But also, for the same reason and at the same time:
That there is only [[repetition]] (everything is the reactivation of a secondary retention, that is, its repetition);
That there is never repetition (nothing ever happens again in an identical way: the repetition of the same [[temporal object]] always produces two different phenomena.
In any case, tertiary retentions result from what I call the [[epiphylogenesis]] (-etic in text) [[situation]] of the [[genre]], constituting the [[technical]] life thatr corresponds to what we also call the human species-which being originally constituted by its [[prosthetic]]ity, has at its disposal a third, technical [[memory]], which is neither genetic nor epigenetic.... The epiphylogenetic [[milieu]], as the gathering of tertiary retentions, constitutes the [[support]] of the genre. The tertiary retentions form retentional [[apparatus]]es which define different [[epoch]]s of epiphylogenesis]].
[[sxd]]
[[SM1 p49-1]]
...to [[grammatize]] means to [[discretize]] in order to [[isolate]] [[gramme]]s, or the finite number of [[component]]s forming a [[system]]...
[[grammitization]] [is] an essentially [[technical]] occurrence...
[[SM1 p52-1]]
In the history of the [[process]] of Western [[psychic]] and [[collective individuation]], [[grammitization]], as [[technical individuation]], is a [[weapon]] in [[control]] of [[idiom]]s, and through them, of [[spirit]]s or [[retention]]al activity; the grammitization of an idiom is its transformation ([[individuation]]).It is never the case that the process of describing an idiom by grammitization leaes that idiom intact, including, and above all, when it results in a grammatical theory [a] general [[grammar]]... the grammatical [[project]]ion... is what has enabled the [[West]] to wage its war on spirits-a war where it assures ist control of spirits through the [[control]] of their [[symbol]s, which is to say by imposing [[criteria]] of [[select]]ion on their particular retentional [[apparatus]]es. Grammitization is the production and [[discretization]] of [[structure]]s (which traverse [[pre-individual]] [[milieu]] and trans-individual organization, and which are supported by [[technical]] or [[mnemotechnical]] apparatuses]].
[[SM1 p54-1]]
[[grammitization]] is a war waged on [[spirit]]s via the [[technical]] [[development]] ([[individuation]]) of [[system]]s of [[tertiary retention]]s. It characterizes the [[process]]es of [[psychic individuation]] and [[collective individuation]] constitutive of the unity of the western [[world]]...
[[SM1 p55-1]]
...the [[control]] of [[secondary retention]]s by [[televisual]] [[tertiary retention]]s leads to a [[process]] of hyper[[synchronization]], such that the [[consumer]]s of the [[industrial temporal object]]s that are audiovisual [[program]]s tend [[asympomatic]]ally to adopt the same secondary retentions, meaning that they make the same [[selection]]s in their [[primary retention]]. This results in a loss of [[singularity]] among [[individual]]s who... become [[dividual]]s. There is therefore a dis-individuation such that the individual's narcissistic capacity is first of all excited (including in the hyper-[[narcissism]] characteristic of certain sphere of [[work]]) before collapsing. Deprived of singularity, they attempt to singularize themselves through products suggested by the [[market]] which exploits this [[misery]] peculiar to consumption.
[[treatment]] a new type of [[pathology]] that inheres and subsists under categorizations of melancholia, [[depression]], ennui?
[[SM1 p56-1]]
[[attention]] is, through and thorugh, the holding of [[retention]]s in and by the [[object]] of attention: in and by in the sense that it is in the object that what is retained of the object by attention-to the extent that it is attentive- is to be found. While, on the other hand, attention is attentive to the extent that it is anticipatory, which is to say, in the [[language]] of [[phenomenology]], pro-tended and pro-tained by its [[protention]]s-the object bein constituted as an object of attention precisely by [[anticipation]]s preceding the object, anticipating it as the relationship to a [[future]] where attention is constituted. Attention which anticipates is in this sense taken by the object.
[[SM1 p60-1]]
Now, the [[protention]]s that [[draw]] out [[attention]] and keep it attentive, and in a certain [[sense]] alert, and which constitute the vigilance of that which [[anticipate]]s, are themselves concealed in [[retention]]s: they are what the retentions of the [[past]] allow in the [[project]]ion of the [[future]]. t is as an accumulation of experiences in what I have previously called [[secondary retention]]s that the [[horizon]]s of anticipation are formed. These are, in a certain sense, the positive of the negative made up by the retentional [[residue]]s that fabricate [[consciousness]] as the [[memory]] of past experiences in the form of secondary retentions.But, as we have seen, the secondary retentions where these protentions are formed [[filter]] the primary retentions and [precede the [[possible]]ty of the object of attention.
Attention means, whoever, [[projection]] in the object as the constitution of [[primary retention]]: primary retention is the [[content]] of attention-that is, anticipation-or, if you prefer, its setting. But this anticipation that is constitutive of the attention brought upon a given content, an anticipation which is the opening of consciousness par excellence inasmuch as it is attentive to its objects, inasmuch as it is 'conscious', is what is '[[capture]]d as attention by way of [[mnemotechnology]]s. This anticipation that forms attention is what is literally flattened by the hyper-[[synchronization]] typical of the hyper-[[industrial]] age, where it is transformed into the calculated result of a retentional [[apparatus]], [[standard]]izing a retentional [[ground]] that is in principle [[singular]]- a ground from which, precisely because of its singularity, attentive consciousnesses learn something of themselves though the attention they direct towards the [[other]]who is a [[mirror]] of their own [[alterity]] or their own future possibilities, which is to say of the [[open]] incompleteness of their [[individuation]].
[[SM1 p64-1]]
The current [[loss]] of [[individuation]] is a stage of [[grammitization]] where the [[three]] [[individuation]]s ([[psychic]], [[collective]], and [[techno-mechanical]]) generalize [[formalization]] through [[calculation]]... necessarily leads... to the formalization of the [[reader]] himself, of this reader inasmuch as he constitutes an [[idiolectic]] [[grammar]]. [I internalize how to Google, and that formalizes me due to my 'reading' of the [[hypertext]] ]...
this [[exteriorization]] no longer allows for a correlative [[interiorization]]...
[[SM1 p65-1]]
A [[reader]], or more generally, a [[speaker]] (but this is true for every [[signifying]] [[structure]]) is the bearer of their own [[idiolectic]] [[grammar]], which constitutes their [[singularity]] and which [[resonate]]s with grammars that are more [[idiomatic]] and which may be closer or further from it. [[idiolectality]] is the situation of every local [[idiom]] in its relation with the more [[generic]] idiom that surrounds it... what allows the... [[individuation]] as the co-individuation of an [[I]] and a [[we]]...
[[SM1 p70/1-1]]
The previous thoughts can be applied to [[social system]]s if we succeed in identifying an [[operation]] that meets the following conditions: it must be one single operation; it must always be the same; and it must possess connectivity. It is this operation that either ceases or continues as the same operation. I think that we do not have many potential operations to choose from. In actual fact, [[communication]] is the only type of operation that meets these conditions. A social system emerges when communication [[develop]]s from communication. There is no need to discuss the problem of the first communication, for the question "What was the first communication?" is already a question within a communicating system. In the beginning, the system always thinks outwards from its center. Once it has become complex enough, it can ask the question as to how it all began. There may then be different answers. However, they do not disturb the continuation of the communication. On the contrary, they may even quicken it. Thus, the [[question]] concerning the [[beginning]] or [[origin]] is of no particular interest to us; or, to put it differently, it interests us merely as one question among many.
[[IS53]]
also used as [[social-machine]]
the limit of the socius is the [[Body Without Organs]]
the [[inscription surface]] of [[production]]
FN 24 p228 "I refer to a [[society]] as [[hyperindustrial]] when everything in it has become [[subject]] to [[model]]ling and [[industrial]] activity-distribution, health, leisure, education, and so on-a [[point of survey]] that is obviously a complete break with the myth of 'post-industrial society.'
In contemporary society, all [[form]]s of [[knowledge]] have been weakened, if not annihilated. Savoir-[[faire]] (skills, know-how) has all but disappeared, and savoir-[[vivre]] (knowledge of how to [[live]], manners, ettiquette, and so on) has been dissolved into the [[behavior]]al [[standard]]ization imposed by [[consumer]]ism.
[[States of Shock]]
the [[problem]] is related to changes in [[knowledge]] itself, the place of knowledge, its [[becoming]] in [[society]], the [[nature]] of [[intergenerational]] [[relations]] that it [[produce]]s and that it [[transform]]s and were... the [[authority]] of knowledge is regressing along with the [[regression]] of the [[generation]]s and vice versa...
[[SOS p20-1]]
[[relation]] of [[technology]], [[marketing]], and the destruction of [[generation]]al, [[intergeneration]]al relations. marketing as this sort of reinforcement of [[discredit]], a technology/[[knowledge]]/savoir-[[vivre]] destructive/replacing force. hard to summarize.
[[SOS p23-1]]
...[[poet]]ry practices the [[idiocy]] of the [[idiom]] on the basis of which it produces [[idios]], that is, [[singularity]], [[individuation]]
[[SOS p27/28]]
the [[regress]]ion of [[desire]] is toward the [[drive]]s
[[SOS p33-1]]
...[[become]] [[individual]]s by [[incorporation]].... we... emanate from the [[microcosm]].
[11]...the [[emergence]] of [[individual]]ity from the community [[interaction]]s of once-independent [[actor]]s
The [[tendency]] of "independent" [[life]] is to [[bind]] together and re[[emerge]] in a [[new]] wholeness at a higher, larger [[level]] of [[organization]].
[[SP9]]
...[[one]] must always strive to [[distinguish]] bullshit from authenticity.
[[SP10]]
The [[gene]]s, ... are not necessarily in the [[nucleus]]. [[SP16]]
"nothing in [[biology]] makes [[sense]] except in the light of [[evolution]]." -[[Dobzhansky]].
Evolution is simply all of [[history]].
[[SP22]]
When [[science]] and [[culture]] conflict, culture always wins. [[evolution]]ary science deserves to be much better understood.
Most evolution probably occurred in those beings we dismiss as "[[microbe]]s." All [[life]], we now know, evolved from the smallest life-forms of all, [[bacteria]].
[[Symbiotic Planet]]
[[symbiosis]], the system in which members of different species live in physical contact...
We are [[symbiont]]s on a [[symbiotic]] [[planet]]... we can find symbiosis everywhere. Physical [[contact]] is a nonnegotiable requisite for many differing kinds of life.
[[SP4]]
[[symbiogenesis]], an [[evolution]]ary term, refers to the [[origin]] of new [[tissue]]s, [[organ]]s, [[organism]]s-even species-by establishment of long term or permanent [[symbiosis]].
symbiosis... is crucial to an understanding of evolutionary novelty and the origin of species. Indeed i believei the idea of [[species]] itself requries symbiosis. [[bacteria]] do not have species. No species existed before bacteria merged to form larger [[cell]]s including ancestors to both [[plant]]s and [[animal]]s.
[[SP5]]
the [[fossil record]] shows [[evolution]] to be static most of the time and to proceed suddenly: rapid change in fossil [[population]]s occurs over brief time spans: stasis then prevails for extended periods. From the long view of geological time, [[symbioses]] are like flashes of evolutionary lightning. To me [[symbiosis]] as a source of [[evolution]]ary [[novel]]ty helps explain the observation of "punctuated equilibrium" of [[discontinuity]]s in the fossil record.
[[symbiogenesis]] is evolutionary change by the [[inheritance]] of acquried [[gene]] sets.
[[SP6]]
[[symbiogenesis]] brings togeter unlike [[individual]]s to make large, more [[complex]] [[entity]]s. [[symbiogenetic]] life-forms are even more unlike than their unlikely "parents." "[[individual]]s" permanently mere and [[regulate]] their [[reproduction]]. They [[generate]] new [[population]]s that become multiunit symbiotic new individuals. These become "new individuals" at large, more inclusive levels of [[integration]]. [[symbiosis]] is not a marginal or rare phenomenon. It is natural and common. We abide in a [[symbiotic]] world.
[[emergence]] [[important]] [[Deleuze]]
[[SP8]]
Our interest in the [[listener]] is not, however, merely an interest in what happens to the [[verbal]] stimuli created by the [[speaker]]. In a complete account of a verbal [[episode]] we need to show that the behavior of the listener does in fact provide the conditions we have assumed in explaining the [[behavior]] of the speaker. We need separate but interlocking accounts of the behaviors of both speaker and listener if our explanation of verbal behavior is to be complete. In explaining the behavior of the speaker we assume a listener who will [[reinforce]] his behavior in certain ways. In accounting for the behavior of the listener we assume a speaker whose behavior bears a certain relation to [[environment]]al conditions. The interchanges between them must explain all the conditions thus assumed. The account of the whole episode is then complete.
[[VB67]]
a project management term, often contractual, which defines the specifications which must be met by a product or object in order to meet the specific needs of those requesting it. The written form, of particular interest to [[AIME]], requires all stakeholders to agree to the description of what is required of them throughout the course of the project. Via a fairly radical deflection, we will use this project management term in [[ontology]] to summarize the "functions", "specifications" and "essential requirements" of each [[mode]] of existence.
The term referring expression is not meant to imply that expressions refer... reference is a [[speech act]], and speech acts are performed by speakers in [[utter]]ing [[word]]s, not by words [[SSA p28-1]]
Another property of [[emit]]ted [[verbal]] behavior is the [[speed]] with which successive parts of a sample follow one another or the speed with which a [[response]] appears after the occasion for it has arisen [[antecedent]]. In general we accept the implication that strong verbal behavior is rapid and that hesitant speech indicates little strength. A ready answer is one which the speaker is “strongly inclined to make”; a delay in answering leads us to suspect that something is possibly amiss in the controlling circumstances. The weakness may be due to competitive behavior
[[repetition]] as another indicator of possible [[strength]] is discussed, but I'm not adding it to the repetition tiddler
[[VB56]]
[[S0 p2-1]]
[[Spinoza]] [[Deleuze]]
P135, their attempt to abstract out content is admitted to fail, but their goal is still achieved
New Spirograms attached to the original one; what use do they make of that fragile thread that connects each other? For now if it’s broken, respiration ensures communication, and the strange emissions they both have do so as well.
We start with a little circle on the Spirogram, but it is also doubly articulated, it has its own development (three refrain components) and also has the drift/dissipation of the host spirogram that contributes to its detachment, as well as a desire to resist inhalation; this regime is a regime of deception. It deceives the host, pulling out a life of its own. It has a ‘direction shift’ it gets tangled up in other lines (of flight, perhaps) and maybe even begins to draw out its own lines.
Becoming. I become animal on condition the animal becomes sound, color, or line or... the spirogram enters into becomings with other formalizations? What would that look like?
It’s wrong to say they botched anything. They had a lone and they went on it. We’re going to make use of things both near and far, bundling up our lines. Rhizome.
It is on the molecular line that we find our double; the line proliferates across different centers, as on the one whiteboard drawing. This is a dimension drawn out of the molecular, all these doubles but no real center
Dotted spiral diagram; a signifying regime known only by the statements, jumps, and segments of one or more other spirals. The more regimes we have in this, the more we can map the dotted one. Virtual real??? It’s just a map. It might not (actually) exist. We may very well be constructing it, or constructing somewhere that’s yet to come.
Start with rigid segments drawn towards occluded centers and orbiting them, then getting bent toward rings. There is roundness but no rings. The center sends out so many points of subjectivation, setting off so many linear proceedings, passional delirium predominates. The story of the man who knew too much. It’s not that he had great knowledge, he knew too many points of subjectivation that set off the endless flow of linear proceedings, until he’s able to gather his family (functions&forces are gathered to gather them, and gathered by gathering them) then bend the linear segment into a ring, brining them back to the centering of their natal. Moderation in all things, including moderation.
Other limit. The rings are segmented, and traveling segments move from assemblage to assemblage, picking up the most heterogenous of signs and incorporating them into their segments. Interpretive delusion predominates. The paranoiac installs an occluded center, while picking up these diverse components from different ring-regimes that orbit different centers. The historical geographical content of delusions, a permanent plugging-into of the social field by delirium, through varied outlets. Pick flowers, cut flowers, bring them back to your garden, building the terraces of your garden for your god of the occluded center. So many faces, so many well regulated jumps.
Additional error in their model: segments only occur at the end of the spiral, when they are always segmented in order to weld signs to enunciations. The different rings have to be segmented, whether by the molecular line ‘like a knife’ or by an abstract machine that selects components, or by a collective assemblage of enunciation making semiotic choices, or proceeding to semiotize the world/reality/the new, or even have ways to have new phrases for haecceities. Each day is rigid, but the way it plays out is molecular (the side walk) and new semiotic choices appear like so many tangled roots, so many sprouts and shoots
After this, we move into the new, varied diagrams of the signifying regime as it relates to assemblages. We have to derived the signifying from the post signifying, then properly turn it on its head. Nice!
This is the articulation of expression, the second. The form goes first, then extracts substance from unstable particle flows; that is, the various forms of facial respiration of the priests and paranoiac, and the various deterritorializations of the jumps made, and their reterritprialization on the lines and their segments. Deterr is double; these jumps deterr signs, and the lines themselves are deterr’d, allowing the signs to reterr on the line. The much more subtle, polyvalent facial respiration of the paranoiac (unstable particle flows) CS the overcoding articulation from the facial respiration of the despot
Rather than a despots face and priests, there are everywhere faces of the despot, and the priests with their deception of The Despot are one of the faces; the are emitting signs, and receiving them too. Nothing trivial about these machines.
Faces of the despot or faces of the despotic? All priests need sadness to rule; the face of the despot as an avatar of this necessity
Are the circles created by god, the priest, or the paranoiac? Or rather, we need all three and their actions upon each other in order to function. These segments have to coexist first before they can begin? Is this an evolutionism? The circular pattern comes into being with all three strata, it’s an assemblage, being actualized (effectuated?) Where the terms exist in reciprocal presupposition. Their psychiatric discussion; is it still valid now that we’ve switched to post-as being our centering model? Must reread that section. The description on p120 is more in line with my concept. Para2 of p121 they botch it by modeling the post-regime by starting from the signifying. Should’ve been the other way around
Bring in Luhmann where I talk about the three despot paranoaiac priest strata. Are they really strata? Priests temple as an assemblage at work connecting their physical ‘rituals’ to their language. Paranoiacs assemblages are the assemblages of life as we live it the despot is really just another priest but don’t tell them yet, play it off, cha cha real smooth. Include the way they act as substrata for each other
It’s not that the signifying regime model is invalid, it’s that it a)shouldn’t have been abstracted to exist only at the level of a formalization of expression and b) bearing that in mind, the modifications borne by deriving it from the post- makes more sense
A drawn diagram takes all the facets in play in an assemblage, extracts a component(s) from them, and places them all in direct contact; a semiotic component answers to a semiotic component on this diagram. A color answers to a sound.
Hitchcock movie as an example of how rigid segments and their components can come to determine the usage of a refrain, the woman and her sing with her child, allows them to locate one another in a foreign place; it’s their perspective and it’s difference like the Riemannian space in Ss?
We’re treading on sacred ground here so we must be careful. Or is it profane? I can’t remember much these days. George’s Bat-eye.
Rigid segments aren’t just suffused but also emitting the molecular (particles-signs, polyvalent semiotics, the rigid power centers that convert (interpret) the asignifying signs emitted by the rigid segments)
All of these segments are orbiting something that is actual, the assassination plot, but that is also virtual, is also mutating them, drawing them in
...neither an exclusively self-referentially created system nor a system with an arbitrary environment can exist. These conditions would be unstable in the sense that any possible event would acquire an [[order]]ing value (namely, a possible event that releases order out of [[noise]], then becomes a value for everything that follows) within them. It follows that [[self-reference]] can occur only as a mode of dealing with a non arbitrarily structured environment.
...Our thesis, namely, that there are systems, can now be narrowed down to: there are self-referential systems... there are systems that have the ability to establish relations with themselves and to [[differentiate]] these relations from relations with there [[environment]].
[[Social Systems]]
...one often finds...the situation that in dealing with themselves systems develop [[form]]s of access to [[complexity]] that are not accessible to scientific analysis and simulation. Then one speaks of "[[black box]]es."
[[SS13]]
...every social [[contact]] is understood as a system... [[society]] as the inclusion of all [[possible]] contacts.
[[SS14]]
System [[differentiation]] is nothing more than the [[repetition]] of system formation within systems... [it] is a process of increasing [[complexity]] that greatly affects what can be [[observe]]d as the [[unity]] of the entire system.
[[SS15]]
We will speak of [[production]] if some but not all causes that are necessary for specific effects can be employed under the control of a system. What is essential... is... this "some, but not all." This difference makes [[selection]] possible, and selection makes [[retention]] possible.
[[SS18]]
[[element]]s and [[relation]]s are constituted from above, not below. 23-concept of [[condition]]s and conditioning, and constraints are described/defined.
[[SS20]]
[[complexity]] first definition - interestingly, the notion of complexity is (although unstated) inseparable from the system have distinct states. By having to only select certain relations (i.e. not have all connections actualized at the same time) the system will have the ability to form distinct states which are recurrent on the basis of given connections being (re)actualized in relation to other states of affairs, which may be currently occurring, or may be due to past states.
[25] "[[contingency]]" will designate being possible otherwise
[26] "[[complexity]] is defined as the necessity of making [[selection]]s" "only complexity can reduce complexity" if there is a state of affairs with a given series of elements and relations, a "second [[nexus]]" that reconstructs the first nexus with fewer connections (yet not all being actualized) is the manner in which complexity reduces complexity. For instance, an IISCA or FBA or experimental variation of an applied scientific project is just that.
[[SS22/23]]
...[[element]]s are always constituted by the system that is composed of them and over their [[unity]] exclusively to this system.
And one must distinguish the incomprehensible [[complexity]] in a system (or its environment) that would result if one [[connect]]ed everything with everything else, from determinately [[structure]]d complexity (in both [[form]]s) from stem complexity (again in both forms); the system complexity is always lesser and must compensate by exploiting its [[contingency]], that is, by its [[pattern]] of [[selection]]s. In bot cases the difference between two complexities is the real principle compelling (and therefore giving form to) selection; and if one does not speak of [[state]]s but rather of [[operation]]s, then both cases are the [[reduction]] pf complexity, namely, the reduction of one complexity by another.
[so do states replace operations? systems don't achieve a state, but rather should be thought of in terms of whatever operation is occurring?]
[[SS24/26]]
From the viewpoint of this necessity for [[reduction]] (which follows from [[complexity]]), a second [[concept]] of complexity has been developed. In this second sense, complexity is a [[measure]] for [[indeterminacy]] or lack of [[information]] Viewed in this way, it is the information that the system lacks to fully grasp and to [[describe]] its [[environment]] (environmental complexity) or itself (system complexity). From the perspective of individual [[element]]s-for example, specific [[action]]s or [[information-processing]] by systems-complexity iOS relevant only in this second sense, thus only as a [[horizon]] within which [[selection]]s are made. And this second version can be used in [[meaning]] systems to re-introduce the system's complexity within the system: as a concept, as an unknown and therefore effective [[quantity]], as a factor of anxiety, as the concept of uncertainty or risk, as [[problem]]s of planning and decision, or as an excuse. The distinct nbetween both concepts of complexity points to the fact that systems cannot grasp heir own complexity (even less that of their environment) and yet can [[problematize]] it. The system produces and reacts to an unclear [[picture]] of itself.
[[obscure]] [[confused]].
[[SS27]]
...every [[unity]] used in this system (whether it is the unity of an [[element]], the unity of a [[process]] or the unity of a system) must constituted by the system itself and cannot be obtained from its environment.
[[SS27/28]]
Systems have [[boundary]]s. This is what distinguishes the concept of system from that of [[structure]]... they have the double function of separating and connection system and environment... as soon as boundaries are defined sharply, [[element]]s must be attributed either to the system or the environment. Yet [[relation]]s between system and env can exist. Thus a boundary separates elements, but not necessarily relations. It separates [[event]]s, but lets [[causal]] effects pass through.
A system's internal organization for making selective relations with the help of differentiated boundary mechanisms leads to systems' being indeterminable for one another and to the [[emergence]] of new systems [[communication]] systems) to regulate this interminability. [see also [[SS14]] on black boxes and complexity]
Next to systems constituting their own elements, boundary determination is the most important requirement of system [[differentiation]]. [30] Boundaries count as adequately determined if problems concerning their location or thee assignment of events as being inside or outside of them can be solved using the systems own means... An [[observer]] interested in [[reality]] remains dependent here on the system's operative possibilities of determination.
[[SS28]]
Complex systems must adapt not only to their environments but also to their own [[complexity]]. They must cope with internal improbabilities and inadequacies. They must develop mechanisms that build precisely on those failings, such as mechanisms that reduce deviant behavior, behavior that becomes possible only when there are dominant basic [[structure]]s. Complex systems are forced to [32] adapt to themselves, in the double sense of adapting to their own complexity. This is the only way to explain why systems cannot seamlessly follow the changes in their environment [they have to follow changes in the system as well], but rather must make allowances for different adaptive viewpoints...
[[SS28/29]]
The concept of [[selection]] also changes when one considers [ [[complexity]] ]. Selection... is a subjectless event... A guiding [[difference]] arranges [the constraints that all selection presupposes, e.g. complexity (have to choose a relation to actualize cannot actualize all relations at once, some are conditional or exclusive {can't do A and B, can't eat and speak, etc.,})] for example, from the viewpoint useful/unuseful, without specifying the selection itself. Difference does not determine what must be selected, only that a selection must be made. [perhaps revisit this page if this toddler is confusing.]
[[SS31]]
[39] had the communication bit.
[[information]] occurs whenever a selective [[event]] (of an external or internal kind) works selectively within the system, namely, can select the system's [[state]]s. This presupposes a capacity for being oriented to (simultaneous or successive) differences... [diff that makes a diff quote is discussed].
[[SS32]]
Interesting discussion of [[virtual]] [[actual]], and the difference between them as equalling meaning. [[potential]] qua virtual is also discussed. basal instability is on [64] which leads into this discussion.
[65] continues this, and [[Spencer Brown]] is mentioned in regards to [[distinction]] and [[indication]]. Distinction equals [[difference]] and indication is [[identity]]. [[SS40]]
By [[information]] we mean an [[event]] that [[select]]s system [[state]]s. This is possible only for [[structure]]s that delimit and presort possibilities. Information presupposes structure, yet is not itself a structure, but rather an event that actualizes the use of structures. Events are [[element]]s fixed as points in time.
rest of the page and section II is worth reviewing if this tiddler interests you
[[SS65/66]]
Thus no [[meaning]]-constituting system can escape the meaningfulness of all its own processes. But meaning refers to further meaning. The circular [[closure]] of these references appears in its unity as the ultimate [[horizon]] of all meaning: as the world... any attempt to go beyond it [the world] conceptually only extends it; any such attempt would have to enlist meaning and the world and thus would be what it was trying not to be.
...
All self-[[observation]] and self-[[description]] is ultimately a [[distinction]], an operation of distinguishing.
[[SS67]]
The starting [[point]], then, for this study is that one knows such facts about [[language]] independently of any [[ability]] to provide [[criteria]] of the preferred kinds for such [[knowledge]].
...all [[linguistic]] [[communication]] involves linguistic [[act]]s. The [[unit]] of linguistic communication is not, as has generally been supposed, the [[symbol]], [[word]] or [[sentence]], or even the token of the symbol, word or sentence, but rather the [[production]] or issuance of the symbol or word or sentence in the [[performance]] of the [[speech act]]. To take the token as a [[message]] is to take it as a produced or issued token. More precisely, the production or issuance of a sentence token under certain conditions is speech act, and speech acts (of certain kinds to be explained later) are the basic or minimal units of linguistic communication.
[[SSA 11-1]]
The [[principle]] that whatever can be meant can be said, which I shall refer to as the [[principle of expressibility]] is important for the subsequent arguments of this book...
[[SSA 16-1]]
[[refer]]ring [[express]]ions [[point]] to particular things; they answer the [[question]]s Who? What? Which? It is by their [[function]], not always by their [[surface]] [[grammar]] [[form]] or their manner of performing their function, that referring expressions are to be known.
[[SSA 19-1]]
I shall use the [[term]] [[refer]]ring [[expression]] as short for "[[singular]] [[definite]] expression used for referring to [[particular]]s" [not [[universal]]s]. The term referring expression is not meant to imply that expressions refer... reference is a [[speech act]], and speech acts are performed by speakers in [[utter]]ing [[word]]s, not by words. To say that an expression refers ([[predicate]]s, [[assert]]s, etc.) in my terminology is either [[sense]]less or is shorthand for saying that the expression is used by [[speaker]]s to refer... this is a shorthand I shall frequently employ...
the speech act off referring is to be explained... by explaining the function which the [utter]]ance of these expressions serves in the complete speech act (the [[illocution]]ary act)...
[[SSA 27-1]]
...[[proposition]]s are not [[act]]s. A proposition is what is [[assert]]ed in the act of asserting, what is stated in the act of stating... [people make speech act, not sentences],
the [[distinction]] [[between]] the act of [[express]]ing a proposition and the proposition expressed. [fn2, on page]
[[SSA p28-1]]
...the [[hypothesis]] of this [[book]] is that [[speak]]ing a [[language]] is [[perform]]ing [[act]]s according to [[rule]]s... the [[semantic]] [[structure]] of a language may be regarded as a conventional [[real]]ization of a [[series]] of sets of underlying [[constitutive]] rules, and that [[speech act]]s are acts with these [[set]]s of constitutive rules.
[[SSA p29-1]]
...what is important is a body of habitual assumptions or premises implicit in the relationship between man and environment, and that these premises may be true or false. I shall there-fore use the single term “[[epistemology]]” in this essay to cover both aspects of the net of premises which govern adaptation (or maladaptation) to the human and physical [[environment]]. In George Kelly’s vocabulary, these are the [[rule]]s by which an individual “construes” his [[experience]].
[[Steps to an Ecology of Mind]]
[[addiction]]
[[adjustment]]
[[aesthetic]]
[[aesthesis]]
[[alienation]]
[[Anthropocene]]
[[attention]]
[[automatic]]
[[automatic nihilism]]
[[automatism]]
[[barbarism]]
[[becoming]]
[[behavior]]
[[calculation]]
[[capitalism]]
[[consistence]] [[existence]] [[subsistence]]
[[consistency]]
[[convergence]]
[[data]]
[[Deleuze]]
[[Derrida]]
[[desire]]
[[differance]]
[[disruption]]
[[dividual]]
[[dividuation]]
[[drive]]
[[infidelity of the milieu]]
[[interindividual]]
[[intergenerational]]
[[intergeneration]]
[[divergence]]
[[entropy]]
[[epiphylogenesis]]
[[epoch]]
[[evolution]]
[[exosomatic]]
[[exosomatize]]
[[exosomatization]]
[[faire]]
[[Freud]]
[[Gille]]
[[grammitize]]
[[grammitization]]
[[gramme]]
[[Guattari]]
[[Heidegger]]
[[Husserl]]
[[hyperindustrial]]
[[individuation]] [[psychic individuation]] [[collective individuation]] [[technical individuation]]
[[individual]] [[collective]] [[psychic]]
[[industry]]
[[industrial]]
[[industrial technical object]]
[[industrial temporal object]]
[[innovation]]
[[inorganic]]
[[instrument]]
[[invention]]
[[invention of the human]]
[[knowledge]]
[[Leroi-Gourhan]]
[[limit]]
[[matter]]
[[machine]]
[[memory]]
[[milieu]]
[[mnemo]]
[[mnemotechnic]]
[[mnemotechnology]]
[[Neganthropocene]]
[[neganthropology]]
[[negentropy]]
[[new barbarism]]
[[nihilism]]
[[organ]]
[[organology]]
[[organogenesis]]
[[pharmaka]]
[[pharmacology]]
[[pharmakon]]
[[pharmakos]]
[[play]]
[[proletarian]] [[proletarianization]]
[[protention]] [[primary protention]] [[secondary protention]] [[tertiary protention]]
[[process]]
[[regress]]
[[retention]] [[primary retention]] [[secondary retention]] [[tertiary retention]]
[[sensibility]]
[[sensible]]
[[sense]]
[[Simondon]]
[[singular]]
[[singularity]]
[[structure]]
[[system]]
[[technic]]s
[[technique]]
[[tekhne]]
[[technicization]]
[[technical system]]
[[technical]]
[[techno-logic]]
[[temporality]]
[[temporal object]]
[[tendency]]
[[time]]
[[tool]]
[[toxic]]
[[trait]]
[[transdividuation]]
[[transgenerational]]
[[transindividual]]
[[transindividuation]]
[[vivre]]
[[world]]
[[verbal]] behavior may more easily break free from stimulus [[control]], because by its very nature it does not require [[environment]]al support—that is, no stimuli need be present to direct it or to form important links in [[chain]]ing [[response]]s.
[[VB81]]
But [[generalize]]ation]], like [[metaphor]], is merely a characteristic of [[stimulus control]]. The more precise control established by the community in [[abstraction]] has sometimes caused this term to be applied to (1) the history of reinforcement producing the desired result, (2) the resulting response, and (3) the controlling property of stimuli.
[[VB162]]
Prior stimuli are, however, important in the control of [[verbal]] behavior. They are important because they enter into a three- term [[contingency]] of [[reinforcement]] which may be stated in this way: in the presence of a given [[stimulus]], a given response is characteristically followed by a given [[reinforcement]]. Such a contingency is a property of the [[environment]]. When it prevails, the organism not only acquires the response which achieves reinforcement, it becomes more likely to [[emit]] that response in the presence of the prior stimulus. The process through which this comes about, called “[[stimulus discrimination]],” has been extensively studied in nonverbal [[behavior]]. Numerous examples will be described in later chapters. [[probability]]
Although reinforcement provides for the control of a response, we do not use reinforcement as such when we later exercise [[control]].... [65] Subsequently we control the response, not by further reinforcement, but by depriving or satiating [[deprivation]] Although reinforcement provides for the control of a response, we do not use reinforcement as such when we later exercise [[control]]... [68] Subsequently we control the response, not by further reinforcement, but by depriving or satiating [[deprivation]]... If the response has been reinforced in several different ways, we may control it by changing, not the deprivation, but the impending reinforcement
[[VB64]]
[[Salmon]] Boox pages
[[reread]] ch3, call centers as [[worship site]]s
Where there is the [[judgement of god]] we find the [[strata]], where there is [[content]] and [[expression]], we see at least two [[stratum]], for they are always at least double.
Strata vs [[aggregate]]s of [[consistency]]
The scientist who continues to talk shop during a thrilling football game or in a noisy subway and the steamrolling conversationalist who will brook no interruption give evidence of especially strong [[repertoire]]s
[[VB55]]
Among the unusual circumstances which give evidence of [[strength]] we may include inadequate [[verbal]] stimuli; from the fact that one sees his name in unclear or briefly exposed printed material or hears his name in a noisy conversation in a room we [[infer]] the strength of his name in his own repertoire.
[[VB56]]
A [[medium]] consists of [[loose]]ly [[couple]]d [[element]]s, whereas a [[form]] joins the same elements in a [[strict]] [[coupling]].
[[TS118]]
''Tiddler toolbar in view mode''
[img width="50%" [https://giffmex.org/stroll/strolltiddlertoolbar.png]]
|{{$:/_sq/Stories/icons/divert-right.svg}}<br>{{$:/_sq/Stories/icons/divert-left.svg}}|Divert tiddler to the opposite column|
|{{$:/core/images/fold-button}}<br>{{$:/core/images/unfold-button}}|Fold / unfold tiddler to hide all but the title and toolbar|
|{{$:/core/images/new-button}}|Create a new tiddler with a backlink to the current tiddler|
|{{$:/core/images/new-journal-button}}|Create a new journal tiddler with a backlink to the current tiddler|
|{{$:/core/images/down-arrow}}|A hidden menu with more options|
|{{$:/core/images/edit-button}}|Edit the current tiddler|
|{{$:/core/images/close-button}}|Close the current tiddler|
''Tiddler toolbar in edit mode''
[img width="50%" [https://giffmex.org/stroll/strolledittoolbar.png]]
|{{$:/_sq/Stories/icons/divert-right.svg}}<br>{{$:/_sq/Stories/icons/divert-left.svg}}|Divert tiddler to the opposite column|
|{{$:/core/images/delete-button}}|Delete the current tiddler|
|{{$:/core/images/cancel-button}}|Discard changes made while editing, and return to view mode|
|{{$:/core/images/done-button}}|Save changes made while editing, and return to view mode|
''Page controls''
[img width="50%" [https://giffmex.org/stroll/strollpagecontrols.png]]
|{{$:/core/images/home-button}}|Home button. Takes you to 'Wecome to Stroll' in tutorial version. Takes you to your default tiddlers in empty version|
|{{$:/core/images/new-button}}|Create a new tiddler|
|{{$:/core/images/new-journal-button}}|Create a new tiddler tagged 'journal' and with a date-timestamp in the title.|
|{{$:/core/images/options-button}}|Open the Control panel to configure numerous aspects of your ~TiddlyWiki file|
|{{$:/core/images/save-button}}|Save changes (when in a local file) / Download this file (when in an online file)|
''References tab (pink eyeball in the sidebar)''
[img width="50%" [https://giffmex.org/stroll/strollrefstab.png]]
|Full text|Each reference shown with a link and with the full text field transcluded|
|Full text under sliders|Each reference shown with a link and with the full text field transcluded under a slider button, to view each indvidually|
|Hidden|Reference section hidden from all tiddlers|
|Highlights in context|Each reference shown as highlighted search results in context, so you don't have to read the entire tiddler to find the references|
|Simple links|References shown as simple links in all tiddlers|
''More tab''
[img height="50%" [https://giffmex.org/stroll/strollmoretab.png]]
|All|List of tiddlers in alphabetical order|
|Recent|List of tiddlers ordered by most recently edited|
|Tags|List ofyour tags|
|Missing|List of tiddlers with missing links. Irrelevant in Stroll, because Stroll creates tiddlers for every link|
|Drafts|Tiddlers you left in edit mode and didn't close|
|Orphans|List of tiddlers not linked to or tagged to from other tiddlers|
|Types|Tiddlers given a special type in the type field (see bottom of edit mode)|
|System|The background tiddlers and plugins that make Stroll so great|
|Shadow|The background tiddlers that make ~TiddlyWiki work|
|Explorer|A table of contents of the system and shadow tiddlers|
|Plugins|The plugins|
''Control panel''
[img width="80%" [https://giffmex.org/stroll/strollcontrolpanel.png]]
*The gear button in the sidebar page controls opens the Control panel tiddler
*Go to the Appearance tab > Two Story Layout tab to configure the two column features:
**The first two items are to adjust the width of the columns and sidebar. This is helpful if your screen width is different from the average laptop.
**The third item is to have tiddlers move to the top or bottom of the opposite column when using the divert button
**Dropzones are areas where you can drag a tiddler to move it to the opposite column.
**Adjust the story view for the columns:
***Classic is default: tiddlers appear in a vertical column.
***Zoomin: only the top tiddler of each column is visible. You will need to use the 'Open' tab in the sidebar to navigate to hidden tiddlers in each column.
Stroll and Roam (https://roamresearch.com/) are not competitors. I use both, and recommend Roam highly.
Each app has its strengths and drawbacks. Here is a general comparison:
''Advantages of Roam''
*Block level transclusion
*Outliner features (zoom in and out, expand and collapse points, etc)
*Graph overview
*Fast code blocks like /time, /date picker, etc
*Numerous hotkeys
''Advantages of Stroll''
*Free
*Local file, your data is yours, no privacy concerns or fear of losing your data if Roam gets hacked or closes its doors
*Text formatting, CSS options for tables, etc are superior
*Infinitely customizable UI
*Widgets, macros and other goodies built in
*An extensive list of plugins (see the [[TiddlyWiki toolmap|https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM]])
*Multiple options for viewing references
Perhaps the best way to think [[multiplicity]]s is in terms of the [[concept]] of [[structure]]. What is definitive of structure is not the notion of
signifiers or language, but rather the idea of a set of elements characterized only in terms of their [[relation]]s to other [[element]]s or in terms of
relational identities. We could also say, that the central characteristic
of structure is the [[immanence]] of elements with respect to one another
in relations of [[reciprocal]] [[conditioning]]. Insofar as the elements are all
mutually dependent upon one another for their being, we cannot say
that a structure is many. However, insofar as the structure consists of a
set of ordered [[relation]]s and elements which are in some sense [[distinct]],
we also cannot say that the structure is one. In other words, structures
know no center.
[[virtual]] [[Idea]] with its [[dimension]]s, and [[singularity]]s which are determined by [[differential]]s?
[[DG58]]
...within the confines of an [[operational]] [[theory]], [[structure]]s are effective only in the moment when the [[system]] [[operate]]s... In this theory, structures are relevant only in the [[present]]. They can only be used, one might say, as long as the system operates... Every temporally overarching [[description]] of structures (for example, everything that can be seen, if one observes that we conduct this lecture course always at the same hour in the same room, although perhaps not always with exactly the same people present but at least with the same lecturer), all of this together, is a structure that in turn requires an [[observer]]. And for the observer the same is true. He, too, can observe all this only when he is observing, which is to say, when he is actively operating. Regardless of whether one contemplates the system in operation or relates the operation to the [[observation]] of other operations, everything stands in relation to the topic of [[simultaneity]], the [[present]], and [[actuality]]. The system must be in operation to make use of structures.
[[IS71]]
Under such conditions, the concept of [[expectation]] no longer contains any subjective component. Instead, the concept of expectation poses the question of how [[structure]]s can achieve the reduction of [[complexity]] without, as it were, limiting the entire system to just one capacity. How ought one to conceive of a system that has at its disposal a rich array of structures, for instance via [[language]], without being limited by the [[selection]] of this or that sentence, which is to say, without immediately losing this structural variety again? On the contrary, in many instances structures are built without the need to determine the situation in which these structures are used. The concept of structure must include an explanation as to why the system does not shrink when it continuously has to make decisions, continuously has to perform this or that [[connectivity]] operation. It must explain why it does not shrink but may even, depending on the circumstances, grow and gain in complexity, although it is constantly forced to reduce complexity. The more possibilities a system has - once again you may look at language as the extraordinary [[example]] that makes this clear - the more selective is every single sentence, and the less stereotypical is the [[speech]].
[[IS73]]
The point of departure for our considerations is that whatever was said about structures is also true for the [[operation]]s themselves.
[[IS76]]
Three definitions of structure:
In this way of thinking, disturbances are always measured against the structures, or in the domain of meaningful occurrences against possible operations, or also expectations that have proven their worth in the system and thus provide [[information]] from that angle
[[IS89]]
By the structure of a system I mean, let me recall, the components and the relations between these components, which make it a particular kind of system. When the [[component]]s or their [[relation]]s change, the [[structure]] is transformed. If you slide around on your chair, then you change your structure; if you speak or keep silent and listen, then your structure changes. It is not rigid and firm but in constant change.
[[BD143]]
We have already seen that [[signifiance]] and [[subjectification]] are semiotic systems that are entirely distinct in their principles and have different [[regime]]s (circular irradiation versus [[segmentary]] [[linear]]ity) and different [[apparatus of power]]s (despotic generalized slavery versus [[authoritarian]] contract-proceeding.)
[[ATP p181/182-1]]
Each stratum serves a a substratum for another stratum
Thus, sufficient reason [[express]]es the [[relation]] of the thing with its own [[notion]]
whereas cause expresses the relations of the thing with something else. There we are, this is crystal clear.
[[L813-1]]
[[luhm notes]] is a small summary spawned from [[Luhm review notes]]
[[Neuro concepts to remember]]
[[RTS p22-2]]
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rB9unN9AIali9p8a23pP25ibn3/r1celsF8FAEYN0++bX33uigPXv9AbrUWTh2rV53Lj4vWu8TMuAqqP9M3RmGpO37p3+blLuePVc1dm37/Xq9crZn8nTfDcwsIn77uvFOY+e+bskaNHP//FL5QyrQDQ6XR+46tfmZufLyVbP/OpT5cKf28jwN3aHLlpktEMSAhjB8bHZpqjMLc2H15cnzw0XbnrzRfLb3vBb379a2V+5rFHHt0Wqd92n7J999nTz544eWJh4VzpKeVpYRhuP8+Jkyfuf/DBn2aVeNM5EWgav3t29flus1WLltezQe7XaruzsP3nwuxhGJbCT2EYfvupb/3WN79x5OjR0gpLBj+3sPDYI4/+1je/8du/+ztvndaZ2SVFkVmT2mKUFHFhMocE6Hu6pixJ0KwpIiRodurKI1KoFTIqBHAC5RA6B4CChAAo19kGMgKy165N3L03+R8viu9tXOwdyI3ytQATYrXdfRPgycefmJ+fK9n53MLClx96uFQq3hmPb7tPt7t49syZsvv3kwDbEsdnz5x55tSp//bHf1ReFT7zqU+fOHnyzdPuAgIMXFibG5NZE5tslBSpc4X1fK1q2iJSTeuGj9bWW7Wg4StE1Kg82pLWEgYQQUJBoOuTLgWoc8tke6aVhgU6GS0N23s7ILALixHeAWbf2YZ+5OjRq+bjHDt+fFsedrHbLfWhyhD+7cYXzAIgkBsO02wjjtbCrBcXYcw5KMKssKT9IstsUXi1uvK0gNT3dyZumx2ba7XHG9CpK00KGag01uuLKBEBhABk6pY98fPrV7pLjDpai8bmxlAIqr3UGxCvd41zCwvbovPlhupVcphX4d777n3DRz95333bx48dP979SeL1CCggggDMLs6KQR6thenGKN+IOS7QihNhAYu6iGIg1LUaKoCAJm/ZO35oqr2nEYzX680AQQCvX2tEhFq7sefOA90/fyUcxmvn12c/cEDrKmb/qfDmEfe2wR05evST9937mU99en5+/sTJE29XaxsRtVZS90EQCEARIQael2qM15JsGLmsSNPMJYUwpMwAgorS8174g64KNGqoz08e+MXbZ++Y1T4IXnfNaQgsgoCop5oTByfSOO/1o96r/c7+DpWPV7jR8HrXuKpappTTeZNNqWvx9U9RY4OE2telvK0iQhRPYaFUBKNkI7FZnkUZ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
The philosophies of substance presuppose a subject which encounters a datum, and then reacts to the datum. The philosophy of organism presupposes a datum which is met with feelings and progressively attains the unity of a subject. But with this doctrine, superject would be a better term... the superject is the purpose of the process originating the feelings... It is better to sat that the feelings aim at their subject, than to say they are aimed at their subject... it is in this way an actual entity satisfies Spinoza's notion of Substance: it is self-causing... [
[[KPR p15/16-1]]
[[segment]] [[segmentarity]]; the [[line of flow]]
pertain to [[relative]] or [[negative]] [[deterritorialize]]ation From [[ATP p141/142-1]]
It is clear that a non-intuitive pointing beyond or indicating is what characterizes the side actually seen as a mere side, and what provides for the fact that the side is not taken for the thing, but rather, that something transcending the side is intended in [[consciousness]] as perceived, by which precisely that is seen. Noetically speaking, [[perception]] is a mixture of actual exhibiting that [[present]]s in an intuitive manner what is originally exhibited, and of an empty indicating that refers to [[possible]] [[new]] perceptions... every single [[aspect]] of the [[object]] in itself points to a [[continuity]], to a multifarious continua of possible new perceptions, and precisely to those in which the same object would show itself from ever new [[side]]s.
[[actual]]/[[virtual]] objects a la [[Difference and Repetition]], as well as how a perception creates now possibles, ie the actual creates the virtual at all moments.
[[Kyrian]]
[[Analyses Concerning Passive and Active Synthesis: Lectures on Transcendental Logic]]
...not single [[indication]]s, but entire indicative [[system]]s, indications functioning as systems of [[ray]]s that point toward corresponding [[manifold]] systems of [[appearance]].
[[Syn p107-1]]
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SREygUN0aOcRcsScY8mok4QFhnuxr0SkDFyDNl47UWHs8XDpENrXUMGvIwCcf+6Fn/jU1fYXn/zU1eef91IEHMzO3vC5j9v298Ed9yS5bK652x+45/bbbgbQwWBm9+6dvX7fTgcrV6664fqPnHnWpsMrSBAA9u/fCwB7Htl5y83/XP5m9yMP3vbNrwLA7Oyhj1135aYXXdRGbIIGiVbl15y07tvfvm33I7sQ6YEH7nnggbuXLFnWYQRhG9Y6/9Xf0pHmfZRAByUBpV11HqBHvxE3f3u4ZUizzjnnnHe+YouYrdl5x652/fH+5KL+koneRN/3Ku5Vrl9V/cr3a9+vK8MdVN5VTN6gPDYdEIlBmtRmhibGBjSIhtRrxgg5g6gkbJYoP1t5JC6tSogxSrT4ouTuydkwjtizs9dmUtKiU4UYGs/ViStORTCZgTIRJV7S01fNedPb73nVBAD+oz/6o6O15N/U7TW//Cvv+IN3nnLKKU8xZ20RsjDyQSfrSQuVY37h1QUncPhU2/oWjDO6q1jUXyYSHnzsTlMxmI6AgJhcNju0dDUAiAaCIexOcjrcSrumZciZFsB24aSliEbIPO7W849WP2ikQyruCshxi7kYCehjj9//hY/c+Euvf/3iiROShpQI9x+EnY9im+GVxbJoB3JOxarEVnHCeZbraycxvM3GTJ76UotskNwJoho5zYyebkboqBafklWP2b4PJctqJH4V2xWsaiusxvIgQOfM0xSg3xtbsnhZaavs8RxzzLEA8JnPXnP77becddZ5G9afYbvJ6eknPv/Pn779jltPOfnUs8481y7CN3zuo8etPGHjxhds2/b1LV/93P33bfuRF7185cop+1a9Xn/3nofOP/9Hy0JuyZJlabuJCIDHrly18thV//z5T37zG18JIbz8kku3bv364iXLYwwTE5N1b2zzZ6655547X/rjrzz++NWE2O+P3XzTP+/cef+6dRsB4Ljjppzz69ad/tUv33DTls8/se/xV/3sr3nnjHiefi06sk2HUY0nYecE0qntWF5piXpLqNrwzA697c7BFw7IfiNeOXae2aLx7EPPXPt+v7dovDfRM9uJKYCqXu3rylXe931Ve/aenQFsc0yOiA1dJEqMVjVVg2qIhv6RGCVqp1lvH6+R90w4pCoQo4QQg0BM/Wfea5JJuJ136O3IyylPvraT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
We call [[synthesis]] the [[act]] through which one leaves a [[concept]] behind in order to [[attribute]] it or to [[affirm]] something else.
[[L85-3]]
...there are [[machine]]s: no [[system]] without machines, a system, rigorously speaking, is a structural [[unity]] of machines
[[AO1 p7-1]]
Now one can say: a [[system]] is the [[difference]] between system and [[environment]]. You will see that this formulation, which sounds paradoxical and perhaps even is [[paradox]]ical, needs some explanations. I thus begin with the claim that a system is difference - the difference between system and environment. In this formulation the term "system" occurs twice. This is a peculiarity to which I will return in a roundabout way.
[[IS43]]
Thus the first point we enter under the heading "applications to systems theory" is: a [[system]] is a [[form]] with two sides
[[IS52]]
The first statement concerns the analysis of [[form]]: a [[system]] is a [[difference]]. The second statement says that a system needs only one single [[operation]], one single type of operation, in order to reproduce the difference between system and environment
[[IS54]]
Time and again it must be said that this means that the [[system]] has only its own [[operation]]s at its disposal. In the system, there is nothing but the system's own operations. These operations serve two distinct purposes. On the one hand, they are needed for the formation of the system's own [[structure]]s. The structures of an operationally [[closed]] system must be created through the system's very own operations. In other words, there is no importation of structures! This is what is meant by "[[self-organization]]."
[[IS69]]
All of that corresponds; it’s a system of correspondences, and perhaps that’s what the word “system” means
[[LATB1-6]]
[[systematic desensitization]]
• Combining relaxation with
• a hierarchy of fear-producing stimuli,
• arranged from the least to the most frightening
[[P8 9]]
No [[form]] of "self-[[causality]]" animates [[technical]] beings. [-commenting on [[Aristotle]] ]
[[Technics and Time 1]]
...the [[being]] that we ourselves are is much less places in a [[situation]] of mastery over [[nature]] by [[technic]]s than it is [[subject]]ed, as an [[entity]] belonging to the realm of nature, to the imperatives of technics. [technics as [[domination]] @ bottom of page]
[[T&T p8-A]]
[[rationalization]] represents the [[phenomenon]] of an irresistible [[extension]] of the [[domain]]s of [[society]] [[subject]] to the criteria of [[rational]] decision and the phenomenon of the correlative [[industrialization]] of [[work]]. It characterizes [[capitalism]]. [[Marcuse]] adds to this the [[idea]] that rationalization is in fact a hidden [[system]] of [[domination]]
[For [[Habermas]] ] the [[difference]] between traditional [[society]]s and [[modern]] societies is characterized by the fact that, in the former, communicative action forms the basis of social [[authority]] (whether it by mythical, religious, or metaphysico-political), whereas in the latter, legitimation is dominated by [[technical]] and [[scientific]] [[rationality]], which progressively spreads across all areas of [[life]], including those so-called "communicative" areas whose specificity is thereby denied.
[[T&T p10-A]]
...[[technocracy]] should be considered less as the [[power]] of [[technician]]s than as technicians in the service of [[power]], power created by [[technic]]s as [[efficiency]] and as source of [[legitimacy]], since technics has become indissociable from the [[science]]s in which efficiency and purpose merge.
[[T&T p11-A]]
Link this to AoD
[[T&T p94-1]]
[[summary]] of this chapter up to this point, as it is an extended reading of [[Rousseau]] and this thoughts on the [[nature]] and [[essence]] of the originary [[human]] before the [[fall]], not much has been written down by me on this topic; I've found it inconsequential with regards to my reading of the text
[[T&T p128-1]]
The [[invention of the human]]:... Who or what does the inventing? Who or what is invented?
[[T&T p131/133-1]]
...the slow [[evolution]] of the [[technique]]s of stonecutting. An evolution so slow-it still occurs at the [[rhythm]] of "genetic drift"- that one can hardly imagine the [[human]] as its [[operator]], that is, as its [[inventor]]; rather, one much more readily imagines the human as what is invented.
[[T&T p134-1]]
One must first ask what [[mirage]] of the [[cortex]] is experienced, as pathbreaking, in the hardness of flint; what [[plastic]]icity of gray matter corresponds to the flake of the mineral [[matter]]' what proto-stage of the [[mirror]] is thus installed. One must then ask what the closure of the cortical [[evolution]] of the [[human]] implies from the vantage of a general [[history]] of life, the closure of the cortical evolution of the human, and therefore the pursuit of the evolution of the living by means other than [[life]]-which is what the history of [[technic]]s consists in, from the first flaked pebbles to today, a history that is also the history of humanity-a [[statement]] that will lead us to the unusual [[concept]] of "[[epiphylogenesis]]"
[[T&T p134-2]]
our most profound [[question]] is that of the [[technological]] rooting of all relation to [[time]]-a rooting that quite [[singularly]] plays itself out again against the [[horizon]] of our most contemporary [[technology]]: [[speed]]. [[Leroi-Gourhan]] broaches this question with the problem of [[anticipation]] implied in all acts of [[fabrication]] from the first knapped flint [[tool]]...
at stake here will be the attempt to think, instead of the birth of the human qua entity relating to its end, rather its [[invention]] or even its embryonic fabrication or conception, and to attempt this independently if all anthropologism...
[[T&T p135-1]]
"And what if we already were no longer humans?"... Indeed, one may even think it may have already ended
[[T&T p135-2]]
Discussion of the works relation to [[Derrida]] and [[differance]]
[[T&T p136-1]]
The [[technic]]al [[invent]]ing the [[human]]. The human inventing the technical. Technics as inventive as well as invented. This [[hypothesis]] destroys the traditional thought of technics, from [[Plato]] to [[Heidegger]] and beyond.
[[T&T p136-2]]
[[differance]] means both [[differentiation]] and [[deferral]], a spacing of [[time]] and a temporalization of [[space]]: big [[Derrida]] [[quote]] follows
[[T&T p137-1]]
a [[cipher]] in which the whole of [[dasein]]s existence is caught, this [[epigenetic]] [[sediment]]ation, a memorization of what as come to pass, is what is called the [[past]], what we shall name the [[epiphylogenesis]] of [[man]], meaning the conservation, accumulation, and sedimentation of successive epigeneses, mutually [[articulate]]d. Epiphylogenesis is a break with pure [[life]], in that the later, epiphylogenesis is precisely what is not conserved ("the programme cannot receive lessons from experience" [[Jacob]] 1974)
relation of this to [[tertiary retention]]s?
[[T&T p138-1]]
Now if it is true that only [[epigenetic]] [[sediment]]ation can be the already-there, this is only possible when the transmission allowing for the sediments is of an absolutely [[technic]]al, [[nonliving]] [[essence]]: made [[possible]] by the organized albeit inorganic [[matter]] that the [[[trace]] always is-be it a matter of [[tool]] or [[writing]]-let us say one of an [[organon]] in general.
[[T&T p140-1]]
The [[ambiguity]] of the [[invention of the human]], that which holds together the who and the what, binding them while keeping them apart, is [[differance]] undermining the [[authentic]]/inauthentic divide... Differance is neither the who nor the what, but there co-possibility, the movement of their mutual coming-to-be, of their coming into convention.
[[T&T p141-1]]
The [[passage]] is a mirage: the passage of the cortex into flint, like a [[mirror]] proto-stage... It is accomplished [[between]] the Zinjanthropian and the Neanthropian, for hundreds of thousands of years in the course of which the work in flint beings,.. Reflecting itself, like a mirrored psyche... freeing itself slowly from the [[shadow]]s like a statue out of a block of marble..
the [[paradox]] is to have to [[speak]] of an [[exterior]]ization without a preceding [[interior]]: the interior is constituted in exteriorization.
[[T&T p141-2]]
...the [[emergence]] of [memory]] elaborated and conserved by the [[organization]] of the [[inorganic]]. [[T&T p141-3]]
The [[human]] is an originary psycho-physical [[complex]] the [[substance]] of which is to be understood in terms of a [[dynamic]] of the [[skeleton]], following a line of [[evolution]] embedded in the most distant past.
[[T&T p143-1]]
Erect posture determines a new [[system]] of relations [[between]] these two [[pole]]s of the "anterior field": the freeing of the [[hand]] during locomotion is also that of the [[face]] from its grasping [[function]]s. The hand will necessarily call for [[tool]]s, movable [[organ]]s; the tools of the hand will necessarily call for the [[language]] of the [[face]]. The [[brain]] obviously plays a role, but it is no longer directive: it is but a [[partial]] [[element]] of a total [[apparatus]], even if the [[evolution]] of the apparatus tends towards the deployment of the cerebral cortex
[[assemblage]]
"tools for the hand, language for the face, are twin poles of the same apparatus," itself determined by a specific cerebral [[organization]].... this specificity resides in a unique [[coupling]] with the outside qua [[epiphylogenesis]] [[vector]]m that is, qua the [[truth]] of the inside
[[Leroi-Gourhan]] 1993, 20
[[T&T p144-1]]
If paleontology thus ends up with the [[statement]] that the [[hand]] frees [[speech]], [[language]] becomes indissociable from [[technicity]] and [[prosthetic]]ity; it must be thought with them, like them, in them, or from the same origin as theirs: from within their mutual [[essence]]...
the [[human]], [[technology]] exuded by the [[skeleton]]
[[T&T p145-1]]
[[speed]] as being more important than intelligence for the [[evolution]] of the [[human]] species., and that even "intelligence is but a type of mobility..."
The relation of [[differance]] to speed.
At the end of the [[process]] of mobilization, which is also that of liberation, and with liberation [[becoming]] [[exteriorization]], a particular type of cortical [[organization]] of the [[brain]] appears on the scene by which [[evolution]] takes on an extra-organic sense.. the appearance of [[technic]]s, which is liberation when it becomes [[exterior]]ization.
[[T&T p145-2]]
the [[skeleton]] advances beyond the nervous [[system]], as in the hypothesis that [[technic]]s advances beyond [[society]], an advance the terms of which were set out in the introduction of this work... as if [[life]], considering the other means through which it is pursued, were a succession of modalities of relationships [[between]] a structural advance and delay, producers of differences by the [[play]] of tension in which they consist...
not a quote, but mammalian [[evolution]] orients itself towards a functional [[indetermination]] which will "prepare the terrain for what will be in the human case [[technic]]ity in the strong sense."
[[T&T p146-1]]
With the advent of [[exterior]]ization, the [[body]] of the living [[individual]] is no longer only a body, it can only [[function]] with its [[tool]]s...
"human nature" consists only in its [[technnic]]ity, in its denaturalization...
[[T&T p147-1]]
[[technic]]ity qua [[exterior]]ization implies an [[organic]] link between [[hand]] and [[face]]-between [[gesture]] and [[speech.]]..
[[T&T p148-1]]
the [[technic]]al [[gesture]] as a [[process]] of [[exterior]]ization must have also [[engendered]] [[language]]... there must have been the [[possibility]] of [[speech]].
[[T&T p149-1]]
...[[speed]] is older than [[time]]. For either time, with [[space]], determines speed and there could be no [[question]] of breaking the time [[barrier]] in this [[sense]], or else time. like space, is only thinkable in terms of speed (which remains unthought).
[[T&T p12-A]]
[Early man's] [[body]] and [[brain]] are defined by the existence of the [[tool]] and thereby become indissociable
[[T&T p149-2]]
...the [[hypothesis]] of a [[technic]]al [[consciousness]] must be entertained...
[[T&T p150-1]]
The [[reciprocal presupposition]] of the [[interior]] and [[exterior]] caused by exteriorization, this structure will be later named the [[complex of Epimetheus]]
"A "[[prosthesis]]" does not [[supplement]] something, does not replace what would have been there before it and would have been lost: it is added. By pros-thesis, we understand (1) set in front, or [[spatialization]]; (2) set in advance, already there (past) and [[anticipation]] (foresight), that is, [[temporalization]].
[[time]] [[space]]
[[T&T p150-2]]
The [[prosthesis]] is note a mere [[extentsion]] pf the [[human]] [[body]]; it is the constitution of this body qua "human"...
[[T&T p152-3]]
It is the [[process]] of [[anticipation]] itself that becomes refined and complicated with [[technic]]s, which is here the [[mirror]] of anticipation, the place of its [[recording]] and of its [[inscription]] as well as the [[surface]] of its [[reflection]], of the reflection that time is, as if the human were reading and linking his future in the technical. But here two [[level]]s of the understanding of anticipation must be distinguished...:
There would be (1) anticipation insofar as without it, [[human]]s could not make [[tool]]s, and (2) anticipation insofar as the fabrication of tools is not only repeated in the [[form]] of a [[stereotype]], but evolves, is transformed, [[become]]s [[differentiate]]d
[[T&T p152/153-1]]
The [[question]] of [[technic]]s is the [[question]] of [[time]]
[[T&T p153/154-1]]
"Species specific" signifies "strictly zoological" by opposition to "ethnic," which means nongenetically [[program]]med: since ethnic [[memory]] is [[external]] to the [[individual]], it can [[evolve]] independently of genetic drift and is thus found to be in this sense [[temporal]].
[[time]] [[inorganic]] [[organized]] [[matter]], [[evolution]]
[[T&T p153/154-1]]
[[language]] comes with [[tool]]s, and it is immediately an [[idiom]]atic [[differentiate]]ion, the ethnic immediately comes with a [[technic]]al [[memory]]
[[T&T p155-1]]
...if lithic [[equipment]] is an "[[extension]] of the [[skeleton]]"; if the skeleton has always been in advance upon the nervous system, equipment should... determine the cortical fulfillment rather than be determined by it.
[[T&T p155-2]]
A mention of [[structural]] [[coupling]]
[[T&T p157-1]]
[[summary]] of the goals for this world.
...[[organized inorganic]] beings are originarily-and as [[mark]]s of the [[default]] of [[origin]]-constitutive (in the strict phenomenological [[sense]]) of [[temporality]] as well as [[spatiality]], in quest of a [[speed]] "older" than [[time]] and [[space]], which are the derivative decompositions of speed. [[life]] is the conquest of [[mobility]]. As a [[process]] of [[exteriorization]], [[technic]]s is the [[pursuit]] of life by means other than life. [[T&T p15-A]]
Access to [[anticipation]] is access to the [[possible]]. The efficiency of [[access]] to the possible does not so much reside in the [[organization]] of the [[cortex]]... inasmuch as it is reflected in the flint [[mirror]].
[[T&T p158-1]]
The [[idiom]]aticity of [[language]] and the [[evolution]]al dynamic of the [[tool]]s at the second level of [[anticipation]] derive from the same [[possibility]]...
[[T&T p160-1]]
"The modality of [[program]]ing of, and by, [[memory]], the consequence of the [[passage]] from [[liberation]] to [[exterior]]ization, concretizes its no [[possibility]]s at the [[individual]] [[level]], reinserting them, when they are totally [[real]]ized, into the socio[[ethnic]] level..."
We are given into [[tradition]], the already-there, which man "appropriates by altering it... What is tradition's situation today? if it is essential to survival, how shall we survive? Must new forms of "tradition" be thought up?"
Paragraph at the bottom of this page is an excellent [[summary]] of this chapter
[[T&T p169-1]]
Begins a large [[summary]] of this chapter, continuing to the end of it
[[T&T p171/172-1]]
..the accidental [[event]] happens, the [[fault of Epimetheus]]: to have forgotten [[human]]s. Humans are the forgotten ones. Humans only occur through their being forgotten; the only appear in disappearing.
[[T&T p175-1]]
A [[prosthesis]] is what is placed in front, that is, what is outside, outside what it is placed in front of. However, if what is outside constitutes the very [[being]] of what it lies outside of, then this being is outside itself. The being of [[human]]kind is to be outside itself. In order to make up for the [[fault of Epimetheus]], [[Prometheus]] gives humans the present of putting them outside themselves... is it not that [[logos]] and [[tekhne]] are [[modality]]s of the same [[being-outside-itself]]?
[[T&T p188-1]]
[[human]]ity is without [[quality]]s, without [[predestination]]; it must invent, realize, produce qualities, and nothing indicates that, once produced, these qualities will bring about humanity, that they will become its qualities; for the may rather [[become]] those of [[technic]]s
[[T&T p193-1]]
[[technic]]s, [[art]], [[facticity]] can harbor [[madness]]: the [[prosthesis]] is a danger, that of [[artifact]]s, and artifacts can destroy what gathers within an effective and active [[being-together]].
[[T&T p193/194-1]]
[[epimetheia]] constitutes this carelessness, this primordial idiocy, source of finite [[singularity]] and [[freedom]], as a result of which it is possible to act and possible for something to occur, to take place. To have a [[past]] is to be fallible: nothing can happen to the infallible; no [[difference]] can [[affect]] it.
[[event]] [[haecceity]]
[[T&T p198-1]]
[[dasein]] is [[time]]. All that it is given is a feeling of [[having-to-be]], of a [[de-fault]] of [[being]] where at one and the same time a [[having-to-be]] and a [[failing-to-be]] are affirmed. In [[Heidegger]], especially toward the end of his work, this [[question]] [[become]]s that of [[technic]]s.
[[T&T p199-1]]
Lodged between mechanics and biology, a [[technical]] [[being]] came to be considered a [[complex]] of heterogenous [[force]]s
[[T&T p1-A]]
Excellent end-of-chapter [[summary]]
[[T&T p199-2]]
the [[facticity]] of [[dasein]] ensues from its being [[already-there]], from the precedence of its [[past]] (the past of dasein has always already preceded it).
Dasein (and its facticity?) as a sort of place that's always there, the way that in the earlier chapter on [[technic]]al [[evolution]] [[invention]] is a place already there, a gap, a [[point]] that exists already in the technical [[system]]?
[[T&T p201/203-1]]
Opposition to the [[sophist]]s is constitutive of philosophy; the opposition turns around the [[question]] of [[technic]]s, such as it finds specification in [[writing]]. Writing is already something like a [[language]] [[machine]], producing a language of [[synthesis]]... writing is a technics... [[tekhne]] gives rise to the [[polis]].
[[T&T p204-1]]
The [[metaphysic]]al illusion from [[Plato]] onward that turns [[language]] into a means through which [[human]]s [[express]] themselves rather than its being located as the site of their very constitution, is abundantly criticized by [[Heidegger]]... [he] criticizes the instrumentalization of language, its "cybernetization"... but if the instrumentalization of language is possible, that is because its instrumentality is inherent to it.
[[T&T p205-1]]
It is a [[question]] not of struggling against the [[instrument]]alization of [[language]] but of resisting the very reduction of an instrument to the rank of means. There is no point in looking to isolate a noninstrumental aspect to [[language]]; nothing of the kind exists. The issue is rather the of addressing the [[modality]]s of instrumentality as such, modalities that harbor the condition of [[idiom]]atic instrumentality as much as that of the condition of massive in[[differentiation]], together with all the multiple dimensions of what we might call here, the [[instrumental condition]]
[[T&T p205-2]]
As accumulation of faults and forgettings, as legacy and transmission, in the [[form]] of a knowing that is both reflexive and forgetful, [[epimetheia]] gives also the very meaning of tradition. We have characterized this accumulation of individual experiences in forgetful error with the concept "[[epiphylogenesis]]."
[[T&T p205/206-1]]
Today, we need to understand the [[process]] of [[technical]] [[evolution]] given that we are experiencing the deep opacity of [[contemporary]] [[technic]]s; we do not understand what is being played out in technics... in day to day [[technical]] [[real]]ity we cannot spontaneously distinguish the long-term [[process]] of [[transformation]] from fleeting but spectacular technical [[innovation]]s.
More profoundly, the question is to know if we can [[predict]], and if possible, [[orient]] the [[evolution]] of technics, that is, of [[power]] [[puissance]]. What [[power]]-[[pouvoir]] do we have over puissance?
[[T&T p3-2]]
[[T&T p16/7-A]]
Raising [[question]]s of [[epiphylogenesis]], [[tertiary retention]]s, [[knowledge]] and its transmission.
Knowledge, in any case, of a difference, and, as we will say later, knowledge as [[differance]]...
[[T&T p206-1]]
[[dasein]] as a 'who' established by the 'what' that is [[time]], and that there is always a sort of [[temporal]] [[program]] of time for the human, be it a [[calendarity]] or a [[cosmos]] that [[affect]]s a seasonal temporality.
[[T&T p210/211-1]]
(for [[Heidegger]]) it is a question of deciphering, starting from [[dasein]], not what [[being]] is but what [[time]] is-for being [[temporal]] is "the fundamental assertion of Dasein relative to its being.".. It could be said that [[tradition]] is here [[program]]: it marks the explicitly pro--grammatic character of dasein.
[[T&T p212/214-1]]
[[dasein]] and the non-experienceabilty of its own death as [[differance]], "The structure [[Heidegger]] describes is indeed that of differance: because there is deferment, there is [[differentiation]]. This [[structure]] only makes sense as [[epimetheia]]: just as differance is articulated upon a (pro)gram, the not-yet that is the [[excess]] is symmetrical with an already itself that is itself [[prosthetic]].. Dasein is [[becoming]]... its possibility is only differing and deferring,
[[program]]
[[T&T p214-1]]
The specificity of modern [[technic]]s resides... in the speed of its evolution.
Hitherto, the human was a bearer of [[tool]]s and was itself a [[technical]] [[individual]]. Today, [[machine]]s are the tool bearers, and the human is no longer a technical individual; the human becomes either the machine's servant or its assembler. Our relations are profoundly changed.
A [[system]], in [[ordinary language]] is "an [[apparatus]] [[form]]ed by the [[assemblage]] of [[organ]]s, of analogous [[element]]s." Apparatus is a possible translation for the german term [[Gestell]].
...[[technic]]s in general cannot be understood through the [[category]] [24] of [[means]].
[[T&T p21-1]]
Nature once commanded technics. Now technics command nature. Now, is [[technic]]s a means through which we master [[nature]], or rather does not technics, becoming the master of nature, master us as a part of its nature?
Technics constitutes a [[system]] to the extent that it cannot be understood as a means, just as the complexity of [[language]] escapes the will of those who speak it,
Like the [[machine]], the human of the industrial age is dependent on the technical [[system]], and serves it rather than making it serve itself; the human is the assistant... the means of technics qua system.
[[T&T p23-1]]
[[Leroi-Gourhan]]'s question is that of an essential, and thereby originary, characterization of the anthropological by the technical... the project of a technology's grounding an anthropology. He approaches the subject from the viewpoint of the diffusion of technical objects.
[[T&T p24-1]]
We will deal here with the [[question]] of [[technic]]s and [[time]] as the question of [[invention]]... For [[Gille]], a technical [[system]] designates in the first instance a whole [[play]] of stable interdependencies at a given time or [[epoch]]. The history of techniques is essentially designed to account for the possibility of passing from one [[technical system]] to another.
[[T&T p25-1]]
...in [[Gille]]s work there is no one [[technical system]] but a succession of [them]. In the course of a historical period, a [[system]] is constituted as a stabilization of technical [[evolution]] around previous acquisitions and structural [[tendency]]s determined by a play of interdependencies and [[invention]]s complementing one another, in [[relation]] to other [[dimension]]s characteristic of a particular historical period..
[[T&T p26-1]]
The [[technicization]] of science constitutes its [[eidetic]] blinding.
[[T&T p2]]
[[technicization]] through [[calculation]] drives Western [[knowledge]] down a path that leads to a forgetting of its origin, which is also a forgetting of its [[truth]].
[[T&T p3]]
The twentieth century thereby appears properly and massively uprooting-and this will always provide the theme, in terms of [[alienation]] and decline, of the great discourses on [[technic]]s
[[T&T p29A]]
New [[technical system]]s are born with the appearance of [[limit]]s of the preceding systems, owing to which progress is essentially discontinuous
[[T&T p32-1]]
The [[question]], in sum, is to know how an [[evolution]] of the [[system]] is decided: this is the [[problem]] of the [[logic]] of [[invention]]. The [[horizon]] of a [mutation]] is a [[play]] of [[limit]]s within a system, forming an [[evolution]]al [[potential]] the [[effectuate]]ion of the mutation is the [[technic]]al invention itself, qua the catalyst of this potential, qua the [[act]] of evolutionary potential.
[[evolution]] of [[technic]]s is on a different [[line]] than the progress of science; there is a [[singularity]] all of its own.
[[T&T p33-1]]
The [[system]]s [[dynamic]] offers the [[possible]]ity of [[invention,]] and this is what is essential to the concept of [[technical system]]: the choice of possibilities in which invention consists is made in a particular space and particular time according to the [[play]] of these constraints, which are submitted in turn to external ones.
[[T&T p34-1]]
The logic of the [[invention]] is not that of the inventor. One must speak of a [[techno-logic]], of a logic literally driving [[technic]]s itself. Must one speak of a technological reason?.. a universal technical [[tendency]] exists, ... [it] enters into conflict with local cultures that accomplish it since it is [[universal]] while they are [[particular]]
an opposition between technics qua universal tendency and ethnic qua a factor of diversifying diffraction from which the universal tendency will nevertheless profit.
[[T&T p35-1]]
Innovation accomplishes a transformation of the [[technical system]] while drawing the consequences for the other systems... the rules of [[innovation]] are wholly different from those of [[invention]]. The rules of innovation are those of socialization... "Innovation is mainly of an economic order." Gille
Innovation destabilizes established situations: it thereby creates resistance.
[[T&T p36-1]]
One could say that the logic of [[innovation]] is constituted by the rules of [[adjustment]] between the [[technical system]] and the other [[system]]s.
[[T&T p36-2]]
The idea of [[capitalism]] as a [[system]] that had to [[differentiate]] itself in order to provide for the [[acceleration]] of the development of [[technics]], and the constant [[innovation]] of todays technical system.
[[calculations]] and decisions as being done by "nanosecond" speeds of mass [[data]] processing.
[[T&T p37-1]]
scientific and technical progress are increasingly linked, and economic and scientific progress can no longer function separately.
There is a reversal of meaning in the general scheme: no longer is [[innovation]] what results from [[invention]]; it is a [[global]] [[process]] aiming to incite invention, it [[program]]s the rise of invention.
[[question]]: Constant disarticulation of the [[technical system]] to the [[social system]] as incitement of innovation?
[[T&T p38/39-1]]
This "literally leads to a confusion between technical [[invention]] and scientific discovery. Research orientations are then massively controlled by industrial finalities. Anticipation, at the most global level, is essentially commanded by investment calculation...
[[T&T p41-1]]
...if, as we believe, the [[technical system]] had entered into an age of perpetual [[transformation]]s
and structural instability, one can surmise that the [[problem]] should be set out in other terms: that of the necessary reexamination of the originary relation between the [[human]] and the [[technical]], qua a phenomenon of [[temporality]]
[[T&T p41-1]]
[[Leroi-Gourhan]] "proposes the hypothesis of universal technical [[tendency]]s, independent of the cultural localities that [[ethnic]] groupings compose, in which they become [[concrete]] as [[technical]] facts.
[[T&T p43-1]]
[[summary]]: We have just seen the historian of [[technic]]s taking up mainly two [[question]]s: firstly, that of a dynamism inherent in [[technic]]s [[organize]]d in a [[system]], functioning according to its own at once rational and determinist logic; and secondly, that of a relation of such a [[dynamic]] system to the other systems, and hence of its incorporation into the global historical scheme.
[[T&T p43-2]]
The [[tendency]], in its universality, enters into a complex relation with particular ethnic realities that produce [[technical]] facts, from which facts it must be distinguished though they alone give it [[real]]ity. In "crossing through" [[ethnic]] [[milieu]]s, the tendency "diffracts" into an indefinite diversity of facts.
...a study of the [[relation]] between the technical, whose essence lies in the [[universal]] tendency, and the [[ethnic]], whose manifestations as a [[particular]] [[concretization]] envelops its universality. The question of [[invention]] will once again be broached under this heading...
The agreement between the historian and ethnologist is clear: there is no genius of [[invention]]... Conversely there is a [[system]]aticity that here implements tendencies. realized in a [[coupling]], which should be brought to light, of [[human]] with [[matter]].
[[T&T p43-3]]
The concept of technical [[tendency]] is opposed to ethnocentric illusions... there is no genius of [[invention]]... Conversely there is a systematicity that here implements tendencies, realized in a [[coupling]], which should be brought to light, of [[human]] with [[matter]]
[[T&T p44-1]]
[[Leroi-Gourhan]]... introduces the concept of the [[line]] or of the [[phylum]], close to the concept of technological [[lineage]], along with the question of choice, that is , determination... , a [[quote]] follows, then, The comparison between technological and zoological facts, between the technical object and the living being, is crucial for the hypotheses that will follow
[[T&T p44-2]]
The question becomes that of distinguishing the technical [[tendency]] within the technical [[fact]]s. The tendency is [[real]]ized by the facts, and the examination of the [[link]] between facts affords us a view of the [[condition]]s for the realization of the tendency.
[[T&T p45-1]]
There is no [[genius]] of peoples at the origin of the [[phenomenon]]: there are [[fact]]s that, inserting themselves into [[ethnic]] [[milieu]]s. take on their [[concrete]] aspects as [[technical]] [[object]]s; but their [[emergence]] always results from a more profound [[determinism]], beyond ethnic characteristics, which alone can account for the clear-cut cases of [[universal]] technical [[tendency]]s. There is a necessity proper to the technical phenomenon.
[[T&T p47-1]]
The [[technical]] [[event]] follows much more fundamentally from a zoologically rooted systematicity than from the human genius...The [[singularity]] of the relation lies in the fact that the inert, although organized, matter qua the technical object [[evolve]]s its [[organization]]: it [the technical object] is [[organized inorganic matter]] that transforms itself in [[time]] as living [[matter]] [[transform]]s itself in its interaction with the milieu. In addition, it becomes the interface through which the [[human]] qua [[living matter]] enters into relation with the milieu. [[intermediary]] [[membrane]] [[annex]]
[[T&T p48A]]
The [[tendency]] does not simply derive from an organizing force-the [[human]]-it does not being to a forming intention that would precede the frequentation of [[matter,]] and it does not come under the sway of some willful master: the tendency operates, down through [[time]], by selecting [[form]]s in a [[relation]] of the human living being to the [[matter]] it organizes and by which it [[organize]]s itself, where none of the terms of the relation hold the [[secret]] of the other. This technical phenomenon is the relation of the human to its [[milieu]], and it is in this [[sense]] that it must be apprehended zoo-logically, without its elucidation being [[possible]], for all that, in terms of the common [[law]]s of zoology.
[[T&T p49-1]]
The [[human]] is a [[technical]] being that cannot be characterized physiologically and specifically (in the zoological sense)... because human society would appear as a group of vertebrates who, in the course of a few centuries, would exchange, one, some wings for a shell, another, a trunk for a few extra vertebrae... the evolution of this essentially technical being that the human is exceeds the biological, although this dimension is an essential part of the technical phenomenon itself, something like its [[enigma]]. The [[evolution]] of the [[prosthesis]], not itself living, by which the human is nevertheless defined as living being, constitutes the [[real]]ity of the human's evolution. as if, with it, the history of [[life]] were to continue by means other than life: this is the [[paradox]] of a living being characterized in its [[form]]s of life by the [[nonliving]]-or by the [[trace]]s that its life leaves in the nonliving.
[[T&T p49-2]]
The [[evolution]] of the prosthesis, not itself living, by which the human is nonetheless defined as a living being, constitutes the reality of the human's evolution, as if, with it, the history of life were to continue by means other than life; this is the paradox of a living being characterized in its forms of life by the nonliving-or by the [[trace]]s that its lie leaves in the nonliving. There is consequently an evolutionary [[determinism]] that is not only biological but... quasi-zoological.
[[T&T p50-1]]
The [[technic]]s of differing civilizations can [[intermingle]] and cross-species in ways that 'bears and cats' cannot; the idea of the [[tendency]] as the universal evolutionary factor of hominized life? We are not evolving, but rather the tendency is evolving, cross-breeding through us? [[question]]s...
"The history of life can thereby continue according to new laws: in interethnic relations, insofar as human groups do not behave as species in these relations, a diversity of [[technical]] facts opens out within which the universality of technical [[tendency]]s is [[concretized]], progressively penetrating the totality of the biosphere."
[[T&T p50-2]]
Technical [[differentiation]], silently propelled by the [[tendency]], is effected qua fact at the [[ethnic]] level either by [[invention]] or [[borrowing]]... This differentiation applies like a law cutting across the local [[technical]] ecosystems and guides the [[global]] [[process]] of their [[evolution]], and, hence, their [[exchange]]s... there is no profound difference between borrowing and invention: what is essential is that an invention, borrowed from the exterior or produced locally, become acceptable and necessary in... "the state in which the affected people find themselves" [[Leroi-Gourhan]]
[[T&T p50/51-1]]
The [[fact]]. contrary to the [[tendency]], is unpredictable and whimsical [[Leroi-Gourhan]].... the fact is a catalyst, the act of an evolving [[potential]]ity. It is the tendency's [[concretization]], effected as a compromise, whereby various [[element]]s, determined not by the tendency but by the [[milieu]] qua both physical and cultural system, finally [[envelop]] its [[universal]]ity...
In other words, the [[kernel]] of the fact is its [[technical]] essence; its flesh is an ethnic essence... it is less a question of [technical/ethnic] opposition than of a composition, as if the compromise between the universal tendency and the particular locality, being translated as fact, smothered the possibility of a conflict while concealing and maintaining in reserve the universal essence of the tendency.
[[summary]] (imo, not explicitly)
[[T&T p51-1]]
"in the technical domain, the only [[transmit]]table [[trait]]s through borrowing are those that mark an improvement of procedures. A less flexible [[language]], a less developed religion can be borrowed, but the cart cannot be traded for the hoe" [[Leroi Gourhan]]. Just as there is no regression of the living, but an increase in [[negentropy]], through the ineluctable complexification of genetic combinations, so also there is only technical [[progress]]. There is a [[teleologism]] in [[technic]]s linked to the principle of [[tendency]]
[[T&T p52-1]]
The unity of the [[ethnic]] group is governed by the relation to [[time]], more precisely, the relation to a [[collective]] future sketching in its effects the reality of a common [[becoming]]...
Ethnic unity is essentially momentary and in perpetual [[becoming]]... [also comes from [[technic]]s, not racial characteristics.
[[secondary protention]]s, [[protention]]s, [[retention]]s are all here in an earlier [[form]].
[[T&T p54-1]]
The unity of the ethnic group is governed by the relation to [[time]], more precisely, the relation to a collective future sketching in its effects the reality of a common becoming... reminds me of [[protention]]s and [[retention]] from [[AoD]]
[[ethnic]] unity is essentially momentary and in perpetual [[becoming]]; it is never acquired, since it does not itself proceed from an origin that would be shared by people composing the ethnic group...
a [[system]] of human [[geography]], which will be referred to later on by the name [[milieu]], a combination of geographical and historic-cultural [[determination]]s, itself divided into [[interior]] and [[exterior]] milieus.
[[T&T p55-1]]
"civilization" is a [[technical]] [[state]], a relation of technical [[force]]s, rather than cultural in the limited sense of moral, religious, artistic, scientific, or even political.
[[static]] and [[dynamic]] [[human]] [[group]]s, australia and china are static, one geographically isolated, the other culturally.
[[T&T p55-2]]
The [[point]] is to understand the human at the level of the group in its functioning as an [[organism.]] Because the [[technical]] object is inscribed in a [[technical system]]. technical [[evolution]] implies the comprehension of human groups rather than of individuals-individual genius explains nothing of [[invention]]s.
[[T&T p56-1]]
With this [[concept]] of [[exterior]] [[milieu]] "is first apprehended everything materially surrounding the [[human]]: the geographical, climactic, animal and vegetable [[milieu]]. The definition must be... extended to the material [[sign]]s and ideas which may come from other human groups" [[Leroi-Gourhan]].
With the concept of [[interior]] milieu]] "is apprehended in what is proper to naked humans at birth, but, at each moment in [[time]], in a (most often incomplete) circumscribed human mass, that which constitutes its intellectual capital, that is, an extremely complex pool of mental traditions." The interior milieu is a [[social]] [[memory]] ([[retention]]?), the shared past, that which is called culture. It is a nongenetic [[memory]], which is exterior to the living organism qua individual, supported by the non zoological [[collective]] organization of objects, but which [[function]]s and [[evolve]]s as a [[quasi]]-biological milieu whose analysis reveals "used products, reserves, internal secretions, hormones issuing from other cells of the same organism, vitamins of external origin."
The exterior milieu is the natural, inert milieu, but also the one carrying "the objects and the ideas of different human groups." As [[inert]] [[milieu]], it "supplies merely consumable matter, and the [[technical]] envelope of a perfectly closed group will be the one allowing for the optimization of the interior milieu's aptitudes." As for what comes from foreign groups, these influences "act as veritable vitamins, causing a precise assimilative reaction of the interior milieu"
[[problem]] of how the interior milieu is changed by the exterior milieu
[[T&T p57-1]]
The point here is to understand how the play of the [[interior]] and [[exterior]] milieus, articulating themselves onto one another, determines the technical fact and frees the [[tendency]]... the tendency never presents itself as such but only as a diversity of facts.
[[T&T p57-2]]
The [[tendency]] only becomes explicitly in its materialization, then ceases to be a tendency in the strict sense. This is why we have conflated the particular tendency and the fact in the first degree.
[[T&T p58-1]]
as we shall see with [[Simondon]], [[form]] does not precede [[matter]]. and the [[process]] of [[individuation]] (in which technical [[evolution]] qua differentiation consists) must be inscribed in another categorization. But with Simondon, the [[industrial technical object]] s this dynamic in itself, without the intervention of an [[interior]] milieu]], and thus tends towards techno-logical perfection by incorporating or [[overdetermine]]ing functions. This implies a new concept of [[milieu]]: the [[associated]] milieu]]. The [[interior]] [[milieu]] is absent because it is diluted into the interior milieu when the technical object becomes industrial. By the same movement, the milieu in general no longer constitutes an [[exterior]]ity.
[[T&T p58/59-1]]
The relationship of the [[tendency]] to the physical laws of the universe yields the [[concept]] of [[technical]] [[convergence]].
[[T&T p59-1]]
[[death]] is not an [[event]] within existence because it is the very [[possible]]ity of existence, a possibility that is at the same time essentially and interminable [[defer]]red. This [[originary]] deferral is also what gives [[dasein]] its [[difference]] to another...
The support of all [[concern]] is "[[equipment]]", itself the support of the [[system]] of [[reference]]s that [[construct]]s the [[significance]] of the [[world]]; and the [[horizon]] of [[anticipation]], the originary structure of worldliness; is the [[technical]] world-the [[technicity]] of the world is what reveals the world "firstly" and most frequently in its [[facticity]]. Facticity, understood as what makes [[possible]] the attempt to [[determine]] the [[indeterminate]] (to take flight from "the most extreme possibility"), forms the existential root of [[calculation]]. Calculation, the existential rooting of which is [[organize]]d by facticity as an essential [[trait]] of [[technic]]s-which also makes a [[heritage]] possible, constituting from the start the originary [[horizon]] of all authentic [[temporal]]ization-is the falling of existence.
It is within these deep [[strata]] of temporality that the [[question]] of technics is located in [[Heidegger]]'s work.
[[T&T p3-2]]
A new [[milieu]] emerges, a technophysical and technocultural [[milieu]], whose laws of equilibrium are no longer known-but it can also be imagined as engendering in the same movement unknown forms of [[divergence]]. [[annex]] milieu.
[[T&T p59-2]]
The [[tendency]] is a double [[movement]] whereby interior and exterior milieus [[adhere]].
"...at the point of impact between the interior and [[exterior]] [[milieu]] the [[membrane]] of objects constituting the furniture of humans materializes." [[Leroi-Gourhan]]
A subgroup of the interior milieu is constituted as the [[agent]] of [[intention]] (of the interior milieu) and the corrector of [[diffract]]ion (the tendency diffracts through the interior milieu): this is the [[technical]] [[milieu]]
[[T&T p60-1]]
The [[interior]] milieu]] dilutes into the [[technical]] [[milieu]]
[[T&T p60-2]]
Just as a [[technical]] milieu]] detaches itself from within the [[interior]] milieu]], so a technical subgroup is detached from within the ethnic group... It is as if the technical groups tended to become autonomous with respect to the ethnic groups, owing to the very fact that the techno--industrial units have become worldwide. Thus, "if the [[technical ]][[milieu]] is continuous, the technical group belongs to the exterior milieu."..
One must wonder if we might not be in the presence of a separation and progressive opposition between, on the one hand, cultures, or an ensemble of interior milieus, and on the other hand technologies, which are no longer only a sub group of the technical milieu but the external milieu become worldwide technology: the dilution of the interior milieu into the exterior milieu has become essentially technical, firstly as an environment totally mediated by telecommunications, by modes of transportation as well as by television and radio, computer networks, and so on, whereby distances and delays are anulled, but secondly as a system of planet-scale industrial production
[[T&T p61-1]]
there is no fundamental difference between the fact of [[invention]] and the fact of [[borrowing]]. In both cases, the question is that of the plasticity of the [[technical]] milieu]], and through it, of the availability of the [[interior]] [[milieu]] to [[evolution]].
[[T&T p62-1]]
The thesis of the [[tendency]]... leads to the hypothesis that the [[ethnic]] structuring of groups is outdated... [a theory] which would necessarily imply a phenomena of uniformization and destruction of diversity, but [the tendency leads] new conditions of multiplication, reproduction, and diversification.
[[T&T p63-1]]
The [[tendency]] no longer has an anthropological source. Technical [[evolution]] stems completely from its own [[technical]] [[object]]. The [[human]] is no longer the [[intentional]] [[actor]] in this dynamic. It is its [[operator]]. This analysis concerns the [[industrial technical object]].
[[T&T p65-1]]
"culture has made itself into a system of defense against [[technic]]s, in which the defense is presented as a defense of humanity, supposing that technical objects do not contain human reality." [[Simondon]]
[[T&T p66-1]]
we are to do [[technology]] as one does [[sociology]] or [[psychology]]
[[T&T p66-2]]
With the [[machine]], a discrepancy between [[technic]]s and culture begins because the [[human]] is no longer a "tool bearer." For culture and technics to be reconciled, the meaning of "the machine bearer of tools" must be thought...
[[T&T p67-1]]
There is a [[historicity]] to the [[technical object]] that makes its descriptions as a mere hump of inert [[matter]] impossible. This inorganic matter organizes itself. In organizing itself, it becomes indivisible...
[[T&T p69-1]]
completely on he side of [[matter]], of a matter that invents its [[form]], in a process of transduction... this [[tendency]] must do away with all anthropological provenance. Such a [[teleology]] is not a human [[process]].
[[T&T p71-1]]
The direction of the [[tendency]] to standardization, to the production of more and more integrated types, makes industrialization possible, not the converse: it is because there is one or another tendency in the process of technical evolution in general that industry can appear...
[[T&T p72-1]]
[[industrial]]ization is the affirmation of [[technological]] necessity. It is the [[sign]] of the immense [[power]] of the [[technical]] [[object]] over industrial [[society]], of [[technical]] [[evolution]] in general over [[becoming]] in general, of the "[[technical system]]" over the "other [[system]]s." "At the industrial level,... the system of wants is less coherent than the system of the object; wants are formed around the industrial object, which takes on the pwer of [[model]]ing a [[civilization]]"
[[T&T p72-2]]
...at bottom the [[object]] bestows the [[horizon]] of all possibilities, essentially preceding the fixation of uses.
[[T&T p73-1]]
[[function]]al [[overdetermination]] means that the [[part]] [[becomes]] what it is only through insertion into the [[whole]].
[[T&T p74-1]]
What is proper to the [[industrial technical object]] is a [[tendency]] toward the unification of [[part]]s in w [[whole]], which tendency is not due to the person making the object and thinking by [[function]]s, but to the synergetic necessity that most often is unplanned, and that is affirmed within the object in the course of its functioning, whereby the technical object invents itself independently of a "fabricating intention":
Each [[component]] in the concrete object is no longer one whose essence is to correspond to the accomplishment of a function intended by the constructor, but a part of a [[system]] in which a multitude of [[force]]s [[operate]]s and produces [[effects]] independently of the fabricating intention ([[Simondon]])...
[ [[possibility]] ]s [[become]] [[real]]ity only through the technical object's [[potential]] of inventiveness, in the [[process]] of concretization characterized by the fact that the [[human]] no longer has the inventive role but that of an [[operator]]. If he keeps the inventor's role, it is qua an [[actor]] listening to cues from the object itself, reading from the [[text]] of the [[matter]].
[[T&T p74-2]]
Footnote 7, p279 "[[attention]] must be [[drawn]] here to the pejorative [[connotation]] of "exactitude." I will often dwell on this theme in the course of this study, insofar as [[calculation]] will be conceived as [[exactitude]], and inversely-a [[reciprocity]] that gives rise to the temptation to "[[determine]]" the [[undetermined]]
[[T&T p6-A]]
The [[technical]] [[object]] comes to create its own [[milieu]]
[[T&T p75-1]]
a strange problem is posed: the greater [[human]]ity's [[power]], the more "dehumanized" the [[world]] [[become]]s.
[[T&T p80-1]]
[[technology]] is first of all defined as a [[discourse]] on [[technic]]s... In general, [[technic]]s designates in [[human]] [[life]] today the restricted and specified domain of [[tool]]s, of [[instrument]]s, if not only [[machine]]s...
[[T&T p90-1]]
All [[human]] [[act]]ion has something to do with [[tekhne]], is after a fashion tekhne.
[[T&T p93-1]]
The invented term “[[tact]]” will be used here. The term carries a mnemonic suggestion of behavior which “makes contact with” the physical world. A tact may be defined as a verbal [[operant]] in which a response of given [[form]] is evoked (or at least strengthened) by a particular object or event or property of an object or event. We account for the strength by showing that in the presence of the object or event a response of that form is characteristically reinforced in a given verbal community.
[[VB115]]
The only useful functional relation is expressed in the statement that the presence of a given stimulus raises the [[probability]] of occurrence of a given [[form]] of response. This is also the essence of the [[tact]]... serves no useful purpose, and may be misleading, to call a tact an “announcement,” “declaration,” or “proposition,” or to say that it “states,” “asserts,” or “denotes” something, or that it “makes known” or “communicates” a condition of the stimulus
[[VB116]]
In the tact, however, (as well as in echoic, textual, and intraverbal behavior) we weaken the relation to any specific [[deprivation]] or [[aversive]] stimulation and set up a unique relation to a [[discriminative stimulus]]. We do this by reinforcing the response as consistently as possible in the presence of one stimulus with many different reinforcers or with a [[generalized conditioned reinforcer]]. The resulting control is through the stimulus. [[stimulus control]]
A given response “specifies” a given stimulus property. This is the “reference” of semantic theory. Roughly speaking, the mand permits the listener to infer something about the condition of the speaker regardless of external circumstances, while the tact permits him to infer something about the circumstances regardless of the condition of the speaker. These “inferences” need to be more sharply represented by analyzing the reinforcing practices of the community which maintain mands and tacts in strength. A tact which is established with a completely generalized reinforcement might be called “pure” or “objective.” Whether the response is emitted at all may depend upon other variables; but whenever it is emitted, its form is determined solely by a specific feature of the stimulating environment
[[VB117]]
...the ultimate [[fact]] for [[sense-awareness]] is an [[event]]. This whole vent is discriminated into partial events. We are aware of an event which is our bodily life, of an event which is the course of [[nature]] in this room, and of a vaguely perceived [[aggregate]] of other partial events.
[[TCN 9-1]]
...I hold that the [[relation]] of green to a blade of grass is entirely different from the relation of green to the [[event]] which is the life history of that blade for some short period, and is different from the relation of the blade to that event. In a sense I call the event the situation of the green, and in another sense it is the [[situation]] of the blade. Thus in one sense the blade is a character or property which can be predicated of the situation, and in another sense the green is a character or property of the same event which is also its situation. In this way the predication of properties veils radically different relations between [[entity]]s.
Accordingly, [[substance]] which is a correlative term to predication, shares in this ambiguity. If we are to look for substance anywhere, I should find it in events which are in some [[sense]] the ultimate substance of [[nature]]
Event-situation relation
[[TCN 10-1]]
But-what is [[nature]]?
Nature is that which we observe in [[perception]] through the [[sense]]s. In this sense-perception we are aware of something which is not thought and which is self-contained for [[thought]]. This property of being self-contained for thought lies are the base of natural [[science]]. It means that nature can be thought of as a closed [[system]] whose mutual [[relation]]s do not require the [[expression]] of the fact that they are thought about.
[[The Concept of Nature]]
...the [[termini]] for [[thought]] are [[entity]]s, primarily with bare [[individuality]], secondarily with [[property]]s and [[relation]]s ascribed to them in the procedure of thought; the termini for [[sense-awareness]] are factors in the fact of nature, primarily [[relata]] and only secondarily discriminated as distinct individualities.
[[TCN 2-1]]
No characteristic of [[nature]] which is immediately posited for [[knowledge]] by [[sense-awareness]] can be explained. It is impenetrable by [[thought]], in the [[sense]] that its peculiar essential character which enters into experience by sense-awareness is for thought merely the guardian of its [[individuality]] as a bare [[entity]]. Thus for thought 'red' is merely a definite entity, though for [[awareness]] 'red' has the content of its individuality. The transition from the 'red' of awareness to the 'red' of thought is accompanied by a definite loss of content, namely by the transition from the factor 'red' to the entity 'red'... thought is communicable whereas sense-awareness is incommunicable.
Thus there are three [[component]]s in our knowledge of nature, namely [[fact]] [[factor]]s and [[entity]]s. Fact is the undifferentiated [[terminus]] of sense-awareness; factors are [[termini]] of sense-awareness, differentiated as [[element]]s of fact; entities are factors in their [[function]] as the termini of thought. The entities thus spoken of are natural entities...
the relations holding between natural entities are themselves natural entities, namely they are also factors of fact, there for sense-awareness
[[TCN 8-1]]
no21 To give the [[differend]] its due is to institute new addressees, new addressors, new [[signification]]s, and new [[referent]]s in order for the wrong to find an [[expression]] and for the [[plaintiff]] to cease being a [[victim]].
no22 The differend is the unstable [[state]] and instant of [[language]] wherein something which must be able to be put into [[phrase]]s cannot yet be... "one cannot find the words," etc.
no24... one of the four instances that constitute a [[phrase]] [[universe]]: the [[addressee]], the [[referent]], the [[sense]], the [[addressor]].
[[TD9]]
par3 [[reality]] is not what is "[[given]]" to this or that "[[subject]]," it is a [[state]] of the [[referent]] (that about which one speaks) which results from the [[effectuate]]ion of establishment procedures defined by a unanimously agreed-upon protocol, and from the possibility offered to anyone to recommence this effectuation as often as he or she wants. The publishing [[industry]] would be one of these protocols, historical inquiry another.
[[assemblage]]
[[The Differend]]
no7 This is what a [[wrong]] would be: a [[damage]] accompanied by the loss of the means to prove the damage.[[TD4]]
no10 This is our way of thinking that [[reality]] is not a [[given]], but an [[occasion]] to require that establishment procedures be [[effectuate]]d in regard to it.
[[TD5]]
[[technology]] is first of all defined as a [[discourse]] on [[technic]]s... In general, technics designates in [[human]] [[life]] today the restricted and specified domain of [[tool]]s, of [[instrument]]s, if not only [[machine]]s...
[[T&T p93-1]]
As a process of exteriorization, technics is the pursuit of life by means other than life.
[[T&T p16/7-A]]
the [[technical system]]: the [[organological]] [[level]] wherein [[artificial]] [[organ]]s form a [[system]].
[[AS1 p29-1]]
[[TT2 p13-1]]
[[Stiegler]]
[[technology]] is first of all defined as a [[discourse]] on [[technic]]s... In general,[[ technic]]s designates in [[human]] [[life]] today the restricted and specified domain of [[tool]]s, of [[instrument]]s, if not only [[machine]]s...
[[T&T p90-1]]
All [[human]] [[act]]ion has something to do with [[tekhne]], is after a fashion tekhne.
[[T&T p94-1]]
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
[[territory]], [[territorialize]]
Artificial [[retention]]s, not psychic but technical
[[tertiary retention]], whatever its [[form]] or [[material]] may be, [[artificial]]ly [[retain]]s something through the material and [[spatial]] copying of a [[mnesic]] and [[temporal]] [[element]] and thereby modifies-in a general way, that is, for all human [[experience]]-the [[relation]]s between the [[psychic retention]]s of [[perception]] that [[Husserl]] referred to as [[primary retention]]s and the psychic retentions of [[memory]] that he called [[secondary retention]]s.
[[AS1 p31/32-1]]
The [[Baroque]] refers not to an [[essence]] but rather to an [[operative]] [[function]], to a [[trait]]. It endlessly [[produce]]s [[fold]]s. It does not [[invent]] things... The Baroque trait twists and turns its folds, pushing them all the way to [[infinity]]. First, the Baroque [[differentiate]]s its folds in two ways, by moving along tow infinities, as if infinity were [[compose]]d of two [[stage]]s or [[floor]]s: The [[pleat]]s of [[matter]] and the [[fold]]s in the [[soul]]. Below, matter is amassed according to a first type of fold, and then [[organize]]d according to a second type, to the extent its parts constitutes organs that are "differently folded and more or less [[develop]]ed."
Above, the soul sings of the [[glory]] of [[God]] inasmuch as it follows its own folds, but without succeeding in entirely developing them, since "this [[communication]] stretches out indefinitely." A [[labyrinth]] is said, etymologically, to be [[multiple]] because it contains many folds. The multiple is not only what has many [[part]]s but what is folded in many ways. [[multiplicity]]. A labyrinth corresponds exactly to each level: the [[continuous]] labyrinth in matter and its parts, the labyrinth of [[freedom]] in the [[soul]] and its [[predicate]]s
[[The Fold]]
[[development]] [goes] froms the [[general]] to the [[special]], thorugh [[differentiation]]s of an initially undifferentiated [[field]] either under the [[action]] of [[exterior]] surroundings or under the influence of [[internal]] [[force]]s that are [[direct]]ive, [[direction]]al. but that remain neither constitutive nor [[preform]]ative...
...every [[fold]] originates from a fold, plica ex plica...
the fold of [[epigenesis]] is... the differentiation of an undifferentiated... the fold from preformation is... a "fold-of-two," an entre-deux, something [[between]] in the sense that a [[difference]] is differentiated.
[[mass]]es and [[organism]]s, masses and living beings thus fill the [[lower]] [[level]].
[[TF9-1]]
...in every [[event]] this [[becoming]] is an [[elevate]]ion, an exaltation: a change of [[theater]], of [[rule]], of [[level]] or of [[floor]]s. The theater of [[matter]] gives way to that of [[spirit]]s or of [[God]]. In the [[Baroque]] the [[soul]] entertains a [[complex]] [[relation]] with the [[body]]. Forever indissociable from the body, it discovers a vertiginous [[animal]]ity that gets it tangled in the [[pleat]]s of [[matter]], but also an [[organic]] or [[cerebral]] [[human]]ity (the [[degree]] of [[envelop]]ment) that allows it to rise up, and that will make it [[ascend]] over all the other [[fold]]s
[[TF10-1]]
...the need fr a second [[floor]] is everywhere affirmed to be strictly [[metaphysical]]. The soul itself is what constitutes the other floor or the inside up above, where there are no [[window]]s to allow entry of influence from without. Even in a physical [[sense]] we are moving across outer [[material]] [[pleat]]s to [[inner]] [[animal]], spontaneous [[fold]]s... Everything moves as if the [[pleat]]s of [[matter]] possessed no [[reason]] in themselves. It is because the [[Fold]] is always [[between]] two [[fold]]s, and because the between-two-folds seems to move about everywhere: Is it between [[inorganic]] [[body]]s and [[organism]]s, between organisms and animal [[soul]]s [those on the lower level, see p12 para2 sentence 1-2], between animal souls and reasonable souls, between bodies and souls in general?
[[TF11-1]]
Thus [[inflection]] is the [[pure]] [[Event]] of the [[line]] or of the [[point]], the [[Virtual]], [[ideal]]ity par excellence. It will take place following the axes of the coordinates, but for now it is not yet in the [[world]]:it is the [[World]] itself, or rather its beginning... an [[event]] that would await an event? That is how the inflection already moves through [[virtual]] [[transformation]]s.
[[TF13-1]]
The [[fold]] is [[Power]]... the [[relation]] of a [[magnitude]] and a [[power]], as a [[condition]] of [[variation]]. [[force]] is itself an [[act]], an act of the fold.
[[TF15-1]]
This new [[object]] we can call [[objectile]]... the object no longer refers its [[condition]] to a [[spatial]] [[mold]]... but to a [[temporal]] [[modulation]]... a [[continuous]] [[variation]] of [[matter]] as a continuous [[develop]]ment of [[form]]... a temporal but also [[qualitative]] [[concept]]oin of the object, to the extent that [[sound]]s and [[color]]s are flexible and taken in [[modulation]]. The object here is manneristic, not essentializing: it becomes an [[event]].
...To the degree [the subject] represents variation or [[inflection]], it can be called a [[point of view]]. Such is the basis of [[perspectivism]], which does not mean a [[dependence]] in respect to a pregiven or defined [[subject]]; to the contrary, a subject will be what comes to the point of view, or what what remains in [it]. This is why the [[transformation]] of the object refers [20] to a correlative transformation of the subject. The subject is not a sub-ject, but... a [[superject]]. Just as the object [[become]]s objectile, the subject becomes a superject.
[[TF15-1]]
A needed [[relation]] exists [[between]] [[variation]] and [[point of view]]: not simply because of the [[variety]] of the PoVs... but in the first place because every point of view is not what varies with the subject, at least in the first instance; it is, on the contrary, the [[condition]] in which an eventual subject apprehends a variation (metamorphosis), or:something=x ([[anamorphosis]])... It is not a variation of [[truth]] according to the [[subject]], but the [[condition]] in which the truth of a variation appears to the subject. This is the very idea of a [[Baroque]] [[perspective]]...
does there not exist a [[contradiction]] between [[continuity]] of [[infinite]] [[variation]] and the [[discontinuity]] of [[viewpoint]]? [not if you don't confuse continuity and [[contiguity]] ]. [[singularity]]s are continuous, but not contiguous. he doesn't mention it, ubut [[neighborhood]]s.
Point of view on variation now replaces the [[center]] of a [[figure]] or a [[configuration]].
[[TF19-1]]
...[[unfolding]] is no more the contrary of [[folding]]s than an [[invariant]] would be the contrary of [[variation]]. It is an invariant of [[transformation]]... It is effectively [[envelop]]ed in variation, just as variation is enveloped in [[point of view]]. It does not exist outside of variation, just as variation does not exist outside of point of view... [[Serres]] [says] in a [[world]] of [[infinity]], or of [[variable]] [[curvature]] that has lost [[notion]] of a [[center]], he stresses the importance of setting [[point of view]] in the place of the missing center... of the status of the [[object]], which now exists only through its [[metamorphoses]] or in the [[declension]] of its profiles; of [[perspectivism]] as a [[truth]] of [[relativity]] (and not a relativity of what is [[true]]). In each [[area]] PoV is a variation or a [[power]] of [[arrange]]ing cases, a [[condition]] for the [[manifest]]ation of [[reality]].. for every area the need to [[assign]] THE point of view without which [[truth]] could not be proven, that is, to arrange [[series]] of variations or [[determine]] each case.
[[TF20-1]]
...[[point of view]] as the [[secret]] of things, as focus, [[cryptography]], or even as the [[determination]] of the [[indeterminate]] by means of [[ambiguous]] [[sign]]s: WHAT I am telling to you, WHAT you are also thinking about, do you agree to tell HIM about it, provided that we know what to expect of IT, about HER and that we also agree about who HE is and who SHE is? As in a [[Baroque]] [[anamorphosis]], only [[point of view]] provides us with [[answer]]s and [[case]]s.
We have gone from [[variable]] [[curvature]] to the origin of curvature (from the concave side), from variation to PoV, from the [[fold]] to [[envelop]]ment, in a word, from [[inflection]] to [[inclusion]].... what is folded is the included, the [[inherent]]. It can be stated that what is folded is only [[virtual]] and currently [[exist]]s only in an [[envelope]], in something that [[envelop]]s it.
[[TF21-1]]
Clearly the two [[level]]s are [[connect]]ed (this being why [[continuity]] rises up into the [[soul]]). There are souls down below, sensitive, [[animal]]; and there even exists a lower level in the souls. The [[pleat]]s of [[matter]] [[surround]] and [[envelop]]e them. When we learn that souls cannot be furnished with [[window]]s opening onto the outside, we must first, at the very least, include souls upstairs, reasonable ones, who have ascended to the other level ("elevation"). It is the upper [[floor]] that has no windows. It is a dark room or chamber decorated only with a stretched [[canvas]] "diversified by folds," as if it were a living [[dermis]]. Placed on the opaque canvas, these folds, [[cord]]s, or [[spring]]s represent an innate [[form]] of [[knowledge]], but when solicited by matter they move into [[action]]. Matter [[trigger]]s "vibrations or oscillations" at the lower extremity of the cords, through the intermediary of "some little openings" that exist on the lower level. [[Leibniz]] constructs a great [[Baroque]] [[montage]] that moves between the lower floor, pierced with windows, and the upper floor, blind and closed, but on the other hand [[resonate]]ing as if it were a musical salon [[translate]]ing the [[visible]] [[movement]]s below into the [[sound]]s up above.
...what [[Leibniz]] will always [[affirm]]: a correspondence and even a communication between the two levels, between the two labyrinths, between the pleats of matter and the folds in the soul. A fold between the two folds? And the same image, that of [[vein]]s in [[marble]], is applied to the two under different [[condition]]s.
With [[Leibniz]] the [[curvature]] of the [[universe]] is prolonged according to three other [[fundamental]] [[notion]]s: the [[fluid]]ity of [[matter]], the [[elastic]]ity of [[body]]s, and [[motivate]]ing [[spirit]] as a [[mechanism]]. First, matter would clearly not be [[extend]]ed following a twisted [[line]]. Rather, it would follow a [[tangent]]. But the universe appears [[compress]]ed by an [[active]] [[force]] that endows matter with a [[curvilinear]] or [[spin]]ning movement, following an [[arc]] that ultimately has no tangent. And the [[infinite]] [[division]] of matter causes compressive forces to return all portions of matter to the surrounding areas, to the neighboring parts that [[bathe]] and [[penetrate]] the given body, and that [[determine]] its [[curvature]]. Dividing endlessly, the [[part]]s of matter [[form]] little [[vortices]] in a [[maelstrom]], and in these are found even more vortices, even smaller, and eve more are spinning in the concave [[interval]]s of the whirls that touch one another
[[TF1-1]]
[[matter]] thus offers an [[infinite]]ly porous, spongy, or [[cave]]rnous [[texture]] without emptiness, caverns endlessly contained in other caverns. No matter how small, each [[body]] contains a [[world]] pierced with irregular [[passage]]s, surrounded and penetrated by an increasingly vaporous [[fluid]], the [[total]]ity of the [[universe]] resembling a "[[pond]] of matter in which there exist different [[flow]]s and [[wave]]s."..
What specifically defines an [[absolute]] [[fluid]] is the [[absence]] of [[coherence]] or [[cohesion]]: that is, separability of [[part]]s, which in fact applies only to a [[passive]] and [[abstract]] matter... [6] Thus it must be stated that a [[body]] has a [[degree]] of [[hard]]ness as well as a degre e of [[fluid]]ity... When a boat reaches a certain [[speed]] a [[wave]] becomes as hard as marble.
[[TF4-1]]
This is what [[Leibniz]] explains in an extraordinary piece of [[writing]]: a [[flexible]] or [[elastic]] [[body]] still has [[cohere]]ing [[part]]s that [[form]] a [[fold]], such that they are not separated into parts of parts but are rather divided to [[infinity]] in smaller and smaller folds that always retain a certain cohesion. Thus a [[continuous]] [[labyrinth]] is not a [[line]] dissolving into independent [[point]]s... but resembles a sheet of paper divided into infinite folds or separated into bending [[movement]]s, each one [[determine]]d by the [[consistent]] ir [[conspire]]ing [[surrounding]]s...
A [[fold]] is always folded within a fold, like a cavern in a [[cave]]rn...the smallest element of the labyrinth, is the fold, not the point which is never a part, but a simple extremity of the line. That is why parts of matter are [[mass]]es or [[aggregate]]s, as a correlative to [[elastic]] [[compress]]ive [[force]]. [[unfold]]ing is thus not the contrary of folding, but follows the fold up to the following fold. [[particle]]s are "turned into folds,"... The [[model]] for the [[science]]s of matter is the [[origami]]... or the [[art]] of folding paper.
[[TF5-1]]
[the [[form]]ation of the [[organism]] ] [[become]]s increasingly probable and natural when an [[infinity]] of [[indeterminate]] [[state]]s is [[given]] (already [[fold]]ed over each other), each of which includes a [[cohesion]] at its [[level]], somewhat like the imporbability of forming a [[word]] by [[chance]] with separate letters, but with far more likelihood with [[syllable]]s or [[inflection]]s...
The lwoer level or [[floor]] is thus alsco composed of [[organic]] [[matter]]. An organism is defined by [[endogenous]] folds, while [[inorganic]] matter has [[exogenous]] folds that are awlays determined from without or by the surrounding [[environment]]... in the case of living beings, an [[inner]] formative fold is [[transform]]ed through [[evolution]]...
Whether organic or inorganic, matter is all one... [[material]] [[force]]s, which account for the organic fold, have to be distinguished from the preceding forces... in contrast to [[compress]]ive or [[elastic]] forces, [[Leibniz]] calls them [[plastic]] forces. They [[organize]] [[mass]]es but, although the latter prepare organisms or make them [[possible]] by means of motivating [[drive]],. but it is impossible to go from masses to organisms, since [[organ]]s are always based on these plastic forces that [[preform]] them... to the point where every organ is born from a pre-existing organ.
[[TF6-1]]
discussion of [[mechanism]] vs [[machine]], [[organism]]s as machines... We might say that [[between]] [[organic]] and [[inorganic]] things there exists a difference of [[vector]], the latter going toward increasingly greater [[mass]]es in which [[statistic]]al mechanisms are [[operate]]ing, the former toward increasingly smaller, [[polar]]ized [[mass]]es in which the force of an individuating machinery, an internal individuation, is applied... It remains the case that the [[organic]] [[body]] thus confers an [[interior]] on [[matter]], by which the [[principle]] of [[individuation]] is applied to it: whence the [[figure]] if the leaves of a tree, two never being exactly alike because of their [[vein]]s or [[fold]]s... the simplest way of stating the point is by saying that to [[unfold]] is to [[increase]], to [[grow]], whereas to [[fold]] is to [[diminish]], to [[reduce]]...
[[TF7-1]]
...[[movement]] does not simply go from one greater or smaller [[part]] to another, but from [[fold]] to fold. When a part of a [[machine]] is still a machine, the smaller unit is not the same as the whole... every [[animal]] is [[double]], but as heterogeneous or heteromorphic creature, just as the butterfly is [[fold]]ed into the caterpillar that will soon [[unfold]]... it is the [[inorganic]] that repeats itself, with a difference of proximate [[dimension]], since it is always an [[exterior]] site which enters the [[body]]; the [[organism]], in contrast, [[envelop]]s an [[interior]] site that contains necessarily other [[species]] of [[organism]]s, those that [[envelop]] in their turn the interior sites containing yet other organisms...Thus the inorganic [[fold]] happens to be [[simple]] and [[direct]], while the [[organic]] [[fold]] is always [[composite]], [[alternate]]ing, [[indirect]] ([[mediate]]d by an interior [[site]].).
[[matter]] is folded twice, once under [[elastic]] [[force]]s, a second time under [[plastic]] forces, but one is not able to move from the first to the second... [[organism]]s retain an irreducible [[individual]]ity, and [[organic]] descendants retain an irreducible [[plural]]ity/ It remains that the two kinds of force, two kinds of folds-[[mass]]es and organisms-are strictly [[coextensive]]. Clearly an [[exterior]] [[site]] is not a living being: rather, it is a lake, a [[pond]], a fish hatchery. Here the [[figure]] of the lake or pond acquires a new meaning, since the pond-and the [[marble]] tile-no longer refer to elastic [[wave]]s that [[swim]] through them like [[inorganic]] folds, but to fish that inhabit them like organic folds. And in life itself the inner sites contained are even more hatcheries full of other fish: a "[[swarm]]." Inorganic folds of [[site]]s move between two organic folds... not everything is a fish but fish are teeming everywhere... [[universal]]ity does not exist, but living things are [[ubiquitous]].
[[TF8-1]]
[[state]]s as being made up of a [[complex]] ([[multiplicity]]?) of other sites, but not in a [[contain]]er/contained [[relation]], the way the [[number]] 5 has 1-4 in it.
[[progress]] of a [[desire]] as moving toward altering the shade of a thousand [[perception]]s and [[memory]]s, rather than being a growing, clear cut object in [[consciousness]]. [[intensity]] as shadings of M and P; so m an P make up consciousness, but that shading and heterogeneity and [[becoming]] make up [[duration]]?
[[Time and Free Will]]
Different [[intensity]]s of the same feeling are not changes in [[magnitude]]-intensity as a 'progressive stepping in of new [[element]]s... which seem to increase its magnitude, although in [[real]]ity they do nothing more than alter its [[nature]]'
[[TFW 8/9-1]]
It is the [[qualitative]] [[progress]] which we interpret as [[change]] of [[magnitude]], because we like simple thoughts and because our [[language]] is ill-suited to render the subtleties of psychological analysis.
[[TFW p11-1]]
The successive [[intensity]]s of... [[feel]]ing thus correspond to the [[change]]s of [[state]] occurring in us, and the [[degree]]s of [[depth]] to the larger or smaller [[number]] of elementary psychic phenomena which we dimly discern in the fundamental [[emotion]].
[[TFW p13-1]]
...our [[consciousness]] of an increase of muscular effort is reducible to the twofold [[perception]] of a greater [[number]] of [[peripheral]] [[sensation]]s, and of a [[qualitative]] [[change]] occurring in some of them. We are thus led to define the [[intensity]] of a superficial effort in the same way as that of a deep-seated [[psychic]] [[feel]]ing. In both cases there is an increasing [[complex]]ity, indistinctly perceived.
[[TFW p18-1]]
the violence of a physical emotion like rage has an 'irreducible psychic [[element]]... which gives a [[common]] [[direction]] to so many diverse [[movement]]s.'
[[organization]] [[consistency]] [[cohere]]
[[TFW p26-1]]
Eliminate, in short, all [[trace]] of [[organic]] disturbance, all [[tendency]] toward muscular [[contraction]], and all that will be left of anger will be the [[idea]], or, if you still insist on making it an [[emotion]], you will be unable to assign it any [[intensity]].
[[TFW p29-1]]
It is certainly [[possible]] to perceive in [[time]], and in time only, a succession which is nothing but a succession... a succession [which does not] culminate in a sum.
[[TFW p30-1]]
[[Alfred North Whitehead]]
[[Varela]] [[Thompson]] [[Rosch]]
[[Foucault]]
reread: xxii, [[metaphysic]]s of a [[deleuze]]an sort xxv man quote
We have constructed a ladder of how to think about-about what? Oh, yes, the pattern which connects.
My central thesis can now be approached in words: [[the pattern which connects]] is a metapattern . I t is a pattern of patterns . I t is that [[metapattern]] which defines the vast [[generalization]] that, indeed , it is patterns which connect.
[[MN10]]
We have been trained to think of [[pattern]]s, with the exception of of [[music]], as fixed affairs. It is easier and lazier that way but, of course, all nonsense. In truth, the right way to begin to think about [[the pattern which connects]] is to think of it as primarily (whatever that means) a dance of interacting parts and only secondarily pegged down by various sortS of physical limits and by those limits which organisms characteristically impose
[[MN12]]
[[POP lxvii]]
[[Merleau-Ponty]]
Stroll is an adaptation of ~TiddlyWiki. Think of ~TiddlyWiki as a file drawer of notecards [the notecards are called tiddlers, a British term for a small fish].
*The left side of the layout is the stack of open tiddlers. It is called a story river.
*The right side of the layout is a sidebar that contains buttons, a search bar, and tabs with lists of the closed and hidden tiddlers.
<span class="bluebox">
''Activity 1: ''Close the sidebar by clicking the <<icon {{$:/core/images/chevron-right}} "">> icon in the top right corner. Click it again to re-open it.
</span>
[[Baudrillard]]
[[Deleuze]]
[[Foucault]]
[[Freud]]
[[Guattari]]
[[Lacan]]
[[Luhmann]]
[[Mbembe]]
[[Merleau-Ponty]]
[[Simondon]]
[[Spinoza]]
[[Stiegler]]
[[Tarde]]
[[Luhmann]]
Theory of society of 1
[[ToS p5-1]]
P66 ties to something like diagrammitism
201-211 is quite interesting
The early pages, 256-270ish, of ch3 offer general discussions of systems theory
“This requires selective condensation and, at the same time, confirmatory generalization of something that can be called the same as distinguished from other.”
“That meaningful identities (empirical objects, symbols, signs, figures, sentences, and so on) can be produced only recursively has far-reaching epistemological consequences.”
Operationally closure leads to recursion leads to identities? Or can they happen without OC? Probably, in some sense.
“In the communicative production of meaning, this recursivity is produced above all by the vocabulary, which can be used as the same in many situations. There are, however, also objects that as perceivable things can be enriched with social meaning, so that they can perform a coordinating function not dependent on language - such as religious objects or people in trances (prophets, “mediums”) purportedly possessed by spirits; or kings, coins, footballs. The particular way in which “home” is identified can also not be attributed to language alone and can therefore not be adequately expressed in language. This is also true for the structuring of spatial relations through architecture or of the meaning of actions. We are always dealing with the basic function of ordering recursion available at the given moment (and only then).”
In this self constituted meaning of medium, operations are oriented onto distinctions, it’s the only way to produce the selectivity necessary for recursion. “Each meaning this means itself and other things.” 20
Meaning is copresent as reference to the world
In everything that is actualized.
This thesis excluded nothingness, pure chaos
All meaningful operations always reproduce the presence of what has been excluded, for the world of meaning is a complete world, which can exclude what it excludes only in itself.
Non meaning, non sense, can only be though and communicated in the medium of meaning, only in the form of meaning.
All negation preserves what it negates, and recreates the unmarked space into which every operation (even the negation) etches itself through a distinction
Meaning is an infinite and indeterminate referential complex
The form of meaning is the difference between actuality and potentiality, this and no other distinction constitutes meaning.
Actual and possible are doubly asymmetrical as actual meaning remains possible and possible meaning remains actual
21
Meaning hence is a form with a copy of itself on both sides, (it becomes symmetrical) and consequently appears to be the same in all the world
Meaning can become asymmetrical again via the introduction of a distinction like signifier/signified, or system/environment
Self reference or other reference always refer to the excluded, the self reference included the exclusion of other reference 22
Meaning is the medium of all form formation
Produce a distinction, then determine it as meaningful from meaninglessness? Or produce a distinction then apply meaning/non distinction to it? Is meaning borne at a stroke?
Meaning appears in time and can use time to reduce complexity; what is no longer actual is past, what is not yet actual is the future
Redundancy in the past, variety in the future and present in the present 23
“Operating meaningfully means that all operations on the inside of the form [meaning is the form] take place (or do not take place) actually; but also that meaning requires another side of the form: the outside as a space of other possibilities reaching to infinity.”
Face the strata; face the BwO
“Every operation is an event dependent on a point in time that vanishes as soon as it is actualized, and consequently has to be replaced by another event.”
The world remains unobservable, as a system needs the form of meaning in order to select operations. 24
One side of the assemblage faces the strata, the other, the plane of consistency.
The world is that which cannot be observed, and is reproduced with every distinction
Every distinction indicates the world by indicating it’s other side (incl of excl) 26
“The form is essentially a distinction that recurs in itself as what is distinguished”
In this book, systems theory is understood as the theory of the distinction between system and environment 27
We speak not of objects but distinctions
Similar to the Signifier as a position of difference 28
Forms as not shapes but boundaries, markings of difference that make us make clear as to which side of the boundary we are indicating.
We actualize a side only by indicating it and not the other side, in this sense, form is unfolded self-reference, specifically temporally unfolded self-reference 29
Determining, indicating, cognizing, acting are all operations that establish a form, they cause a break in the world, give rise to a difference, to simultaneity, a need for time, and render inaccessible the indeterminacy ahead 30
In an autopoeietic system, operations only come from within, there is no input of elements into the system, and no output therefrom. The system is autonomous, not only at the structural level but at the operational level as well. 33
“By communication (as by operation), we consequently mean historically concrete and hence context-dependent activity - and not merely the application of correct rules of speech. If communication is to occur, knowledge and ignorance are required of all participants.”
“Communication is an autopoeietic operation, because it produces the distribution of knowledge and ignorance only by changing it.” 35
P36
Elementary operations of society as an event bound to a point in time that disappears as it occurs
Information as a surprise; it is compared with expectations within the system
Information always comes with an idea of what can be done with it
Communication as an entity comprising the components of information, utterance, and understanding which are produced only in communication 36
Each individual event gains meaning (here as understandability) only because it refers to others and restricts what they can mean; this is precisely how it determines itself
All duration must be produced by the transition to other events
Communicative systems are possible only as recursive systems, since their single operations can by produced only as recursion to and anticipation of other operations of the same systems
This imposes the double requirement of continuity and discontinuity, raising the question of how meaning can, in other situations, be treated as the same
It is necessary to install cognizable repetition 37
The double concept of condensation and confirmations
Recursion must produce identities suitable for re use, this is done through selective condensation, leaving out unrepeatable elements from other situations
They must also preserve condensed meaning in new situations, this requires generalization
If these reqs need to be repeatedly met, generalized meaning variants develop which cannot sufficiently be captured in the form of definitions
He’s constantly coming up into points of asignifying semiotics
Différance as how “the necessity of temporal sequencing imposes differentiation between systems and the environment and the operational closure of recursions in the system
Organisms have physical boundaries, this does not occur in systems that operate in the medium of meaning; communication systems do not have visible, external, physical boundaries
The boundary of these systems are produced and reproduced in every single communication 38
“In other words, ever operation contributes to the ongoing differentiation of the system and cannot otherwise attain its unity.”
“In communication, information about something is actualized and changed that is not communication itself. In the network of communication, other-reference always co-occurs in the search for suitable connections. The boundary of the system is therefor nothing other than self-produced difference between self-reference and other-reference, and as such is present in all communications.”
As the information/utterance distinction is observed by a second order observer, topics and functions are distinguished. Topics allow for the drawing of a distinction between topics and items, structures and operations, which then attach to the inner side of the system boundary.
Functions relate to the systems autopoeisis, and required reproduction, alteration or development of structures 39
The topics and functions of communication can become a topic of communication; the distinctions enters as reentry 40
Communication is the autopoeietic operation whose process leads to the formation of social systems in corresponding environments 41
What is decisive in language acquisition is not imitation of the gestures of the other, not observation of behavior and appropriate response-learning, but the internalization of symbols that allows the individual to coordinate within itself with the behavior of others, while using appropriate gestures to permit the coordination of the coordination of organism.
Speaking marks a distinction between information and utterance 44
Communication is distinguished from biological processes of all types, it is an operation endowed with the capacity for self observation. All communication marks itself as such, and who has uttered what, so communication can be determined and autopoeiesis continued
This means that identifying utterance as action is the construct of an observer, ie the construct of a communication system observing itself, and above all that social systems can come about only as self-observing systems
“All self-observation, too, is conditional on a blind spot. It is possible only because it cannot see it’s seeing. communication thus functions operationally as the unity of the difference between information, utterance, and understanding without being able to communicate this unity.”
It uses this distinction for further comms; do I doubt the info, do I assume deception in utterance, or perhaps I observe difficulties in my understanding.
No self-observation carries the full reality of the system that carries it out
A sufficiently complex system can move from observation of operations, to observation of its observation, finally to observation of the system itself. This all takes place starting from within, as it is indeed self-reference 45
Multiple self-observations may be occurring simultaneously
There is no social system outside from society; it cannot be observed from without
If a psychic system observes society, in order to communicate it must enter the social system 46
There is no essence of society 47
Systems have no operational connection to the environment except through structural couplings; this also applies to observing systems
Big shots taken at epistemology
All observations are carried out with the aid of the systems internal distinctions 49
At the level of first order observation we do not see the system/other reference, no distinction is drawn between reality and the illusion thereof
This cannot be fully escaped, even at the level of second order observation
“All operations (communications) therefore have a double function: establish the historical state of the system, the point of departure for the system in ensuing operations. They determine that the system is the way it is and not otherwise.
And 2, they form structures as selection schemata that make recognition and repetition possible, hence condensing identities (many
say with Piagret invariance), which they confirm in ever-new situations and thus generalize.”
This structure formation that allows remembering and forgetting does not come from an external agency
Closure, self-determination/organization make a system highly compatible with disorder in the environment, or a fragmentary environment. p50
Operational closure: the recursive enablement of a systems own operations through the outcome of its own operations
Everything that is determined as communication has to be determined through communication 51
Structural couplings digitize analog relations
The analog relation is the parallel functioning of the environment and the system as seen from the given reference system of observation
The digitizing converts the continuous alongside into a discontinuous succession, structural couplings must do so in order to influence a system 55
We define cognition in the basis of distinction
This presupposing a capacity for distinguishing which has no correlate at all in the environment
If this is to be achieved, the system must be able to close itself operationally and reproduce autopoeietically, and second, to rely on extremely limited structural couplings with the environment. Eyes and ears and the corresponding connective operations in the brain are prime examples.
“Communication is totally dependent (in every operation) on consciousness...” 56
Communication is not transmission of semantic content by one psychic system to another 57
“There is no nonsocially mediated communication between the individual and society. Every sufficiently precise understanding of communications excludes such possibilities... only a consciousness can think, only a society can communicate. And in both cases we are dealing with self-operations of an operationally closed, structurally determined system.”58
Reminds me of
“As a communication system, society can communicate only within itself, neither with itself or its environment. Operating on the basis of the observation schema “system and environment”, it can then communicate within itself, about itself, or about its environment, but never with itself but never with itself and never with its environment.” From 52
Back to 58...
Structural coupling of consciousness to language is the unique coupling of two autopoeietic systems, rather than, say, organisms coupled to earths gravity, an environmental condition
There are structural invariants between these two systems, communication cannot move so fast as to overtax consciousness for example
Communication has to be ready for constant irritation to the environment without it breaking down; language has this peculiar ability
Structural coupling tends toward indiscernibility, I don’t think if my coupling to gravity as I walk 58
Every communication must distinguish between information and utterance
Corresponding objective and personal references form
The reuse of such references condensed things, defining them as identical, while confirming them, as enriched with new charges of meaning from different sorts of utterances
Confirmation=relating to previous semantic content that covers/envelops the same point of condensation? For example, learning a new color, subsuming it into the color wheel and relations of photography I know, as well as the logical typing of color? I think yes 59
Terms like human, or person or consciousness allow for a system to couple with an Environment and reduce complexity within it.
Where such relations co-evolve and none of the systems thus coupled structurally could exist otherwise, we speak of interpenetration. Nerve cells and brains, consciousness systems and society, prose and novels. images as language (becoming-simpler) and computers?
Coupling consciousness with communication systems is made possible through language 60
Schemata often go by poorly defined names like frames, scripts, prototypes, cognitive maps and implicit theories
They allow a system to forget all operations but retain something from them which allows for a memory to be set up, to forget but retain and reuse that which exists in schematized form
Faciality, binary machines of decision making
Schemata “serve as reductions of structural complexity in the development of operational complexity, and hence in the ongoing adjustment of structural coupling between psychic and social systems to changing conditions.” 61
There is no language in itself - it relies on psychic and consciousness systems, and their coupling, as well as operational closure and autopoeisis in order to exist. Without those, it would immediately cease existing
Communication all requires a binary coding, an acception or rejection. 62
Systems and their use of communication are non-transparent to themselves, they often say yes or no (accept/reject) for unknown to them reasons
All communication is always given at every moment in this scenario, a communicatively comprehensible manner of speech that may remain incomprehensible (in terms of motives) for the uttered
“In this form it is an indispensable condition for the structural coupling of different instances of autopoeisis.” 63
The coupling of comms systems and consciousness systems prevents the total reality of the world from affecting the comms systems. By way of this protection, a reality made solely of ‘signs’ has been able to engage in autopoeisis. 64
Systems do not become irritated by the environment, but they self-irritate due to the effect of the environment, from a coupling that allows the environment to impact the structures and evoke a comparison with them, creating the self-irritation of the system 66-67
Humanism puts the distinction of man in between two distinctions, man/animal, man/machines 68
Observation as an indication in the context of a distinction and requiring memory to be defined as the ability to forget and remember
“Cognition is the ability to connect new operations to remembered operations. It presupposes that forgetting releases capacities in the system; but also that new situations can lead to highly selective recourse to condensations of past operations” 69
Some Cognitive abilities: digitization, memory, learning, distance orientation, anticipation, error correction
The job of cognition is not copying or reproducing environmental conditions into the system by to produce redundancies that spare the system repetitive information processing. 70
With the development of cognitive abilities, the systems adaptation to the environment does not improve, but the irritability is increased, and self-irritation becomes a source of stress
More complex systems evolve into irritability?
72
The form of complexity is the necessity to sustain an only selective connection between elements, in other words, the selective organization of the systems autopoeisis 79-80
Causality: when outputs become inputs 80
On complexity p 83, end of section on complexity
Trends that point towards global society
Reliance on tech
Dissolution of family
Many more...
Bottom of 92
Functional systems cannot be contained within uniform spatial boundaries applicable to all 96
Anti-oedipus; desire doesn’t respect the molar distinctions, man:nature, man:woman, the molecular sexuality that exists before man:woman
Regional differentiation under the global system, causes and effects; interesting restatements of points post structuralists make
Pg 96
Turning capitalism into The Reason why the world is at it is today underestimated the contribution made by other functional systems, especially science and communication through mass media 99
All communication, rational, irrational,arational, continues the autopoeisis of society 103
Communication is possible, only as the processing of the difference between medium (‘medial substratum’) and form 116
Systems can couple and uncouple; coupling is not necessarily permanent 116-120
“Forms are less permanent than the medial substratum. They endure only through special arrangements such as memory, writing and printing.” 119
It is not the medial substratum but forms that are operationally connective in the system 120
“Dissemination media determine and extend the circle of those receiving information. To the extent that the same information is disseminated, information is transformed into redundancy.”
This can be used to show social belongingness, but even if we ask everyone ‘who knows this?’ No new information arises 121
The shift from oral communication (less rejection wants be communicate, it’s ‘nicer’) to symbolically generalized communications; mass electronic media being one example of this
Luhmann starts with the assumption that ‘society is an operationally closed social system based on communication, and that it’s evolution therefore follows the problems of the autopoeisis of communication, the conditions for which evolution is constantly changing.’ 122
Language is the medium that guarantees the autopoeiesis of society 123
‘Signs are also forms, that is to say, marked distinctions.”
Marked distinctions in the medium become forms?
“...the signifier signifies the signified. The form itself (and only the form should be called a sign) has no reference; it functions only as a distinction and only when it is in fact used as such.” 124
An example of the atp concept of indirect discourse was to demonstrate that person b can tell person c something that they didn’t experience ie what person a said
125-126
‘Prior to language living beings are structurally coupled, but now can be operationally coupled... co-evolution between individuals and society now develops, which overdetermines any co-evolutive relationships between individuals’ like that of mother and child’ 126
“Language... as a form with two sides, it consists in the difference between sound and meaning”
Form is always double sided for Luhmann, here the sound is not the meaning but determines it, the meaning is not the sound but determines it 128
“Language facilitates forgetting. It relieves the social memory and therefore constantly frees capacity for communication.” 129
“Eigenbehavior... refers to a stability arising in the recursive procedure of applying the procedure to the results of the procedure.” 130
“Language comes about through the reuse of sounds and groups of sounds. To be more precise, in the course of reuse it first generates the identity of words, condensed language m-specific identities; in the same Move, it also confirms these condensates in ever-new situations, generalizing them. This process of language formation therefore differentiates an eigenbehavior of the communication system and in second place produces a language-dependent order of perceptual tasks for the individual consciousness.” 130-1
Assemblage, language arising out of pragmatics, Deleuze, guattari
Those two pages and the bottom of 131 into 2 are great examples of a regime of signs establishing itself
“It is ones awareness of others awareness of the nature of language that produced the results that enable recursive communication to continue, that make the autopoeisis of society possible.”
“Language offers a positive and negative version of everything that is said”
This very important 132
“It is no exaggeration to say that linguistic coding is the muse of society. Without doubling all signs that fix identities, evolution would never have been able to form society, and we hence find no society without this requirement.” 135
See? I told you this doubling is important
Use of signs “gives rise to the problem of error and deception, of the unintentional and intentional misuse of signs.”
“Coding [yes/no form] transforms the general uncertainty about the misuse of linguistic signs into a bifurcation fi connective options.”
Not only yes or no, but a deferral of yes and no, “leaving it up to further communication.”
“Without binary coding, not even deferral would be possible, for we would be unable to recognize what is deferred.”
Coding has far reaching consequences in the entire system of linguistic communication, “whatever is co tributes faces the alternative of acceptance or rejection.” 135
“Two peculiarities of linguistic communication follow from its coding, the first is that all use of negation at least implicitly presupposes distinctions to allow the options available if something is negated to be established. If something is referred to as “not red” other colors come into question; and conversely, a positive statement such as “the car travelled slowly” has its prescribed negatives (one cannot, eg, negate this by saying it travelled on four wheels.”
Faces are coming to be established
Yes no bifurcation can also be directed by marking
“Value attitudes assumed as a matter of course to be shared are generally communicated without being marked. Erroneous markings are typical of speakers insufficiently familiar with the cultural or situational context of communication and therefore unable to assess probabilities correctly... the problem of this intensification [marking] arises only because communication is coded and therefore seeks to control where it has to reckon with acceptance or rejection, surprise, and resistance”
The most important effect of coding is that it makes all communication conclude with a further requirement for more communication
“Only the autopoeisis of communication is necessary, and this autopoeisis is guaranteed not by a helps of agreement but by the binary code.”
There is no end, in the option constantly reproduced to choose to continue
137
The freedom of this yes or no has far reaching consequences, “In complex societies, what therefore evolved are not obligations for consensus but symbolically generalized communication media.” 138
In a religious secret, the divinity is not the phenomena, but in it 139
“Knowledge must be protected against communication because it is generated in the first place only through this protection. Otherwise, it would soon be discovered that holy bones are only bones.” 140 the creation of the container of the secret is what makes it a secret
“High religions explain that a mystery cannot be profaned by revelation because what the curious have before them is a triviality, not the mystery itself. 140
Discussion of morality and its relationship to yes/no coding as well as it being present as a process in all societies
Morality as a complex system of social coordination
P146
Faciality and establishment of faces
147
“If “ethics” are now everywhere in demand... we miss any in-depth specification of what social peach aisle could provide such an amoral coordination of morality. And for this very reason, institutions that appear to do so, such as television, must keep their function latent.”
The theory of morality (the yes/no coding of socially acceptable behavior) in this sub chapter is excellent 149
“Orality is characterized by the capacity to forget, to devalue, to adapt.” A constant flow of change comes with (really it IS) Orality as opposed to the sedimentation, stratification that comes with writing.
“Also characteristic of orally communicating society is that a great deal of communication takes place simultaneously (occurs and passes) and can therefore not be coordinated.” 152
“Not only the medium of writing is stable; the field given shape in this medium, namely, texts, are also still relatively stable. Texts thus serve as a secondary medium for actual form formation, which is realized only through interpretation.” 156
Double reentry of the form^
“The effect of writing lies in the spatial and temporal uncoupling of utterance and understanding and in the dramatic increase of connectivity options that it engenders.”
“Writing... uncouples the communicative event itself.” 160
“The effects of writing cannot be explained in terms of the mere multiplication of addressees, however important this aspect might be. It lies in the reordering of time and culture.” 162
“Writing generates concepts for cognition and for right thinking.”, emphasis mine
It is only after the invention of the printing press that novels, poetry and fiction truly take off 166
There’s a Baudrillard point in here, something about how technology seems to expand the imagination, but in deployment overwrites the imagination, stealing it from all of us
“Over the long term, systems thus developed on the basis of writing that converted their own autopoeisis entirely to second-order observation: the functional systems of modern society 167
Writing enables second order observation; I write down my observations for other observers
“After the invention of writing, it can no longer be assumed that social structures and semantics are in constantly synchronized agreement.” 172
On tele-visual tech
“The result of these inventions is that the entire world has become communicable. The phenomenology of being is replaced by the phenomenology of communication.” 183
“A social system is nothing other than the one side, the inner side, the operating side of the form of the system, and with every operation of the system, the distinctness of the system as opposed to the environment is reproduced. The autopoeisis of a meaning system is nothing other than the reproduction of this difference.” 189
Symbolically generalized communication media are a functional equivalent to normative safeguards of social cohesion, things like natural law, the social contract or consensual morality. 190
Symbolically generalized communication media’ require immediately convincing symbolization, whereas we are seeking to observe what cannot be observed with the semantics of the media’
Differentiation of the media follows from binaries toon based on two possibilities of attribution: internal and external
If a selection is attributed to the system, it’s an action, it’s attributed to the environment, luhmann speaks of an experience 200
‘We speak of truth only when the selection of information is attributed to none of the participants... the truth content of a statement can therefore not be derived from the Will or interest of one of the participants, for this would mean that it is not binding for the others.” 203
Values (truth, justice, peace)avoid being marked out by communication; rather they are suggested; they therefore do not generate the yes/no bifurcation of acceptance and rejection.
They are found in communication without being communicated 205
Discussion of love, psychology, therapy, pathology, mental illness, bottom paragraph of 207
Money is a model for an effective symbolically generalized communication media, in its assumption used for a given transaction, it assumes then dissolves this form back into the media at high speed, using both loose and strict coupling. “It should be noted that transactions are monetarily calculated by both sides when it comes to the exchange of goods for money.” 209
“... it is a fortiori insufficient to follow the thesis current in the art world itself, and above all in literature, that “modern” art has to do in a specific manner with the individual in modern society.”
Art theory similar to Guattari’s mutant universes of reference
Art as activation of deselected possibilities of experiencing the world, as a way of making the world appear in the world 210
The unity of distinctions from a medium are what a form is, bottom of 211
“...neither truth nor money can determine what the recipient does with what is received—and precisely this is the function of power.” 213
Symbolically generalized communication media only appear when the system of society is differentiated enough, and language/writing and dissemination media are differentiated enough, in order for the system of society to use the symbolically generalized communication media in order to further differentiate. 214
Symbolically generalized communication media require a uniform code (central code) for the entire media field. A code consists of two opposing values and at this level... transforms an “analog” situation into a digital one”
“Unlike many other closings, this is a preference code.” Not a yes no, but prefer or prefer the opposite value. 215
This code becomes an invariant structure, and we can cross over it from one side to the other, over and over again 216
“In the course of evolution, codings therefore develop a supplementary semantics of criteria determining the conditions under which the positive and negative values are correctly attributed” this is to be called a Program
Science and law, for example, have their programs
“Fixing the preference or dispreference that distinguishes the code can disregard psychic realities... Precisely because of this preference orientation, symbolically generalized communication media are suitable guidance media. They perform their guidance function by fixing preferences and by exposing them to variable conditioning” 217
Mass Media, Baudrillard, taste, preference, conditioning 217
“Structurally decisive for all this is the difference between fixed preference code and variable conditioning (programs).” 218
“... the positive value symbolizes the connectivity of medium-specific operations, whereas the negative value symbolizes only the contingency of conditions for connectivity... media preference codes consist in a designation value and a reflection value to the exclusion of third possibilities. Something can be done with truths, love, property, power. The corresponding negative values are available only for control purposes and provide the context through which the connection practice of the positive side can become rational selection.” 218
In the act of self-legitimation, the code prevents the entrance of a third distinction 219
Programs: the condition under which the assignment to a positive or negative value of the code is consider right or wrong
“... it is a distinction of distinctions, thus a form for forms.”
“...such programs have to be assigned to one and only one code and cannot shift from medium to medium”
A method of truth investigation does not apply to the legal use of power, etc 227
“We can call the need to take account if corporeality in communication ‘symbiosis’ and the corresponding means of expression, ‘symbiotic symbols’. Symbiotic symbols organize how communication allows itself to be irritated by corporeality...” 218
With the emergence of symbiotic symbols, a reliance no longer on the body and consciousness is maintained, but now a reliance on organization evolves, a reliance on a society that emerges out with these symbols. 229-30
“The technical efficiency of the medium in the structure of its codes and in the dispersal of binding effects speaks against rather than for controllability.” Systems of symbolically generalized communication media cannot be predicted and controlled 235
Coupling to the medium- loose ?
Coupling to the form - strict ?
241-2
The form is temporal in comparison with the stability of the medial substratum 242
“Morality takes on “polemogenous”, war-generating traits: it arises from conflicts and encourages conflicts”
Destructive signs, damage, semiotics 244
“The specific modernity of values lies ultimately in the fact that as form and in all applications, they lead not to unity but to difference.” 247
Onto ch 3
“Our inquiry will be guided by the paradox of the probability of the improbable”
“... every totality of characteristics, for instance, the particularity of a given person, is, if we consider the conditions for these characteristics to come together, extremely improbable: the result of a chance meeting. However, this holds in every case and is therefore quite normal. Statistics can and list ignore this problem.”
251
“The basic proposition is that evolution transforms low probability of origination into high probability of maintenance.”
A schema of variation, selection, and restabilization to explain the recursive functioning of evolution 252
“As always, a distinction that serves for observation requires a blind spot.” This blind spot for our three is between variation and selection, and selection and restabilization; it is called, chance. “We accordingly cannot know (not observe) whether variations lead to the positive or negative selection of innovation; and just as little whether restabilization of the system agent positive or negative selection will succeed or not. And the very proposition that one cannot know, cannot calculate, cannot plan characterized a theory as an evolution theory” 258
“...we abandon the principle of natural selection and switch evolutionary theory to the co-evolution of structurally coupled, autopoeietic systems.” Rather than a well adapted system adapting to the unchanging environment.
“...variation and selection interact by chance...”
“Only the coupling of two distinctions centered in the concept of selection allows the theory to conceive of evolution as an endless process in irreversible time, in which every stability achieved - the more complex it is, the more this holds true - offers a starting point for variation.”
“[restabilization] is therefore both beginning and end, a concept of its unity, which, because it amounts to structural change, can be described as dynamic stability.” 259
“Evolution theory is not a theory of progress. It accepts the the emergence and destruction of systems...”
“Even the idea that evolution improves the adaptation of systems to their environment cannot be understood as progress because we would have to assume that the environment changes continuously and triggers ever-new adaptations.”
“In very simple terms, it [evolution theory] is concerned with explaining structural changes.” 260
“Structures are conditions for restricting the area of connective operations, and are hence conditions for the autopoeisis of the system... they condense and confirms through repetition in various situations a wealth of meaning that eluded definition; or they are forgotten.”
“Evolution is always and everywhere.” Great page about structures 261
Systems need a different temporality, a difference of pacing from the environment in order to evolve, “if the environment did not constantly vary differently than the system, evolution would come to a rapid end in an “optimal fit”.” 262
Every chance generates effects, that generate effects, that...
Deleuzean disjunctions that lead to an infinity of ramifications 262-3
We are looking at the heterogeneity of populations leading to evolution, rather than factors of homogeneity of factors. We are looking at a certain form of ‘collective individualism’ that exists within these populations
“The possibility of variation lies in variety and not in the sufficiently probable chance of there being exemplars along a large number of individuals that distinguish themselves as being particularly innovative.” 263
“Causal propositions always presuppose selection, thus the attribution of causes and effects, and hence an observer. But evolution neither makes such attributions nor observed itself.”
“...we can speak of the social system society evolving only if we conceive of it, not as living; but as a communications system, which reproduces meaning in each of its operations; presupposes knowledge, draws on its own memory, uses cultural forms.”
“Autopoeisis... requires only that communication take place with regard to further communication.”
264
“...systems practice a self-referential, circular relationship between structure and operation. They generate structures through their own operations, but on the assumption that structure guides the determination of connecting operations.” 265
“Autopoeietic systems can come into being when presents occur in which recursive reproduction can be installed... for example, communication (and hence society) is always set in motion whenever utterance and information can be distinguished in observation (which hence becomes understanding)... language imposes this distinction so compellingly that the understander, when he speaks himself, can rely on the very mechanism that allows him to understand. The result is recursive closure, which uses no elements of any sort from the environment but operates with an emergent distinction. It is also easy to demonstrate that consciousness, too, reproduces itself through such recourse.”
Language allows a system to address itself to a shifting environment, temporarily attuning itself to a temporary state, “on account of structural conditions prevailing only in the system and not in the environment.” 267
“The present needs a past that fits” and it is only through narrativizing autopoeisis from within the system itself (the observer being located in the system) that history as such comes to be established. 268
“The importance of chance in evolution theory could be understood as meaning that the theory is grounded in a postulate if ignorance...”
the paradox of a knowledge founded in non-knowledge
One might say that systems are accessible to one another through windows, not on the whole 270
Chance “presupposes system reference, for only thus can an observer say for whom something is chance.”
Read the bottom 2 paragraphs
271
“Since selection is double edged, however, either protecting what exists or changing it, we need a further concept, which I shall call restabilization.”
“Variation does not simply mean change (for this would then already be evolution), but the production of a variant for possible selection. Similarly, selection... refers to selection on the occasion of a variation that occurs in the system.” 272
Selection from variation is often guided by the future; selecting from a variety of variations the variation most likely to accomplish a specific goal in mind 273
“An autopoeietic system can neither begin nor end a structural change with selection.” For selection is always of the middle 274
“Variation can lie... frequently, in the unexpected non acceptance of an utterance in view of a situation that makes this possible or likely.”
“The variation mechanism consists in the invention of negation and the yes/no coding of linguistic communication this makes possible.” 276
“...deviation is a recursive concept, for it presupposes something to deviate from.” 278
Variation does not have the ability to communicate with selection and vice versa, this is what is meant by chance 279
“All variation thus depends on a predetermined semantic...” we must have an established semantic (condensed and confirmed) prior to perception of variation 282
We need autopoeisis before autopoeisis, a reciprocal causality
Variation comes to be preferred to tradition, no questions asked, and critique comes to mean a rejection of what is criticized, “In sum, variation suffers semantic hypertropy-and society consequently develops a built-in disappointment with itself. For variation alone cannot effect evolution.” 284
Form of selection: choose variation, or system state
Form of variation: occur or not occur
This is a double sided form, as one side is always chosen
The form of evolution (variation/selection) is therefore a second-order form, a form formed of forms. 285
“For living beings, the function of restabilization is performed by the formation of populations... the reproductive isolation of a gene poolthat can accept variations to a limited extent and include them in reproduction. Each population can produce offspring only within itself, snakes and cats cannot produce snats.” 292
Old societies had gradual change, and sudden radical change, but that radical change was only such that it was from stationary state to stationary state.
“... the transition to a modern society effected a “metatransition,” a transition from a stationary state to a nonstationary state; and an appropriate epistemology was only now developing.” 299
“Systems theory would say that the greater system complexity (achieved through evolution) is, the more probable innovation will be.”
“I have spoken of “irritation.” Hence, the greater tempo of evolution corresponds not, for example, to more and more overlap, interlinkage, dedifferentiation at the system boundaries, but to operational closure and self-organization accompanied by increasing irritability.” 304
The whole technology subchapter is great
Technology is geared to strict, not loose couplings 316-318
Technology makes it possible to couple heterogeneous elements
“Technology... can only be observed and installed only if a system determines which of the innumerable elements are to be coupled.” 318
“Technology... makes it possible to realize couplings with the environment within the system through disposition over intrasystemic elements.” 318-319
This concept of technology is about a selective isolation of a specific slice the chaotic environment/outside of the system, instead of a more typical consideration of Technics qua organon, or Technics as multiplier/enhancer 319
In the late 20th century, the goal and energy resources of technology has shifted “from bodies and things to signs whose meaning consists in making other signs available.” 329
“Binary codes therefore appear to be hinges for opening the gates to subsystem evolutions in society where favorable circumstances occur... Binary structures have speed advantages; they offer the fasted way to develop complexity and, at the same time, the simplest form of ordering memory.” 339
How does evolution (variation, selection, restabilization) result from binary coding? That’s the question
“The coding and programming of functional systems is both result and condition of their evolution.” 340
The speeding evolution of subsystems at differing rates and without control/cross communication leads to a “co-evolution of unsustainability. We could also say that evolution only sustains itself.” The subsystems are sustaining evolution at the cost of a very specific type of societal and social and ecological and... unsustainability 341
“A theory of societal evolution renounces causal explanations... it replaces the causal scheme by the assumption of circular evolutionary conditions. In every historical situation, society is a nontrivial, historical machine which used variation, selection and restabilization in accordance with the momentary state of affairs.” 345
[[thirdness]] is [[mediation]], [[secondness]] is [[relation]]. [ [[firstness]] is [[immediacy]] ]
[[12CS14]]
[[thought]] is the [[faculty]] of [[problem]]s
[[DG172]]
[[connective synthesis]]
[[disjunctive synthesis]]
[[conjunctive synthesis]]
Welcome to TiddlyBlink! ~TiddlyBlink is an adaptation of TiddlyWiki with the goal of helping you see connections between your ideas, and move quickly from one idea to another. It was inspired by the bi-directional linking found in Roam (https://roamresearch.com/), but built with capabilities already available in ~TiddlyWiki (https://tiddlywiki.com). See my example file [ext[here|https://giffmex.org/gifts/tiddlyblinkexample.html]].<br><br>
''The basic idea:''
Below each tiddler (note card) is a list of links to any other tiddlers that link to the current tiddler's title in their text field. There are four options for viewing those links, as seen in {{$:/core/images/preview-open}} menu above or in the TiddlyBlink menu in the sidebar. So as you create tiddlers for sources, notes and topics, you can link them all to each other and navigate between them in the 'blink' of an eye!
<hr>
''Basic instructions''
<span class="indent1"><$list filter="[!is[system]tag[meta]tag[starthere]sort[title]]"><$link><$view field="title"/></$link><br></$list></span>
<hr>
''Advanced stuff''
<span class="indent1"><$list filter="[is[system]tag[meta]sort[title]]"><$link><$view field="caption"/></$link><br></$list></span>
Current Projects:
Begin to link [[element]]
Familiarizing
Importing of Notes
[[A Thousand Plateaus]] Second Reading
[[set]]s are [[close]]d and everything which is closed is artificially closed. Sets are always sets of [[part]]s. But a [[whole]] is not closed, it is open; and it has no parts xcept in a very special [[sense]], since it cannot be [[divide]]d without changing [[qualitatively]] at each [[stage]] of the [[division]]. [[nondecomposable]], see prior tiddler.
The [[point]] is that [[set]]s are in [[space]], and the whole, the whole are in [[duration]], are duration itself, in so far as it does not stop changing...
three [[level]]s: (1)the sets or closed [[system]]s which are defined by [[discernible]] objects or [[distinct]] parts; (2) the [[movement]] of [[translation]] which is established between these objects and modifies their respective [[position]]s; (3) the duration or the whole, a spiritual [[reality]] which [[constant]]ly changes according to its own [[relation]]s.
Thus ins a sense [[movement]] has [[two]] [[aspect]]s. On one hand, that which happens [[between]] objects or parts; on the other hand, that which [[express]]es the duration or the whole. The result is that duration, by changing qualitatively, is divided up ion objects, and objects, by gaining [[depth]], by losing their [[contour]]s, are united in duration. We can therefor say that movement relations the objects of a closed system to open duration, and duration to the objects of a system which it forces to open up. Movement relates the objects between which it is established to the changing whole which it expresses, and vice versa.
objects as [[immobile]] [[section]]s.
really need to [[reread]] these pages.
a certain [[logic]] of the [[assemblage]] and the [[diagram]] is shown here
movement is related to the whole, objects to the set; movement relates objects of the set to the whole?
[[TMI p9-1]]
We will call the [[determination]] of a [[closed system]], a relatively closed [[system]], which includes everything which is present in the image-sets, characters and props-[[framing]]. The [[frame]] therefor [[form]]s a [[set]] which has a great number of [[part]]s, that is of [[element]]s, which themselves form [[subset]]s. It can be broken down...
The frame is therefore inseparable from two [[tendency]]s: towards [[saturation]] or [[toward]]s [[rarefaction]].
[[TMI p10/11-1]]
the [[fame]] has always been [[geometrical]] or [[physical]], depending on whether it constitutes the [[closed system]] in relation to chose [[coordinate]]s or in relation to selected [[variable]]s. The frame is therefore sometimes conceived of as a [[spatial]] [[composition]] of parallels and diagonals, the constitution of a [[receptacle]] such that the [[bloc]]s abd the [[line]]s of the [[image]] which come to occupy it will find an [[equilibrium]] and their [[movement]]s will find an [[invariant]]...
The frame is also geometric or physical in another way- in relation to the [[part]]s of the [[system]]s that it both separates and brings together. In the first case, the frame is inseparable from [[rigid]] geometric [[distinction]]s
[[TMI p12-1]]
On the other hand, the [[physical]] or [[dynamic]] conception of the [[frame]] produces [[imprecise]] [[set]]s which are now only divided into [[zone]]s or [[band]]s. The frame is no longer the object of geometric [[division]]s, but of [[physical]] [[gradation]]s... Here, it is by [[degree]]s of [[mix]]ing that the [[part]]s [[become]] distinct or confused in a [[continual]] [[transformation]] of [[value]]s. The [[est]] cannot [[divide]] into parts without [[qualitatively]] changing each [[time]]: it is neither divisible nor indivisible, but '[[dividual]].' Admittedly, that was already the case in the [[geometric]] conception-there the dovetailing of frames indicated the qualitative changes. The cinematographic [[image]] is always dividual.
This is because... the [[screen]], as the frame of frames, gives a [[common]] [[standard]] of [[measurement]] to things which do not have one-long [[shot]]s of country side and close-ups of the face ([[example]]s follow)-parts which do not have the same [[denominator]] of [[distance]], [[relief]], or [[light]]. In al these [[sense]]s the frame ensures a [[deterritorialize]]ation of the image
[[TMI p13-1]]
...the [[visual]] [[image]] has a [[function]] beyond its visible function.[[TMI p14/15-1]]
The [[out-of-field]] refers to what is neither seen nor understood, but is nevertheless perfectly [[present]]. This [[presence]] is indeed a [[problem]] and itself refers to two new [[concept]]ions of [[frame]]ing... we see that sometimes the frame works like a [[mobile]] [[mask]] according to which every [[set]] is [[extend]]ed into a larger [[homogeneous]] set with which it [[communicate]]s, and sometimes it works as a [[pictorial]] frame which [[isolate]]s a [[system]] and [[neutralize]]s its [[environment]]...
[[Renoir]]: Space and action always go beyond the limits of the frame
[[Hitchcock]]: The frame... acts as a frame for a tapestry...
All framing determines an out-of-field. There are not two types of frame only one of which would refer to the oof; there are rather two very different [[aspect]]s of the oof, each of which refers to a [[mode]] of framing.
[[TMI p15-1]]
The divisibility of [[content]] means that the [[part]]s belong to various [[set]]s, which [[constant]]ly sub[[divide]] into [[subset]]s or are themselves the subset of a larger set, on to [[infinity]]. This is why content is defined both by the [[tendency]] to constitute [[closed system]]s and by the fact that the tendency never reaches completion. Every closed system also [[communicate]]s. There is always a [[thread]]... to link any set whatever to a larger set. This is the first [[sense]] of what we call the [[out-of-field]]: when a set is [[frame]]d, therefore seen, there is always a larger set, or another set with which the first forms a larger one, and which can in turn be seen, on [[condition]] that it gives rise to a new OOF, etc.
The set of all these sets forms a homogeneous [[continuity]], a [[universe]] or a [[plane]] of genuinely unlimited content ([[virtual]]?). The [[whole]] is not devoid of sense, it is not a set and does not have parts. t is rather that which prevents each set, however big it is, from closing in on itself, and that which forces it to extend into a larger set.
[[TMI p16-1]]
Whatever their relationship, one should therefore not confuse the [[extension]] of [[set]]s into each other with the [[open]]ing of the [[whole]] which passes into each one. A [[closed system]] is never absolutely closed; but on the other hand it is connected in [[space]] to other [[system]]s by a more or less 'fine' [[thread]], and on the other hand it is [[integrate]]d or reintegrated into a whole which [[transmit]]s a [[duration]] along this thread.
[[TMI p16-2]]
[[cut]]ing is the determination of the [[shot]], and the shot, the determination of the [[movement]] which is established in the [[closed system]], between [[element]]s or [[part]]s of the [[set]]
[[TMI p17-1]]
Thus [[movement]] has two facets... the [[relation]]ship [[between]] [[part]]s and the [[state]] ([[affection]]) of the [[whole]]. One the one hand it modifies the respective [[position]]s of the parts of a set, which are like its [[section]]s, each one [[immobile]] in itself; on the other it is itself the [[mobile]] section of a whole whose [[change]] it [[express]]es. From one [[point of survey]] it is called [[relative]], from the other, it is called [[absolute]]...
the [[frame]]ing of the set, the [[montage]] of the whole
[[TMI p18-1]]
The [[shot]] is the [[movement-image]]. In so far as it relates [[movement]] to a [[whole]]] which changes, it is the [[mobile]] [[section]] of [[duration]]...
[[natural]] [[perception]] introduces halts, moorings, fixed [[point]]s or separated [[point of survey]]s, moving [[body]]s or even [[distinct]] vehicles, whilst [[cinematographic]] perception works [[continuous]]ly, in a single movement whose very halts are an [[integral]] [[part]] of it and are only a [[vibration]] onto itself.
[[TMI p19-1]]
The [[movement-image]]-that is, [[pure]] [[movement]] [[extract]]ed from [[body]]s or moving things.
[[TMI p22-1]]
By producing in this way a [[mobile]] [[section]] of [[movement]]s, the [[shot]] is not [[content]] to [[express]] the [[duration]] of a [[whole]] which changes, but constantly puts [[body]]s, [[part]]s, [[aspect]]s, [[dimension]]s, [[distance]]s, and the respective [[position]]s of the bodies which make up a [[set]] in the [[image]] into [[variation]]. The one comes about through the other. It is because pure movement varies the elements of the set by dividing them up... because it decomposes and recomposes the set-that it also relates to a fundamentally open whole, whose [[essence]] is constantly to [[become]] or to [[change]], to [[endure]], and vice versa
[[TMI p23-1]]
the [[shot]]: it is a [[mobile]] [[section]], that is, a [[temporal]] [[perspective]] or [[modulation]].
[[TMI p23-2]]
...a [[unity]] is always that of an [[act]] which includes as such a [[multiplicity]] of [[passive]] or [[active]] [[element]]s/ [[shot]]s, as [[immobile]] [[spatial]] [[determination]]s, are perfectly capable of being, in this [[sense]], the multiplicity which corresponds to the unity of THE shot, as [[mobile]] section or [[temporal]] [[perspective]]. The unity will vary according to the multiplicity that it contains, but will be no less than the unit of this correlative multiplicity. [[example]]s follow.
[[TMI p24-1]]
[[false continuity]] is neither a [[connection]] of [[continuity]], nor a [[rupture]] of [[discontinuity]] on the connection. False continuity is in its own right a [[dimension]] pf the [[open], which [[escape]]s [[set]]s and their [[part]]s. It realizes the other [[power]] of the [[out-of-field]], this elsewhere or this [[empty]] [[zone]], this 'white on white which is impossible to film.'.. Far from breaking up the [[whole]], false continuities are the [[act]] of the [[whole]], the hallmark that they impress on sets and their parts, just as true continuities represent the opposite [[tendency]]: that [act?] of the parts and the sets to rejoin a whole which escapes them.
[[TMI p25/6-7]]
[[montage]] is the [[determination]] of the [[whole]]... by means of [[continuity]]s, [[cut]]ting and [[false continuity]]s. [[Eisenstein]] continually reminds us that montage is the [[whole]] of the [[film]], the [[idea]]...
If we consider the three [[level]]s-that of the determination of [[closed system]]s, that of the [[movement]] which is established [[between]] the [[part]]s of a [[system]], and that of the changing whole which is [[express]]ed in movement-there is a [[circulation]] between the [[three]] which enables each to [[contain]] or [[prefigure]] the others.
[[TMI p28-1]]
[[montage]] is [[composition]], the [[assemblage]] of [[movement-image]]s constituting an indirect [[image]] of [[time]].
[[TMI p29-1]]
These are the [[three]] [[form]]s of [[montage]], or of [[rhythm]]ic [[alternation]]; the alternation of differentiated [[part]]s, that of [[relative]] [[dimension]]s, and that of [[convergent]] [[act]]ions.
[[TMI p30-1]]
[[chronosign]]s are mentioned for the first time
[[sign]]s [[semiotic]]s [[TMI p31-1]]
The [[idea]] of something that every time it [[divide]]s, each [[segment]] that is divided grows on its own, and also comes to [[form]] its own [[opposition]]s/[[binary]]s and its good [[mix]]tures; it finds its [[joy]]s and [[sadness]]es. [[self-organize]]
"opposed but unequal...progresses by growing through oppositions or contradictions... the [[set]] is reflected in each [[part]] and each part or [[twist]] of the [[spiral]] reproduces the set" (32/3)
[[Eisenstein]]
[[TMI p32-1]]
...a totality which has become [[concrete]] or existing, in which the [[part]]s are produced by each other in their [[set]] and the set is reproduced int he parts, so that this [[reciprocal]] [[causality]] refers back to the [[whole]] as [[cause]] of the set and of its parts, according to an [[internal]] [[finality]]... the way in which dialectical [[reality]] constantly produces itself and [[grow]]s. Things truly [[plunge]] into [[time]] and become [[immense]] because they occupy there an infinitely greater [[position]] than the parts have in the set or the set itself.
[[TMI p33-1]]
A first [[type]] of [[machine]] is the [[automaton]], a simple machine or clock [[mechanism]], a [[geometrical]] [[configuration]] of [[part]]s which [[combine]], [[superimpose]], or [[transform]] [[movement]]s in [[homogeneous]] [[space]], according to the [[relation]]ships through which they [[pass]].
[[TMI p37-1]]
...a [[world]] where [[image]]=[[movement]]. Let us call the [[set]] of what [[appear]]s 'Image'. We cannot even say that one image [[act]]s on another or reacts to another. There is no moving [[body]] ([[mobile]]) which is distinct from executed movement. Every thing, that is to say every image, is indistinguishable from its [[action]]s and [[reaction]]s; this is [[universal]] [[variation]]. Every image is 'merely a road by which pass, in every [[direction]], the modifications propagated throughout the immensity of the universe.' Every image acts on others and re[[act]]s to others, on 'all their [[facet]]s at once' and 'by all their [[element]]s'. 'The [[truth]] is that the movements of [[matter]] are very clear, regarded as images, and that there is no need to look in movement for anything more than what we see in it.'
[[TMI p41-1]]
The [[plane of immanence]] is the [[movement]] (the [[facet]] of movement) which is established between the [[part]]s of each [[system]] and between one system and another, which crosses them all, stirs them all up together and [[subject]]s them all to the [[condition]] which prevents them from being absolutely closed... It is a [[mobile]] [[section]], a [[temporal]] section or [[perspective]]. It is a [[bloc]] of space-time... There is even an [[infinite]] [[series]] of such blocs or mobile sections which will be, as it were, so many presentations of the [[plane of immanence]], corresponding to the succession of movements in the [[universe]]... The [[material]] [[universe]], the plane of immanence, is the [[machinic assemblage]] of [[movement-image]]s.
[[TMI p58-1]]
The [[cinema]] [[image]] as being that which extracts [[point]]s of [[singularity]] from the [[line]]s being drawn out by (among other things) [[movement]], [[pose]]s, etc. A [[double articulation]]?
all [[consciousness]] is something (not of something, like [[phenomenology]] would say), it is indistinguishable from the thing, that is from the [[image]] of [[light]]. Rather than Consciousness as light, light is in the the thing, indistinguishable from it.
'We may therefore say that the [[plane of immanence]] or the plane of matter is: a [[set]] of [[movement-image]]s; a [[collection]] of [[line]]s or [[figure]]s of light; a [[series]] of [[bloc]]s of [[space]]-[[time]].
[[TMI p59-1]]
What happens and what can happen in this [[acenter]]ed [[universe]] where everything [[react]]s on everything else? we must not introduce a different [[factor]], a factor of another nature. So what can [[happen]] is this: at any [[point]] whatever of the [[plane]] an [[interval]] appears-a [[gap]] between the [[action]] and reaction. All [[Bergson]] asks for are [[movement]]s and intervals between movements which serve as units... Whereas the other [[image]]s act and react on all their [[facet]]s and in all their [[part]]s, here we have images which only [[receive]] actions on one facet or in certain parts and only execute reactions by and in other parts. There are, so to speak, 'quartered' images. And from the outset their specialized facet... has a curious effect on the influencing image or the received excitations. It is as if this specialized facet isolated certain images from all those which compete and act together in the universe. It is here that [[closed system]]s, [[tableaux]], can be constituted...
It is an [operation]] which is exactly described as a [[frame]]ing: certain actions undergone are [[isolate]]d by the frame and hence, as we shall see, they are forestalled, [[anticipate]]d. But, on the other hand, executed reactions are no longer immediately linked with the action which is undergone. By virtue of the interval, these are delayed reactions, which have the [[time]] to [[select]] their [[element]]s, to [[organize]] them or to [[integrate]] them into a new movement which is impossible to conclude simply by prolonging the received excitation.
Such reactions which present something unpredictable or [[new]] will be called '[[action]],' strictly speaking. This the living image will be 'an instrument of analysis in regard to the movement received, and an instrument of selection in regard to the movement executed.' Because they only owe this privilege to the phenomenon of the [[gap]], or interval between a received and executed movement, living images will be 'centers of [[indetermination]], which are formed in the acentered universe of movement-images.
[[TMI p61-1]]
This time, instead of diffusing and propagating in all [[direction]]s 'without resistance or dwindling,' the [[line]] or [[image]] of [[light]] runs up against an obstacle, that is an [[opacity]] that will [[reflect]] it. The image reflected by a living image is precisely what will be called [[perception]]. And these two aspects are strictly complementary: the special image, the living image, is indissolubly the [[center]] of [[indetermination]] or [[black screen]]. An essential consequence follows- the existence of a double [[system]], of a double [[regime]] of [[reference]] of images. There is firstly a system in which each image varies for itself, and all the images [[act]] and [[react]] as a [[function]] of each other, on all their [[facet]]s and in all their [[part]]s. But to this is added another system where all vary principally for a single one, which receives the action of the other images on one of its facets and reacts to them on another fact.
...the [[brain]] is nothing but this-an [[interval]], a [[gap]] between an action and a reaction. The brain is certainly not a center of images from which one could begin, but itself constitutes one special image among the others. It constitutes a center of indetermination in the [[acenter]]ed [[universe]] of images.
[[TMI p61/62-1]]
The [[thing]] and [[perception]] of the thing are one and the same thing, one and the same [[image]], but related to one or other of two [[system]]s of [[reference]]. The thing is the image as it is in itself, as it is related to all the other images to whose [[action]] it completely submits and on which it [[react]]s immediately. But the perception of the thing is the same image related to another special image which frames it, and which only retains a [[partial]] action from it, and only reacts to it [[mediate]]ly. In perception thus defined, there is never anything else or anything more than there is in the thing: on the contrary, there is 'less.'.. Which is a way of defining the first [[material][] [[moment]] of [[subjectivity]]: it is [[subtractive]]. It subtracts from the thing whatever does not interest it. But, conversely, the thing itself must then be presented in itself as a [[complete]], immediate, diffuse perception. The thing is image, and in this respect, is perceived itself and perceives all the other things inasmuch as it is[[subject]] to their action and reacts to them on all its [[facet]]s and in all its parts... things and perceptions of things are [[prehension]]s, but things are total [[objective]] prehensions, and perceptions of things are incomplete, prejudiced, partial, subjective prehensions.
[[TMI p62/63-1]]
...we go from total, [[objective]] [[perception]] which is indistinguishable from the thing, to a [[subjective]] perception which is distinguished from it by simple elimination or subtraction. It is this [[unicenter]]ed subjective perception that is called perception strictly speaking. And it is the first [[avatar]] of the [[movement-image]] when it is related to a [[center]] of [[indetermination]], it [[become]]s [[perception-image]].
[[TMI p63-1]]
...the second [[avatar]] of the [[movement-image]]: it [[become]]s [[action-image]]. One passes [[imperceptible]]y from [[perception]] to [[action]]. The o[[operation]] under consideration is no linger elimination, selection of [[frame]]ing, but the [[incurve]]ing of the [[universe]], which simultaneously causes the [[virtual]] action of things on us and our [[possible]] action on things. This is the second [[material]] aspect of [[subjectivity]].
perception-gap-action
[[TMI p64-1]]
[[affection]]... a coincidence of subject and object, or the way in which the subject perceives itself, or rather experiences itself or feels itself 'from the inside' (third [[material]] aspect of [[subjectivity]])... the final [[avatar]] of the [[movement-image]]: the [[affection-image]].
[[TMI p65-1]]
[[Chaplin]] used the [[cinema]], rather than serving it, by arguing that he gave [[mime]] a new [[model]], a [[function]] of [[space]] and [[time]], a [[continuity]] [[construct]]ed at each [[instant]], which now only allowed itself to be [[decompose]]d into its [[prominent]] [[immanent]] [[element]]s ([[singularity]]s?), instead of being related to prior ([[transcendent]] [[form]]s which it was to [[embody]].
[[TMI p6-1]]
[[dicisign]] is mentioned for the first time.
[[TMI p65-2]]
[[Bergson]]s third thesis... not only is the [[instant]] an [[immobile]] [[section]] of [[movement]], but movement is a [[mobile]] section of [[duration]], that is, of the [[whole]], or of a whole. Which implies that movement [[express]]es something more profound, which is the change in duration or in the whole...
Movement is a [[translation]] in [[space]]. Now each time there is a translation of [[part]]s in space, there is also a qualitative change in a whole... An [[animal]] moves, but this is for a purpose: to feed, migrate, etc. It might be said that movement [[presuppose]]s a difference of [[potential]] and aims to fulfill it. If I consider parts or [[place]]s abstractly-A and B-I cannot understand the movement which foes from one to the other. But imagine I am starving at A, and at B there is something to eat. When I have reached B and had something to eat, what has changed is not only my [[state]], but the state of the [[whole]] which encompassed B, A, and all that was between them.
more [[example]]s follow, Movements bring along changes in qualities, as shown above.
But the [[quality]]s themselves are pure [[vibration]]s which change at the same [[time]] as the alleged [[element]]s move (p9)
[[TMI p7-1]]
[[Bergson]]...: if the [[whole]] is not giveable, it is because it is the [[open]], and because its [[nature]] is to [[change]] [[constant]]ly, or to give rise to something new, in short, to [[endure]].
[[duration]] [[system]]
[[TMI p8-1]]
we are to refuse the idea that syntactic markers are of human nature, and instead are the "result of [[semiological]] [[transformation]]s dependent upon a given [[context]] within a [[power]] [[system]] increasingly [[intolerant]] towards [[intrinsic]] [[mode]]s of [[code]] [these] are seemingly innoffensive stakes that actually singularly surpass the traditional framework of [[linguistic]s] and [[semiotic]]s.
The set of [[machine]]s that are social, technical, desiring, etc,. acan no longer avoid the [[overcoding]] of statist [[signifying]] machines. In fact, the signifying power of national [[language]]s tends to coincide with the multiform power of [[State]]s and the [[network]]s of community [[institution]]s. [[molecular]] [[chain]]s of [[expression]] are substituted for the ancient [[segmentary]] structures of the [[socius]] in order to constitute a homogeneous [[plane of content]] which always conveys the... demands of the repressive [[habit]]s and customs of a [[majoritarian]] consensus...
It is through the exhaustion of this design that the [[intensity]]s of [[desire]] become unglued from their ancient [[territory]]s and receive their [[polarity]] of [[subject]] and [[object]]. Mediatized, watched over, they become social need, demand, necessity, and submission. They no longer exist except to the extent that their [[expression]] [[resonate]]s with the [[signification]]s of the mass [[media]], or, when [[fold]]ed onto themselves, they are able to be [[translate]]d, i.e. when they renounce their [[capacity]] of [[nomad]]ic [[flux]]
[[TMU p38-1]]
Thus, the [[unconscious]] works inside [[individual]]s in their manner of perceiving the [[world]] and living inside their [[body]], [[territory]], and [[sex]], as well as inside the couple, the family, school, neighborhood, factories, stadiums, and universities...
Then why stick this label "[[machinic unconscious]]" onto it? simply to stress that it is [[populate]]d not only with [[image]]s and [[word]]s, but also with all kinds of [[mechanism]]s that lead it to [[produce]] and [[reproduce]] these images and words.
[[machinic]]
[[machinic unconscious]]
Ot think [[time]] against the grain, to imagine that what came "after" can modify what was "before" or that changing the past at the root can transform a current [[state of affairs]]: what [[madness]]! A return to [[magic]]al thought? It is pure science fiction, and yet... In my view there is nothing absurd about attempting to explore these [[interaction]]s, which I would also [[qualify]] as [[machinic]] without initially specifying their [[material]] and/or [[semiotic]] nature.
[[TMU p10-1]]
These [[abstract]] [[deterritorialize]]d [[interaction]]s, or, more briefly, these [[abstract machine]]s traverse various [[level]]s of [[reality]] and establish and demolish [[strata]]fications.. Abstract machines cling not to a single [[universal]] [[time]] but to a trans-[[spatial]] and trans-[[temporal]] [[plane of consistency]] which [[affect]]s them through a [[relative]] [[coefficient]] of their existence. Consequently, their "appearance" in reality can no longer claim to be given all in one piece: it is negotiated on the basis of [[quanta]] of [[possible]]s. The [[coordinate]]s of existence function like so many space-time and [[subjective]] coordinates and are established on the basis of [[assemblage]]s which are in constant interaction and are incessantly engaged in [[process]]es of deterritorialization and [[singular]]ization causing them to be decentralized in comparison to one another, while assigning them "[[territory]]s of replacement" in [[space]]s of [[code]]ing.
This is why I shall oppose [[territory]]s and lands to [[machinic territorialities]]. By distinguishing them from a set logic, "[[machinism]]" of the assemblage will only recognize relative [[identity]]s and [[trajectory]]s.... Having considered things from the [[angle]] of [[machinic]] [[time]] and the plane of consistency, everything will wake on a new light: [[causality]]s will no longer [[function]] in a single [[direction]], and it will no longer be allowed for us to affirm that "everything is a foregone conclusion."
territories of replacement: parts of an assemblage's machinic functionalism that can replace and be replaced by others, not necessarily identically but within a relative deterritorialization (of what's being replaced, or of what's doing the replacing; or both) as well as a singularization that leads to hte continuance of the replaced [[component]] or [[function]] that allows it to be replaced qua single replacement (or mutated qua singular component qua site of mutation)
Double direction, past and future: [[Deleuze]]s use of [[becoming]]
[[TMU p10/11-1]]
all in all [[machine]]s become independent of their immediate [[manifestation]]s while "[[smoothing]]" a [[plane of consistency]] that authorizes every [[interaction]] possible!.. ([[abstract machine]]s) convey [[singularity]] [[point]]s "[[extract]]ed" from the [[cosmos]] and [[history]].
Rather than abstract machines, perhaps it is preferable to speak of "[[machinic extract]]s" or [[deterritorialize]]d and deterritorializing machines. In any [[event]], I consider that hey should not be comparable to [[entity]]s attached once and for all to a [[universe]] of [[form]]s and general [[formula]]s. By preserving the [[expression]] "abstract machine" in spite of its [[ambiguity]], it is the very idea of [[abstract]] [[universal]]s that I am to dispute.
Abstraction can only result from machines and [[assemblage]]s of concrete [[enunciation]]s. And since there is no general assemblage that overhangs all of them, every time we encounter a universal enunciation, it will be necessary to determine the particular [[nature]] of its enunciative assemblage and analyze the [[operation]] of [[power]] that leads it to lay claim to such a universality.
[[TMU p11-1]]
The [[collective assemblage]] of [[enunciation]] speaks "on the same [[level]]" as [[state of affair]]s, [[state]]s of facts, and [[subjective]] states.
[[TMU p12-1]]
[[connection]]s are only [[possible]] at the [[point]] where abstract [[mechanism]]s and concrete, dated, and situated [[assemblage]]s enable a connection to their [[deterritorialize]]ation. Also, assemblages are not delivered randomly to the [[axiom]]atic of [[universal]]s: the only "[[law]]" they uphold is a general [[movement]] of deterritorialization. The axiomatic returns to the assemblage more deterritorialized in order to solve the impasse of previous [[system]]s of [[enunciation]] and untie the [[strata]]fications of the [[machinic assemblage]]s that correspond to them. Such a "law" does not imply a pre-established order, a necessary harmony, or a systemic universal of anything
[[TMU p14-1]]
On the contrary (to [[Thom]]) I will start with the idea that [[assemblage]]s of [[flow]]s and [[code]]s are first compared in [[relation]] to [[differentiation]]s of [[form]] and [[structure]], [[object]] and [[subject]], and that the [[phenomena]] of [[formal]] [[interaction]] constitute only a particular case, that of a [[border]][[line]] case, within the [[machinic]] [[process]]es that work upon the assemblages before the [[substance]]-[[form]] [[coupling]].
[[TMU p15-1]]
[[abstract machine]]s do not [[function]] like a [[code]]ing [[system]] stacked on from the "outside" on the existing [[strata]]fications. within the framework of the general [[movement]] of [[deterritorialize]]ation that I evoked earlier, they constitute a sort of [[transformational]] [[matter]], what I call an "[[optional subject]]"-composed of the [[crystal]]s of the [[possible]] which [[catalyze]] [[connection]]s, destratifications, and [[reterritorialize]]ations both in the living and inanimate world. In short, abstract [[machinism]]s emphasize the fact that deterritorialization in all its [[form]]s "precedes" the existence of the strata and the [[territory]]s.
Not being 'realizable" in a purely logical space but only through [[contingent]] [[machinic]] [[manifestation]]s, they never involve simple [[combination]]s; they always imply an [[assemblage]] of [[component[[s irreducible to a formal description... the analysis will attempt to never simplify or reduce what seems preferable to call a [[molecular]] [[level]]. Machinic [[molecule]]s may carry [[key]]s of encoding that lead to the most differentiated assemblages. Moreover, the scope of the "most complex" generally seems to depend upon the fact that these molecular machinisms are more deterritorialized and more [[abstract]].
[[TMU p15-2]]
The [[assemblage]]s do not acknowledge-as of yet-[[object]]s and [[subject]]s: but that does not mean that their [[component]]s do not have anything to do with something that is of the order of [[subjectivity]] and [[representation]], but not in the traditional form... Other [[process]]es of [[encoding]] and "ensigning,"... will thus have to come to light...
The singular features of a non-semiologically formed [[matter]] will be able to lay claim to [[universal]]ity. While conferring onto [[singularity]] [[point]]s a particular [[power]] of crossing [[strata]]fied [[field]]s, the [[particles-signs]] conveying [[quanta]] of [[possible]]s will only equip them for a [[limit]]ed number of universal capacities. Indeed, the assemblages that embody the singularity-[[abstract machine]]s [[conjunction]]s remain prone to be undone for the purpose of opening up other possible and contingencies... the though of assemblages and [[molecular]] [[machinism]]s should continue connecting all sorts of practices situated in the perspective of changes and [[transformation]]s of the existing [[order]]s and the diminishing of their [[power]].
[[TMU p15/16-1]]
[[Hjelmslev]] relegates creativity in language "to a [[margin]]al [[position]], which seems to echo, on the [[linguist]]ic [[plane]], what mad children and poets experience on the [[social]] plane. How do we make sense of this, since [[deviant]]s and [[subject-group]]s manage to invent words, break syntaxes, inflect [[signification]]s, produce new connotations, and [[generate]] linguistic alterations parallel with other levels of social [[transformations]]? Linguists are imperialists!" that's how lmao
[[TMU p17-1]]
Most people today only value the [[semantic]] and [[pragmatic]] study of [[content]]s as secondary, but we intend to manipulate them with tweezers and take them carefully to the deviation of the [[collective assemblage]] of [[enunciation]] that have effectively produced them.
[[TMU p25-1]]
The [[hypothesis]] of an [[abstract]] [[machinic phylum]] traversing [[language]], [[representation]], and the diverse [[actual]] and [[virtual]] [[level]]s of [[reality]] presents the incentive to corrode the [[linguist]]ic edifice from the inside, to render it porous without destroying it as such...
[avoid] a structuralist or generativist formalization that separates the production of [[statement]]s from the [[collective assemblage]]s of [[enunciation]].
[[TMU p26-1]]
Language is everywhere, but it does not have any [[domain]] of its own. There is no [[language]] in itself. What specifies [[human]] language is precisely that it never refers back to itself, that it always remains open to all the other [[mode]]s of [[semiotization]]... There is nothing less logical, less mathematical than a language.
[[TMU p26-2]]
The [[unity]] of a [[language]] is always inseparable from the constitution of a [[power]] [[formation]]. One never finds clear boundaries on dialectical [[map]]s but only [[border]]ing or [[transition]]al [[zone]]s. There is no mother-language except in the [[phenomena]] of the [[semiotic]] takeover by a [[group]], ethnicity, or nation. Language is stabilized around a parish, fixed around a bishopric, and installed around a political capital. It evolves by [[flow]]ing along river valleys, railway lines; it moves through oil spots ([[example]] of the Castilian dialect).
[[TMU p27-1]]
[[language]], according to [[Weinrich]]s formula, is an "essentially heterogenous [[reality]]."... There are no biological, economic, social, [[linguist]]ic, psychoanalytical [[universal]]s... but [[abstract machine]]s that [[differentiate]] themselves, on the basis of the [[plane of consistency]] of all [[possible]]s, and which hook up to the singular crossroads [[point]]s of the [[machinic phylum]]. All this without the promotion of a [[transcendent]] formalism...
[[TMU p27/28-1]]
[there is an]] [[abstract]] [[power]] set into play by the most de[[code]]d [[captialist]]ic [[flow]]s ([[asemantic]] and [[asignifying]] [[diagrammatic]] flows).
[[TMU p29-1]]
Theories of the universality of [[competence]] rest on... [the idea] that the [[individual]] arranges [assembles] a [[machine of expression]] bringing into play general designs which can produce much more than a simple accumulation of already memorized [[statement]]s. Undoubtedly, but the relationship between this "machine of competence" and the productions that it "performs" can be reversed. The [[machine]] itself is produced by its production. How could it be otherwise?... [[competences]] and [[performance]]s are in [[constant]] [[interaction]].
...competence, the [[machinic]] [[virtual]]ity of [[expression]] conceals the [[key]]s to unlocking the [[deterritorialize]]ation of [[strata]]fied an stereotyped statements; at another time, it is a particular [[semiotic]] production which will deterritorialize a [[syntax]] that has grown too [[rigid]] (31-32)
[[TMU p30-1]]
-We will thus only be able to account for the stabilization of a "layer of [[competence]]" on the [condition]] of precisely articulating [[domain]]s nevertheless as different as these:
-activites of [[individual]] [[human]] [[semiotization]] (from [[internal]] [[perception]]s up to the modes of [[communication]] related to the mass [[media]]0:
-[[semiotic]] [[operation]]s relative to social [[machine]]s, economic machines, [[technic]]al machines, scientific machines, etc.
-[[machinic]] [[index]]es and [[abstract machine]]s (related to the [[machinic phylum]] and the [[plane of consistency]]
-[[system]]s enabling a [[correspondence]] [[between]] the preceding [[domain]]s ([[deterritorialize]]ing [[line of flight]]s, [[component of passage]]s, etc)
[[TMU p31-1]]
Based on the fact that we can always "structuralize" [[performance]]s that are monetary, linguistic, musical, etc., that we can always [[discourse]] on them and [[binarize]] them, we then come to consider that they have always already been there as a [[potential]], that their [[element]]s carried the [[seed]]s of the beginnings of the [[form]] of [[capital]], the [[signifier]], [[music]] ([[proper name]]s) But the real [[process]]es of [[power]] and [[machinic]] [[mutation]]s, which have fixed and stabilized a form, arranged and delimited a type from creative [[potentiality]]s or metastable equilibria among [[assemblage]]s, are absolutely [[indecomposable]]. [[abstract machine]]s can always be complexified; they can never be decomposed without losing their mutational specificity.
[[TMU p35/36-1]]
Also, we must take them in their entirety. It is impossible to comply with them in little pieces... [[abstract machine]]s, built up from scratch, hook on to a [[process]]; they are co-opted by an [[assemblage]] and [[transform]] its "[[destiny]]," or they stay silent and return to a [[plane]] of [[pure]] [[machinic]] [[virtual]]ity.
[[TMU p36/37-1]]
The [[crystal]]lization of [[signifying]] [[power]]s [[correspond]]s to a particular [[mode]] of [[overcode]]ing the [[libido]]:
-via [[semiological]] [[subjection]] within [[field]]s of [[resonance]],
-via [[semiotic]] [[enslavement]] within [[interact]]ive fields of [[machinic]] [[redundancy]]s.
The [[abstract]] [[machinic]] level of a signifying [[assemblage]] is specified by the fact that it assures the congruence of these two types of [[encoding]] and that it presides over the installation of:
-imperatives of the [[dominant]] [[grammaticality]] of [[expression]] (redundancy of [[asignifying]] [[figure]]s of [[expression]])
-"ideological" assemblages of semiological subjection at the level of [[content]] (redundancies of resonance);
-[[diagrammatic]] assemblages of [[enslavement]] to de[[code]]d [[capital]]istic [[flow]]s at the level of the [[referent]]; flows of abstract [[labor]] as the essence of exchange values; flows of monetary [[sign]]s as the [[substance]] of the exprerssion of Capital; flows of syntagmatized and paradigmatized linguistic signs adapted to standardized inter-[[human]] [[communication]]s
[[TMU p37-1]]
[[semiotic]] [[component]]s of [[enslavement]] constitute the fundamental [[tool]]s that allow the dominant [[class]]es to assure their [[power]] over the agents of production. The "miracle" of [[capitalism]] is that it has succeeded to direct [[language]], such that it is spoken, taught, televised, dreamt, etc., in a way that ensures it remains perfectly adapted to its own [[evolution]].. Thus, this [[operation]] always appears to be self-evident: the syntagms of power, its presuppositions, its threats, its methods of intimidation, [[seduction]], and submission are conveyed at an [[unconscious]] [[level]], a little like those "subliminal" [[image]]s that advertizing companies insert into a [[film]]
[[TMU p37/38-1]]
A new use of [[language]]s, [[sign]]s, and [[icon]]s leads to the fact that the most minimal [[effect]] of [[sense]]-even the most [[intimate]], most [[unconscious]]-passes under the control of social [[hierarchy]]s. Capitalistic [[power]]s do not cease to "rethink" in detail every significant relation, to [[differentiate]] and specify every [[semiological]] "[[affect]]ation.".. Despite appearances, in a capitalistic [[pragmatic field]], the various social categories of the same [[linguistic]] community-men, women, children, the elderly, the uneducated, immigrants, etc...-do not speak the same language...
[[TMU p 39-1]]
[the [[content]] [[expression]] ] opposition will discover its [[law]]s only at the [[level]] of [[substance]]s, namely, the "[[meaning]]" of the content and the "meaning" of the expression. This should quite naturally lead us to consider the existence of [[form]]s insofar as they are [[express]]ed or enacted by particular substances. This point is paramount because, as I will try to show, it is only on the basis of non[[linguistic]] or [[asignifying]] [[assemblage]]s that such substances can be produced. In other words, "before" the constitution of [[signifying]] [[redundancy]]s and without being able to confer on the latter a primary or hierarchically superior status in relation to other [[semiotic]] productions ([[symbolic]], [[diagrammatic]], etc.)... the [[formalism]] of substances is constituted on [[matter]]s that must be, as [[Hjelmslev]] emphasizes "scientifically formed"-at least to a sufficient [[degree]]-to enable substances to be "[[semiotically]] formed."..
the [[process]] [of forming-[[discernibilization]]?] does not return to [[universal]] [[code]]s which are self-enclosed, but that it is indissociable...from the assemblages which support it and... from the basic [[material]]s it brings into play (called [[matter of expression]]s or [[trait of expression]]s)
[[TMU p40-1]]
It is neither at the [[level]] of the [[form]]al [[unit]]s of [[content]] nor at the level of distinctive elementary [[trait]]s that we will be able to seize the resource of [[semiotic]] creativity, but at the [[pragmatic]] level of the [[collective assemblage]] of [[enunciation]] and at the [[level]] of [[molecular]] [[matter of expression]]s and the [[abstract machine]]s that these [[material]]s bring into [[play]]. The [[linguistic]] [[overcoding]] [[operation]] of semiotic [[process]]es "in a free state," which tends to reduce these processes to the [[state]] of [[signifying]] [[component]]s or to a dependence on [[language]], primarily consist in extracting from each of them the [[trait]]s and [[redundancy]]s recoverable by [power]] [[formation]]s and to neutralize, repress, and "structuralize" the others. This permanent [[sort]]ing, this systematic [[politic]]s of "good semiotic choice," supposes the existence of [[assemblage]]s that not only [[effectuate]] it but also [[component]]s that [[manufacture]] the [[sign]]s, [[symbol]]s, [[index]]es and [[icons]] which it is about. The following chapter will be devoted to the production of those components.
[[machinic]] production??
[[TMU p42-1]]
In the "beginning" of [[collective assemblage]]s of [[enunciation]], we find neither verb, nor subject, system nor syntax; instead, there are [[component]]s of [[semiotization]], [[subjectification]], [[conscientialization]], [[diagrammitism]], and [[abstract]] [[machinism]]s... Every [[mode]] of [[signification]] and semiotization must be related to its assemblages of enunciation. These assemblages depend on a degree of [[autonomy]] from the [[plane]] of [[content]] upon which they are inscribed and the readjustment of their [[angle of signifiance]] in relation to the local conditions of the [[semiological]] [[triangle]], i.e. un the last analysis, their [[semiotic]] capacity of "holding" a given subset of the [[world]], setting in motion both [[representation]] and the [[morpheme]]s of the [[referent]], all the while preserving their own [[function]]al [[cohesion]] within the framework of dominant syntaxes... the status of the subject... is [[assembled]] by a set of heterogenous components, the latter of which even [[semiotize]]s what I have called "dominant [[reality]]s"
[[abstract machine]]
[[TMU p43-1]]
Thus, [[content]] does not [[crystallize]] a [[universal]] [[world]] but a [[worldliness]] marked by contingent [[field]]s of [[force]] centralized around very precise [[system[[s of [[subjective]] [[resonance]]. Phallic redundancies, for example, do not concern a universal symbolic [[function]] but male dominance, authoritative [[institution]]s, and extremely particularized [[trait]]s of repressive [[faciality]].
[[TMU p45/46-1]]
An [[assemblage]] [[draw]]s its greater or lesser [[degree]] of [[freedom]] from the [[formula]] of its [[machinic]] [[nucleus]] but this formula is basically [[metastable]].
[[TMU p46-1]]
The [[abstract machine]]s that [[compose]] it do not have any "[[real]]" [[existential]] [[consistency]]; they do not have any "mass," their own "energy," or [[memory]]. They are only infinitesimal [[indication]]s [[hyper]]-[[deterritorialize]]d from [[crystal]]lizations of a [[possible]] [[between]] [[state of affair]]s and [[state]]s of [[sign]]s. We could compare them to the [[particle]]s of contemporary physics that are "[[virtual]]ized" by a theory that only preserves their [[identity]] for a negligible time; this identity is nevertheless unnecessary to concretely demonstrate since the theoretic-experimental complex can function in a satisfactory way by simply presupposing their existence,
It is this [[metaphor]] which has led me to coin, in regards to the [[diagrammatic]] [[effect]], the [[expression]] [[particles-signs]]: abstract machines "[[charge]]" themselves with [[redundancy]]s of [[resonance]] ([[signification]]) or redundancies of [[interaction]] ("real" existence) depending on whether they are fixed and rendered powerless in a [[semiological]] [[substance]] or whether they inscribe themselves upon a [[machinic phylum]].
[[TMU p46-2]]
the [[modality]]s of existence of [[abstract machine]]s are radically different from those of concrete [[assemblage]]s. Existence as a fundamental [[machinic]] [[coordinate]] concerns three general types of consistency:
[[molar]] [[consistency]]
Here redundant [[element]]s are strongly [[crystal]]lized and [[strata]]fied, allowing [[flow]]s of [[redundancy]]s to develop:
1. effects of [[weak]] resonance ([[signifying]] effect, e.g.: pure formal [[translation]]);
2. effects of weak [[interaction]] [[surplus value]] of stratified [[code]]s)
What characterizes the [[molar]] [[[politic]]s [[strata]]fication is the constitution of a [[world]] of stratified, identified, or hierarchized [[object]]s and [[subject]]s, [[singularity]]s and [[abstract machine]]s there being held by [[system]]s of coordinates that authorize only the minimum degree of freedom necessary for the survival of the [[assemblage]]s. The exercise of what will later be defined as [[generative]] [[schizoanalysis]] will remain circumscribed in this low [[level]] of molar consistencies. It will consist in operating [[displacement]]s of consistency within assemblages, reducing the effects of resonance on behalf of weak [[diagrammatic]] interaction.
[[TMU p47-1]]
[[molecular]] [[consistency]]:
[[element]]s of [[redundancy]] are conveyed by [[substrate]]s less [[strata]]fied than the preceding, allowing [[flow]]s of redundancy to develop:
1) [[effect]]s of [[strong]] [[resonance]] (the [[semantic]] [[field]] as a whole, the [[imaginary]] field, effects that are [[poetic]], [[mystical]], etc.);
2) effects of strong [[interaction]] ([[component of passage]]s such as [[faciality]], [[refrain]]s).
It is impossible at the [[level]] of molecular interactions to tell the difference between what [[form]]s a [[part]] of a [[component]], an [[assemblage]], or a [[field]]. All [[machinic]] interactions count, all redundancies overlap, and all [[particles-signs]] [[trajectory]]s cross. Here we are dealing with the [[actual]]ized aspect of [[abstract]] [[machinism]]s. The assemblage, insofar as it represents the [[dimension]] of "foreign relation" and the [[manifestation]] of abstract machinisms, coincides with its field effects. We are in the order of "degrees of reality" and "degrees of abstraction" without any noticeable [[demarcation]].
This type of [[inter-assemblage]], [[inter]]-component, and inter-field consistency is a fundamental [[micropolitical]] stake for [[schizoanalysis]], so that the degree of [[flexibility]] of the assemblages to give in to the various [[power]]s of [[subjection]] and [[enslavement]]-in other words, regarding everything that pertains to [[social]] power [[struggle]]s and the molecular [[metabolism]]s of the machinic [[unconscious]].
[[TMU p47/48-1]]
3) [[abstract]] (or [[absolute]] or [[intrinsic]]) [[consistency]]
Here [[machinic]] [[element]]s escape [[system]]s of [[redundancy]]. (They are outside [[coordinate]]s, being themselves in the foundation of systems of coordinates.) We will distinguish:
-the consistency of [[capitalist]]ic [[abstraction]]s ([[proper name]]s of [[capital]], [[power]], [[music]], etc) as a cornerstone of [[signifying]] [[resonance]]s and [[semantic]] [[field]]s, a sort of lethal [[level]] of [[abstract]] [[machinism]]s, but which does not [[model]] the [[universe]] of [[representation]];
-the consistency of [[particles-signs]] that specifically defines the irreducible [[nuclei]] of the abstract machinic possible.
Whichever [[possible]] is manifested by the consistency of [[molecular]] [[field]]s, this type of [[nucleus]] holds in [[reserve]] a "[[potential]] possible." This nucleus never dissolves into the [[universe]] of fields and [[component]]s. This non-manifested possible is contained by the [[singular]] [[trait]]s of [[matter of expression]]s and "stored" in the abstract machines' general [[plane of consistency]]. ([[example: given a politics of i[[signifying]] [[overcoding]], it is not inconsequential that it is implemented by a particular matter of expression. Thus the fact that certain [[writing]]-[[machine]]s or certain [[computer]] machines are used as [[instrument]]s of social [[control]] can radically change the [[modality]]s of the latter).
What will later be defined as [[transformational]] [[schizoanalysis]] is primarily located in these two extreme levels of [[strong]] molecular and abstract consistency. It will consist in performing [[displacement]]s of consistency within the [[assemblage]] on behalf of the [[dissemination]] of [[component of passage]]s and the launching of new machines of [[diagrammatic]] [[particles-signs]] to the detriment of [[semiotic]] [[field]]s and capitalistic abstractions.
[[TMU p48/49-1]]
In sum:
The [[machinic]] [[nucleus]] that specifies an [[assemblage]] is located at the crossing of two types of [[diagrammatic]] [[consistency]]:
-the [[fuzzy]] [[set]] of [[molecular]] consistencies ([[component]]-assemblage-[[field]])
-the undecidable [[abstract]] [[machinic]] set of intrinsic abstract consistency.
[[diagram]]s follow
Pairing the [[existential]] [[coordinate]]s of [[consistency]] (molar-molecular-abstract) and the coordinates of [[efficiency ([[redundancy]] of [[resonance]] vs [[interaction]]) thus leads to six general types of [[field]]s of [[consistency]].
[[TMU p49/50-1]]
[[asignifying]] [[component]]s develop to some extent on the manure of [[signifying]] [[component]]s; they proliferate like microscopic parasites on [[mode]]s of [[subjectification]] and [[conscientialization]].
[[TMU p50-1]]
...I assert that only [[sense]] without [[signification]] produced by a [[diagrammatic]] [[economy]] ([[regime]]?) of [[sign]]s is able to thwart the dead ends specific to [[semiology]]s of signification, insofar as it introduces into [[semiotic]] [[assemblage]]s an additional [[coefficient]] of [[deterritorialize]]ation allowing sign [[machine]]s to [[simulate]] "[[duplicate]]", and "[[experience]]" the relational and structural nodes of [[material]] and social [[flow]]s precisely at the [[point]]s that would remain invisible to an anthropocentric vision
[[TMU p51-1]]
[[asignifying]] [[sign machine]]s as [[Hjelmslev]]'s figures of glossemes of expression [[symbol]]s have no [[semantic]] [[content]]; but [[icon]]s and [[index]]es do.
[[TMU p59-1]]
The maintenance of their homeostasis implies the multiplication and indefinite growth of a whole [[network]] of [[semiotic]] [[operator]]s ([[institution]]s, infrastructures, media) charged with setting into [[resonance]], normalizing, [[abstract]]ifying, and syntaxing all [[system]]s of [[redundancy]]. Their role is to [[control]] the entry of [[abstract]] [[machinism]]s and [[diagrammatic]] [[particles-signs]], which will be tolerated only in so far as it appears compatible with the dominant systems of abstraction and formal syntax. [[example]]: the introduction of harmonic and polyphonic [[component]]s of [[writing]] into the history of [[music]]... The fixation of a universal [[syntax]] inseparable from the formations of "classical" music is charged with controlling musical [[enunciation]] (lessons, academies, patronage, concerts, etc)...
[[TMU p65-1]]
see footnote 27
p70 uses the term [[quanta]] in a way that's reminiscent of [[ATP p141/142-1]] and in fact that whole 140-end of that plateau reminds of this little section on the [[diagrammatic]]s and the [[abstract machine]]
[[TMU p67-1]]
Copy out last paragraph
[[TMU p69-1]]
In certain pages, some things are said as needing to be defined, or mapped out, or traced, or...
replaced by [[treatment]]
“The inquiries that follow venture this transition to a radically [[anti-humanist]]ic, radically anti-regional, and radically [[constructivist]]ic [[concept]] of [[society]].”
[[ToS p9-1]]
Using a [[constructivist]] method, methods cannot be limited to ensuring [[reality]] is correctly described; it is more likely to be concerned with refined [[form]]s of [[intrasystemic]] [[information]] [[generation]] and [[processing]]
[[ToS p12-1]]
An issue with [[sociology]] is the choice of what is a [[variable]] and what is set as a [[constant]], without realizing “ that the relationship between [[inclusion]] and [[exclusion]] is regulated by the [[social]] [[system]] itself”
[[ToS p13-1]]
The main question for a [[theory of society]] is why all [[possible]] [[interaction]]s do not take place. How does [[society]] manage to sort out what is possible? “It is at least conceivable that [[social]] [[structure]]s arise... as [[inclusion]] of this [[exclusion]] in the [[form]].”
Inclusion of the [exclusion of what is possible but doesn't happen].
The question of what has been excluded, is the [[question]] of what has been included as excluded
[[ToS p14-1]]
The coincidence of [[empirical]] [[knowledge]] and [[reality]] is to be treated as an [[epistemology]]cal [[accident]]
[[ToS p15-1]]
What is needed is a [[concept]]ualization of higher [[complex]]ity that allows heterogeneous [[fact]]s to be [[interpret]]ed by the same concepts, ensuring the comparability of widely differing facts. This is not classificatory; there is not to be some other class under which a disparate fact is to be found
In [[society]] as [[system]],
“The overall system can no longer assert itself through [[operation]]al [[control]], but only through the [[structure]]al effects of its [[differentiation]] [[form]] on [[subsystem]]s.” [[basal]] structures are to be found in differing [[function]]al areas, family and politics, religion and economics... this is not accidental but can and must be attributed to the form of the societal system
[[return]]
[[ToS p16-1]]
Systems [[presuppose]] meaning, however there can be no meaning outside the [[system]]s that use and [[reproduce]] meaning as a [[medium]].
"For no societal [[operation]] can begin without using meaning. If w take the general theoretical [[pattern]] of [[autopoiesis]] as the basis, presupposing meaning in no way contradicts [[generating]] meaning in the [[network]] of [[operation]]s that always [[presuppose]]. On the contrary, the specifici8ty of the [[medium]] meaning is always a necessary correlate to the [[operational closure]] of [[cognitive]] systems, Meaning only exists as meaning of the operations using it, and hence only at the moment in which it is determined by operations, neither beforehand nor afterward. Meaning is accordingly a [[product]] of the operations that use meaning, and not, for instance, a quality f the [[world]]...
The [[memory]] [[construct]]s [[structure]]s only for momentary use to maintain selectivity and limit connectivity. Meaning-constituting systems delude themselves if they think there have always been and will continue to be enduring [[identity]]s, and that we can therefore refer to them as extant. All [[orientation]] is [[construct]]ion, is [[difference]] re[[actual]]ized from moment to moment.
[[return]]
[[ToS p17-1]]
Systems distinguish between [[self-reference]] and [[other-reference]]
“[[boundary]]s are not material artifacts but [[form]]s with two sides.”
Boundary of [[system]] facing [[environment]], [[environment]] facing system? System vs other referring boundaries?
“This is a [[reentry]] of a [[distinction]] into what it has itself distinguished. The system/environment distinction occurs twice over: as [[difference]] produced through the system and as difference observed in the system.”
Our [[machinic]] functioning creates a boundary, then we enunciate it from the [[collective assemblage]] of enunciation? Or perhaps that boundary, that territorializing [[refrain]]/[[mark]] is seen as such
[[second-order]] [[cybernetic]]s as [[paradox]]...
[[ToS p18-1]]
The [[system]] becomes [[indeterminate]] due to the system itself, it needs a [[memory]] [[function]]. It needs [[past]] [[selection]]s available to the [[present]], as well as an ability to [[forget]], not just [[remember]]. It puts itself into a [[state]] of [[oscillation]] between positive and negative [[operations]], and [[between]] [[self]] and [[other]] reference.
“It confronts itself with a future it cannot itself determine, for which, so to speak, adjustment reserves are laid aside for unforeseeable situations.”
The results of these consequences of [[reentry]] apparent to the [[system]] itself are referred to as [[meaning]].
Which [[distinction]]s are brought up from the dredged of memory into the present [[situation]] ([[operation]](s))? What ([[schemata]]?) selects them?
There is no pre existing [[world]] of things, for here “the world is an immeasurable [[potential]] for [[surprise]]s; it is [[virtual]] [[information]], needing, however, systems to [[produce]] information, or, in more precise terms, to give selected [[irritation]]s the [[sense]] of information”
[[identity]] comes from information [[processing]], or when relating to the future, a [[problem]].
“Identities do not exist, they merely have the function of [[order]]ing [[recursion]] so that in processing [[meaning]], we can [[draw]] on and anticipate something that can be used recurrently.”
[[ToS p19-1]]
The description of the [[system]] is part of the system, and there can be a [[plurality]] of such [[description]]s
[[ATP p313/314-1]]
We should have “cause to doubt whether consensual [[integration]] [social contract, any idea that society emerges from [[individuals]]] is of any [[constitutive]] importance for a [[society]] at all. After all, it would suffice to assume that, as [[communication]] proceeds, it [[generate]]s [[identity]]s, [[reference]]s, [[eigenvalue]]s, [[object]]s, - whatever the [[human]] being experiences when confronted by it.”
Humans cannot be split into pieces and must be regarded as either a part of [[system]] or [[environment]] for us, as we accept the system/environment [[distinction]]; “the only option is to regard human beings in their entirety, [[body]] and soul, as part of the environment of the societal system.”
Determining the [[boundary]]s of a system qua systems theory of society must set out to demonstrate how that boundary does not have to exist in [[space]] in [[time]], as a [[territorial]] [[boundary]] must, footnote 24 from page 9
[[ToS p5-1]]
'...[[toxic]]-a [[phase]] [[difference]] that cannot be [[transindividuate]]d, that is, [[adopt]]ed, in the [[sense]] that it must be [[individuate]]d both [[psychic]]ally and [[social]]ly/[[collective]]ly
[[pharmakon]]
[[NL 46-1]]''
...each mental [[state]] is represented by an [[ensemble]] [[activity]] [[distribute]]d over many [[neuron]]s. Such a "[[population]] [[code]]" enables a much greater repertoire of states, as well as robustness to [[noise]].
[[Trees of the Brain, Roots of the Mind]]
[[map]]
map vs tracing, atp p 13
- 1 -
This banal term belongs to the investigation's [[metalanguage]] and therefore takes on a technical sense in order to specify the type of [[connection]] or [[network]] that leaves in its wake the [[being]]s specific to a given [[mode]]. Along with the terms "[[hiatus]]", "[[felicity conditions]]" and "[[alteration]]", it enables us to answer questions about the essence of a mode. Its pedigree is impeccable: 'trans jacere', to throw beyond, pass through, journey - all connotations that bring us back to movement and dispatching.
- 2 -
We would arrive at a decent approximation of the trajectory if we could extend the [[intentionality]] of phenomenologists to all existents and [[transform]] this relationship into a [[path]] of existence that would allow for a reprise of the [[being-as-other.]]
Deleuze's definition of [[transcendental empiricism]] is very simple: transcendental empiricism is that philosophical position which [[determine]]s the [[condition]]s of
real rather than [[possible experience]].
[[real experience]] [[DG3]]
What we seek is not the empirical difference characterizing the thing
extrinsically in terms of something else, but the internal difference
presiding over the genesis of a [[world]]. Hence the paradoxical term
[[transcendental empiricism]]. On the one hand, we cannot anticipate what
these [[difference]]s will be in advance and must thus resort to a sort of
[[empiricism]]. On the other hand, these differences are not what is given
in experience, but rather, as Deleuze says elsewhere, that by which the
given is [[given]].
[[DG51]]
This-the fact of [[difference]] between [[effect]] and [[cause]] when both are incorporated into an appropriately flexible system-is the primary premise of what we may call [[transform]]ation or [[code]]ing.
[[MN102/106 criterion 5]]
Shared by [[psychic individual]]s within [[collective individual]]s of all kinds, the [[mean]]ings formed in the course of [[transindividuation]] [[process]]es constitute the transindividual as an [[ensemble]] of [[collective]] [[secondary retention]]s within which [[collective protention]]s form-which are the [[expectation]]s typical of an [[epoch]].
The transindividual is not a [[dream]] to come; it is on the contrary what results from the [[process]] by which [[protention]]s ([[desire]]s and also [[dream]]s) are [[real]]ized and sometimes de-realized...
[[AS1 p31/32-1]]
The [[mean]]ings [[form]]ed during [[transindividuation]] [[process]]es, and [[share]]d by [[psychic individual]]s within [[collective individual]]s of all kinds, constitute the [[transindividual]] as the [[set]] of [[collective]] [[secondary retention]]s through which the [[collective protention]]s are formed-that is, the [[expectation]]s that typify that [[epoch]]
[[NL p24-1]]
The [[mean]]ings [[form]]ed during [[transindividuation]] [[process]]es, and [[share]]d by [[psychic individual]]s within [[collective individual]]s of all kinds, constitute the [[transindividual]] as the [[set]] of [[collective]] [[secondary retention]]s through which the [[collective protention]]s are formed-that is, the [[expectation]]s that typify that [[epoch]]
[[NL p24-1]]
[[destructive semiotic]]s [[history]]
In the becoming-stable of these [[transitional form]]s, they stabilize the becoming of the [[digitus]], the transition to these forms of transitional forms comes by the way of destruction, destructuration; to hold the transition, to serve a new way of putting into play what was once too much to hold in hand requires a new establishment to be established; this new form of forming forms is a manner of design, a parasitical functioning outstripping any chance of noetic [[bifurcation]] capable of stabilizing a human sociality around these new forms. This widespread process of establishing these forms brings with it an action of proliferation, they are stabilized only by way of that which enables them engage in proliferation. This is not more of the old, but a new New that we wish we knew back when it became new. Knowledge requires bifurcation, information is effacement; the transitional forms, as we’ve been saying, are naught else by automatized effacement of (among other things) the most intimate of temporalities. The language of imperialism is the inherent imperialist intentions of all language, and don’t mistake the strictness of [[grammar]] as something that is only linguistic. For perhaps what should be meant when stating that [[time]] is out of joint, is that the [[grammitization]] of time is out of joint-control. There is more to language than grammar, and grammar always grasps more than language.
-----------------------------------------
To do: reread [[Monod]] section
---------------------------------------------------
ideas
[[astrocyte]] model for adaptation?
1 -
The term has been widely used in actor-network theory - see (Akrich, 2006) - to describe the interlocking of the heterogeneous associations needed to track networks of scientific or technical practice. It comes from Michel Serres and his series of works on the figure of Hermes, subtitled "translation"; see in particular (Serres, 1974).
- 2 -
The term is fundamental because it breaks the apparent logic which considers transportation without deformation as the touchstone of any description. However, as shown by science studies, even that transfer, that of the sciences, is a translation that is described too hastily, (political) epistemology having seized upon this faulty description in order to propose to philosophy an imitation of the transfers of necessity (albeit without having to invent a scripto-visual framework of its own). In AIME, there are as many logics, and there is as much rationality, as there are possibilities for following the thread of modes; all transfers, including [REF] transfers, are made as a result of transformations or translations.
- 3 -
The term is contrasted with displacementin order to show that there is a transformation in translation, that it isn't merely a change of place - a notion that Double Click, precisely, is unable to understand.
- 4 -
A term in actor-network theory synonymous with substitution, delegation, passing. Like all others, it refuses the choice between being and non-being and rejects the principle of non-contradiction by which a thing cannot be, in the same respect, both itself and another (or itself and its opposite). On the contrary, if it were not possible to be at the same time and in the same respect one thing and another, nothing would be. This is precisely what allows us to get away from substance and the being-as-being and to give pride of place to mediators, the “excluded middle” pushed aside by philosophy and which returns, in the present investigation, in the form of the general case - the general case out of which we extract the particular case (the “included middle”!) through stabilization, standardization and habit.
- 5 -
AIME generalizes the principle of translation that enjoyed great dignity in network theory, and gives it the means of specifying the many ways in which a being can be itself through the intervention of a being other than itself. In the theory of language, the translation/betrayal of language is simply a particular case of transition, passage, of the very texture of movement; there is no loss of clarity or “birth defect” acquired in the transition, this is simply the nature of language as mediation. In this investigation, all we are doing is continuing the study of the translation of [RES], albeit with the difference that each vehicle is now specified. It is still a case of monitoring translations albeit with the addition of a particular form of treason/translation which brings about completely different trajectories.
- 6 -
Translation is, like the notion of “occasion”, that which allows us to avoid the straight line of causality, which is always a non sequitur since, more often than not, we utilize a relationship between potential and real - the great problem noted in (Latour, 2001). Strangely, the translation that never goes straight ahead, that is never logical, which allows itself to be grasped by surprise action etc, is a sequitur, the only one we have; that which follows the thread of reasons, i.e. modes of being.
ideas for how [[concept]]s can be brought into a treatment plan in [[psychology]]
!Autocomplete problems
*If you downloaded Stroll between 5-21-2020 and 6-3-2020, your autocomplete probably isn't working. I fixed the problem, and you can drag [[this link|$:/config/EditorTypeMappings/text/vnd.tiddlywiki]] into your file to fix it. I accidentally forgot to tag this tiddler as ~$:/giffmex/stroll and ~$:/giffmex/blinks when I retagged the Stroll tiddlers on 5-21. Sorry! But it is fixed now.
*For autocomplete with Markdown, see the section on Markdown below.
!iOS
''I use iOS and want to disable the link autocomplete!''
<span class="indent1">
Unfortunately the autocomplete plugin (called the edit-comptext plugin) does not work in iOS and other contexts where one can't use the down arrow key.
To disable it, delete the following tiddler: [[$:/config/EditorTypeMappings/text/vnd.tiddlywiki]] . This will return it to its default setting.
</span>
!Markdown
''I have the markdown plugin, but autocompletion for linking doesn't work in my Markdown tiddlers!''
<span class="indent1">
The autocompletion of links with double brackets `[[link]]` is controlled by the comptext plugin. Users of Markdown have noticed that they can't use the autocomplete in their Markdown tiddlers. To make autocompletion compatible with formatting in Markdown tiddlers, create a tiddler with the title `$:/config/EditorTypeMappings/text/x-markdown` and put this in the text field: `comptext`
Then, to enable the `[[]]` format for a link, open the following shadow tiddler: $:/config/markdown/renderWikiTextPragma and replace the text with: `\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock prettylink`
</span>
!~TiddlyMap
We ''do not'' recommend using ~TiddlyMap. We have found too many incompatibilities. I will not help anyone else who comes to me with problems related to it. That said, here are solutions to two issues:
''I get an error when doubleclicking a node while in fullscreen mode in ~TiddlyMap!''
You will need to stop using fullscreen mode, which, for now, is incompatible for some reason with Stroll. But there is an easy workaround:
# Install the link-to-tabs plugin from https://wikilabs.github.io/editions/link-to-tabs/ and save and refresh.
# Click the link icon over the Map tab (visible on clicking that tab). This will open ~TiddlyMap as a tiddler, and doubleclicking a node will open the tidder //in the story river//.
''I installed ~TiddlyMap and now the columns are all messed up in two column mode!''
<span class="indent1">
Here is a hack to help you switch back and forth between wide and narrow sidebars: In the tiddler ''~$:/plugins/felixhayashi/tiddlymap/hook/editor'' of your file, on a new line right after the first line (`\define width() calc(100% - 15px)`), insert the following:
```
\define lingo-base() $:/language/ThemeTweaks/
<$select tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout"><option value="fixed-fluid"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value="fluid-fixed"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select>
```
Now your 'Map' tab will have a dropdown at the top to change the columns/sidebar relationship between 'fluid-fixed' and 'fixed-fluid'.
</span>
What is [[describe]]d [ [[society]] ] [[perform]]s the [[description]]. [[TSxiii]]
There must be [[probability]]s to guide [[expectation]]s if the [[autopoeisis]] of [[communication]] is to be [[possible]]... question: how communication itself can overcome the improbability of its own occurrence.
[[information]] is a [[difference]] that changes the [[state]] of a [[system]], thus [[generate]]ing another difference.
[[TS97]]
When we speak of "[[communication media]]," we always mean the [[operation]]al use of the [[difference]] between [[medial]] [[substratum]] and [[form]]. Communication is [[possible]] only-and this is the answer to the improbability [[problem]]-as the [[processing]] of this difference.
...[[communication]] presupposes no ultimate [[identity]]s (atoms, particles) that it does not itself constitute through its own [[distinction]]s.
[[TS113]]
...there is a [[medium]] specific to the system here too, and related [[form]]s that make their [[mark]] in the medium. Loosely [[couple]]d [[word]]s are joined to become [[sentence]]s, thus gaining a form that is temporary in [[communication]], a form that does not [[consume]] but [[reproduce]]s the word [[material]]. The [[distinction]] between medium and form [[translate]]s the improbability of the system's [[operation]]al continuity into a [[difference]] that can be handled within the system, [[transform]]ing it into a framework condition for the [[autopoeisis]] of the system. The system operates in tying its own medium to its own forms without consuming the medium (just as our seeing things does not consume light). The [[actual]]ized forms, the things seen, the sentences spoken, couple the [[element]]s of the system for momentary use but do not destroy them. The difference between medium and form is maintained in operational use and thus reproduced. What counts is the difference itself and not only the form condensed in the operation. For the possibility of seeing colors or pronouncing words presupposes that these [[entity]]s are not consumed in the operation but are reproduced in their availability for use int he context of other forms.
At this point we need to recall that by "form," we understand the marking of a distinction. The distinction between medium and form is [118] hence also a form. The distinction implies itself, it makes every theory that works with it [[autology]]cal. To explain what we understand by medium and form, we have to use language; we accordingly use the distinction between medium and form.
[[TS116]]
A [[medium]] consists of [[loose]]ly [[couple]]d [[element]]s, whereas a [[form]] joins the same elements in a [[strict]] [[coupling]]...
With regard to this repeated [[bind]]ing and releasing of the [[medium]], we can also say that the medium "[[circulate]]s" in the system. It has its [[unity]] in [[movement]].
[[TS117]]
[[circulation]] arises where the [[form]] is stronger than the [[medial]] [[substratum]]. It imposes itself in the [[field]] of [[loose]]ly [[couple]]d [[element]]s-and regardless of [[select]]ion criteria, rationality considerations, normative directives, or other value preferences-in fact it does so simply as [[strict]] [[coupling]].
[[communication media]] entail no bias in the direction of rationality...
...[[frequent]] use also "[[condense]]s" the [[meaning]] of [[word]]s...
[[frequency]]
[[TS118]]
...[[society]] [is] an object that has always itself produced what research needs in the way of object [[determination]] (essential characteristics).
[[TS9]]
it is not the [[medial]] [[substratum]] but only [[form]]s that are [[operation]]ally [[connect]]ive in the system. The system cannot handle formless, [[loose]]ly [[couple]]d [[element]]s... We do not see light but things, and when we see light, it is by the form of things... The same ois true of [[communication media]]. In the case of [[language]], it is not [[word]]s but [[sentence]]s that make [[sense]] that can be [[process]]ed in [[communication]]. In the [[distinction]] between loose and strict [[coupling]], there is not only the [[temporal]] but [[substantive]] [[asymmetry]]; and this asymmetry is one of the [[condition]]s for the [[autopoeisis]] of the communication system society.
[[TS119]]
I speak of [[dissemination media]] with reference to the scope of social [[redundancy]]. [they] [[determine]] and extend the circle of those receiving [[information]]. To the extent that the same information is disseminated, information is transformed into redundancy. [[symbolically generalized communication media]] are introduced at the bottom of the page.
[[TS120]]
As long as [[language]] is only used [[oral]]ly... there is enough social pressure to say pleasant rather than unpleasant things and to inhibit the communication of rejection... [[symbolically generalized communication media]] [[develop]] only when societal [[evolution]] has overcome this [[threshold]] [of orality] to allow [[complexity]] to develop in greater [[spatial]] and [[temporal]] [[dimension]]s, even though in the same society. Communication then must be geared to increasingly unknown [[situation]]s. Society helps itself if evolution helps it, first, with system [[differentiation]], and, second, with the formation of special media for [[restrict]]ing [[contingency]] by linking [[conditioning]] and [[motivation]], namely, SGCM. The differentiation of these media also drives system differentiation, providing occasion for the [[outdifferentation]] of important societal functional systems.
[[TS121]]
Whereas before the [[develop]]ment of [[language]], living beings lived in [[structural]] [[coupling]], and where therefore subject to co-[[evolution]], language enables [[operational]] coupling, which can be reflexively monitored by participants.... This... enables participants [[self-organization]] to dissociate from what is [[communicate]]d.
[[TS122]]
[[language]].. [[form]]... consists in the [[difference]] between [[sound]] and [[meaning]]...
[[TS126]]
From a [[constructivist]] [[point of view]], the [[function]] of a [[methodology]] cannot be limited to ensuring that [[reality]] is correctly... described. It is more likely to be concerned with refined [[form]]s of [[intrasystem]]ic [[information]] [[generation]] and [[processing]]. Methods can thus enable scientific [[research]] to surprise itself. This requires interruption of the direct [[continuum]] of reality and [[knowledge]] initially assumed by [[society]].
[[TS12]]
A social [[memory]] must therefore be [[develop]]ed beyond... mental memory. It consists solely in the delayed reuse of [[word]]s and the [[express]]ed [[meaning]] formed with their aid. Psychic systems are used, as it were, only for intermediate [[storage]]. What is decisive for social memory is the retrieval of memories in later social [[situation]]s; and over extended periods of time, the [[psychic]] [[substratum]] can change... we must first of all understand the preceding [[mechanism]] that all [[recall]] has to perform through the [[temporal]] [[form]] of [[delay]]...
The solution to this [[problem]] might lie in the [[concept]] of [[eigen]]behavior... It refers to a stability arising in the [[recursive]] [[procedure]] of applying the procedure to the results of the procedure. [[smoothing]]? [[identity]] [[collective individual]] [[collective retention]] [[collective]] [[secondary retention]]
[[TS128]]
[130] [[language]] comes about through the reuse of sounds and [[group]]s of sounds. To be more precise, in the course of [[reuse]] it first [[generate]]s the [131] [[identity]]s of [[word]]s, [[condense]]s language-specific identities; in the same move, it also confirms these [[condensate]]s in ever-new [[situation]]s, [[general]]izing them. This [[process]] of language [[form]]ation therefore [[differentiate]]s an [[eigen]]behavior of the [[communication]] system and in second place [[produce]]s a language-dependent [[order]] of perceptual tasks for the individual consciousness.
The eigenbehavior of the communication system society stabilizes the [[imaginary]] [[space]] of [[meaning]]s, which the [[recursive]] application of [[communication]] to communication does not destroy but establish-thanks precisely to its eigenvalue, hence through the [[experience]] that it is one's awareness of others' awareness of the nature of language that [[produce]]s the results that enable recursive communication to continue, that make the [[autopoeisis]] of society [[possible]].
[[TS130]]
With the aid of what is already [[form]], that is to say, with [[word]]s, a new [[medial]] [[substratum]] can be [[generate]]d-a very large, only [loose]]ly [[couple]]d [[set]] [132] of such words, which are then linked into [[strict]]ly coupled forms, that is to say, [[sentence]]s, with the medial substratum in the [[given]] [[coupling]] not being consumed by [[renewed]] by the use. Every sentence therefore consists of [[component]]s that can be [[reuse]]d at will, ongoing sentence building regenerating the lexical inventory of a [[language]], [[condense]]ing and [[confirm]]ing and thus enriching the [[meaning]] of words, but also relegating never reused words to oblivion.
Only [[sentence]]s are [[connect]]ive in the [[recursive]] [[network]] of linguistic [[communication]]; they can be anticipated with a vague idea of word [[structure]] and recalled as fixed [[meaning]]. They can be quoted, their gist can be passed on, they can be confirmed or withdrawn; and in this [[sense]] they [[transport]] the [[autopoeisis]] of the system through the coupling/decoupling of the lexical inventory. They form the [[emergent]] [[level]] of the communicative constitution of meaning, and this [[emergence]] is nothing other than the autopoiesis of the linguistic communication that it [[create]]s in its own medial substratum.
It is for this [[function]] that the peculiar [[structure]]s of language are created... It is easy to see that condensed complexity serves to generate [[improbable]] [[probability]]s. For it makes every specific sentence extremely improbable, but also quite normal that this is so in every communication. However,t his [[paradox]] [[unfold]]s only in communication; it does so through the autopoiesis of the communication system, hence through the restrictions imposed on what can be meaningfully said by [[recursion]] to previous communication and the prospect of later communication.
If we assume that [the above generated] language structures [actively structure] the autopoiesis of communication, a radical and much simpler structure comes into focus. I shall call it the ([[binary]]) [[code]] of language. Language offers a [[positive]] and [[negative]] version of everything that is said.
This [[duplicate]]ion serves as a structure concerned exclusively with linguistic communication and which can be [[learn]]ed [[mental]]ly only by participating in communication. Moreover, coding presupposes that language has already constituted [[identity]]s, hence that it can [[distinguish]] and [[indicate]], so that what is [[affirm]]ed and [[negate]]d can be established. [[coding]] [133] changes and expands the need for identities; it must be able to presuppose negation-proof identities. It is no longer only a [[matter]] of enable [[recognize]]ability (including the recognizability of words) for [[perception]] and [[memory]]. Identities must now be required to remain the same when communication shifts from [[affirmation]] to negation or from negation to affirmation. This allows for the repertoire of [[possible]] communication to extend beyond the [[perceive]]able that can be pointed to; and only thus can communication generate [[controversy]] (and hence sociocultural [[evolution]].
[[order-word]]s as eigenbehaviors?
[[TS131]]
Through negation we can [[indicate]] something in such a way that it remains uncertain what is actually going on. "No one in the desert" does not tell us what else there is in the desert... The [[communication]] is nonetheless immediately comprehensible and ready to be dealt with further-for example, as a warning. Even the simplest of [[society]]s are apparently quite essentially concerned with normalizing the unusual and [[stable]]izing thir own [[pathology]]s through [[repetition]]. For this purpose, negative [[reference]] builds bridges to normality.
[[sign]]s as [[mark]]s of [[threshold]]s of [[deterritorial]]ization; "ready to be dealt with further." Dealt with differently by interpretrance assemblages, ie infinite interpretation by something else, dance by song by writing by speech, vs being dealt with in a signifying assemblage attempting to pin down the detached machine of expression to the transcendent plane of content, make it signify at all costs. All assemblages, in the recursive functioning of communication, deal with things 'further' in their own way-have their own security systems-their own conditions for repetition-their own eigenbehaviors. condensed and confirmed.
interpretance-order words as beign interpreted by more precepts? Zen or christian monk style bullshit-endless slogans of the marxists and catholics, so concerned about being right.
[[TS132]]
Fore a [[coded]] [[communication]] there is no [[end]] but only the option reproduced in all [[understand]]ing to continue via acceptance or rejection....[138] In complex societies what therefore [[evolve]]s are not obligations for consensus but [[symbolically generalized communication media]]
[[TS133]]
As [[systems theory]] knows, [[conditioning]]s are among the most general relationships in the [[sense]] that determining certain characteristics limits the scope for determining others. In other terms, considering how we obtain [[information]] about a [[system]] we speak of [[redundancy]]s limiting the variety of the system where a certain characteristic occurs, others are either more ore less probable.
...we can also say that the [[linguistic]] [[code]] is the [[form]] through which a system exposes itself to [[self-conditioning]]. The [[coding]] of language therefore means that the self-conditioning of society [[develop]]s [[structure]]s that enable expectations to be formed about the acceptability and rejectability of [[communication]]s. Only such structures allow the [[improbable]]ity of communication to be [[transform]]ed into [[probable]]ity [and for the system to be opened up to influences from the environment] There is still nothing in the [[environment]] of the system corresponding to the [[operation]] of linguistic communication or the [[binary code]] of the system; but the self-conditioning by forming structuring expectations allows the system to take account of success and failure and thus react to [[irritation]] from the environment
[[TS137]]
the [[relationship]] between [[inclusion]] and [[exclusion]] is [[regulate]]d by [[social system]]s themselves... the use of [[meaning]] in social systems always provides [[reference]] to the [[unknown]], the [[excluded]], the [[indeterminable]], to lacking [[information]] and personal ignorance...
if we assign [[key]] theoretical importance to the [[concept]] of [[communication]], we would always have to note what is not said when something is said; for reactions in social intercourse are very often determined by taking account of what remains unsaid. But if we are to do justice to social [[reality]], we cannot abstract from the [[circumstance]] that all the [[form]]s of meaning have another [[side]] to them, which they exclude for the moment of their use. I shall attempt to take this into account with the [[concept]] of meaning, and with the concept of form, the [[mathematical]] concept of the [[reentry]] of a form into the form, and essentially by adopting a differentialist approach to [[theory]].
[[TS13]]
[in one specific case] [[communication]] [[problem]]s are resolved or at least [[structure]]d by suppressing communication.
[the [[secret]] qua] [[knowledge]] must be protected against communication because it is [[generate]]d in the first place only through this communication.
We are well justified in assuming this to have been an [[evolutionary]] dead end, offering hardly any further scope for [[develop]]ment.
AO idea of social forms as warding off [[capitalism]]=dead ends
141 has ritual acting in a similar way
[[TS138]]
[[divination]] is discussed, along with what it does for the communication system it's used within
[[TS140]]
The [[function]] of such [[morality]] in society may well be minor... but where shall have to reckon with a [[generate]]ive [[mechanism]], that, [[connect]]ed to the yes/no [[coding]] of [[language]] ensures that [[conditioning]]s [[develop]] to [[indicate]] which [[communication]]s are to be accepted and complied with and which not.
[[TS142]]
The main [[question]] for a [[theory of society]], however, is why almost all [[possible]] [[action]]s and [[interaction]]s do not take place. They are apparently outside the [[schema]] of possible [[motive]]s and [[rational]] [[calculation]]s. How does [[society]] manage to sort out what is possible? Why is it part of the [[meaning]] of the [[form]]s of social life that these vast [[surplus]] possibilities are disregarded as unmarked [[space]]? It is at least conceivable that societal [[structure]]s arise not as [[aggregate]]s of preferred motives for action [ie rational human [[actor]]s] but much more elementarily as [[inclusion]] of this [[exclusion]] in the form.
The [[tendency]] of methodological individualism (whether of necessity or not) to interrogate the [[individual]] about his [[knowledge]] or [[view]]s and then to analyze the resulting [[data]] [[statistic]]ally misses the [[essence]] of the [[communication]] [[phenomenon]], for communication is typically occasioned by [[ignorance]]. We must be able to [[judge]] which [[utterance]]s [[mean]] [[information]] for [[other]]s, adding something they did not know or did not know for [[certain]]. Conversely, every [[participant]] has to be ignorant of something if he is able to receive information. This role of [[ignorance]] cannot be reduce to individual knowledge about the ignorance of others. It is also completely unrealistic to assume that an individual knows what he does not know. Communication itself [[generate]]s and tests the ignorance necessary for its [[continue]]d [[operation]]. We could say that it lives from the unequal [[distribution]] of knowledge and ignorance]]. It is based on the form of knowledge, which always has a concurrent other side: that which is not yet known. And every participant must be able to judge what cannot be known at all so that he can avoid talking [[manifest]] [[nonsense]]...
Another [[point]] concerns the methodological preference for the simplest explanation possible... this is a convention with no basis in [[reality]]... the [[question]] of what has thus been excluded (i.e. included as excluded) has never really occupied [[sociology]]...
[[TS14]]
154-155 [[signifying]] take over and side effects
The [[sense]] of communicating [[myth]]s lay not in surprise but in [[participation]]. This is different int he case of written [[communication]], because [[temporal]] distances between [[utterance]] and [[understand]]ing occur and have to be reflected on. Utterances must be geared to be understood not immediately but later, not in the course of their own [[flow]] but in accordance with a later [[reader]]'s interest.
[[temporal object]]
This isn't still true for the digital-temporal distance is still there, but it's not reflected on, it's 'affected' on immediately
[[TS149]]
Using [[writing]] thus presupposes a double utilization of the [[distinction]] between [[medium]] and [[form]]: first, in [[connect]]ion with [[language]], a [[set]] [157] of written characters for still undetermined but regulated [[coupling]] options, which serves as a [[medium]] for text [[production]]... In the second stage, meaningfully comprehensible texts have to be produced that can be read differently, [[interpret]]ed in various ways... And interpretation can [[generate]] new texts, which in turn gives rise to a [[tradition]] in need of interpretation...
people could therefore read before they could write [China, writing emerges from [[divination]] rather than record keeping/[[account]]ing] [158]... The [[sign]]s then had only to be [[detach]]ed from their [[substratum]] and adapted for [[artificial]] use, an [[evolution]]ary [[mutation]] that apparently took place in a very brief state of time.
[[TS156]]
Communicative use [of writing] [[develop]]ed [[parasite]]ically, benefiting from a universal script that had already been developed, adding a further [[function]] to it, and, above all, new occasions for [[writing]] and [[reading]]. The development and [[dissemination]] of writing thus shows typical characteristics of an [[evolution]]ary [[process]] in the course of which functions were [[complement]]ed, [[substitute]]d, or even [[exchange]]d.
[[TS157]]
A [[communication]] system can attain [[dynamic]].[[stability]], that is, stability due to [[communication]], only through ever more and different communication.
The [[effect]] of [[writing]] lies in the [[spatial]] and [[temporal]] [[uncoupling]] of [[utterance]] and [[understand]]ing and in the dramatic increase in [[connect]]ivity options that it engenders.
Next para, [[rhizome]], "connectionistically" rather than sequentially
[[writing]].. uncouples tha communicative [[event]] itself. This [[produce]]s a new sort of [[medial]] [[substratum]], which makes quite new demands on [[strict]] coupling through [[sentence]] [[form]]s... [161] where the medial substratum suffices, written sentences can be read at any time by any number of unknown readers; but these sentences must themselves establish the [[context]] needed to [[understand]] them, they must be understandable in themselves. The [[digitus]] [[boundary]] is that context, established by [[component]]s-devices, architecture that places devices and screens everywhere, reorganizes houses-no one asks "just what are we doing?" when watching so many movies and shows and series and clips and and and andn andasndansd
[[metastable]] [[evolution]] [[oscillation]] [[coupling]]
[[TS158]]
In [[oral]] [[communication]]... it will have been assumed that the [[world]] in which communication takes place and the world about which communication takes place are not in principle different but constitute a [[continuum]] of [[reality]].
[[TS160]]
From a social [[point of view]], many more people can thus be reached with one [[communication]] than would be [[possible]] if it were restricted to physical [[presence]]. In order to stress this, I have called [[writing]] (and hence the [[printing press]]) a [[dissemination]] [[medium]]. However this should not take us back to the idea that the [[medial]] aspect consists in the [[transmission]] of [[information]] from one person to others. The [[effect]]s of [[writing]] cannot be explained in terms of the mere multiplication of addressees, however important this aspect might be. It lies in the re[[order]]ing of [[time]] and [[culture]]. Above all, writing increases [[uncertain]]ty about [[understanding]] intended [[meaning]]... and this applies not only for the [[reader]] but [[a fortiori]] for the [[author]]'s anticipation of understanding. The [[semantic]]s induced by writing then has to do with the reduction of this uncertainty.
[[TS161]]
[[liberation]] from having to switch roles in speaking and listening also made the corresponding roles of [[writing]] and [[reading]] into unsocial activities. Writing as such became a special type of skill, and thus a [[problem]]...
[[TS162]]
...[[system]]s thus [[develop]]ed on the basis of [[writing]] that converted their own [[autopoiesis]] entirely to [[second-order]] [[observation]]: the [[functional]] systems of modern society.
[[TS164]]
The [[concept]]ualization of a [[theory of society]] needs to enhance its [[potential]] for [[complexity]], namely, for [[interpret]]ing more heterogeneous [[fact]]s with the same concepts and thus ensuring the [[comparability]] of widely differing facts.
...[[modern]] [[society]] is characterized by the [[function]]al [[autonomization]] and [[operational closure]] of its most important [[subsystem]]s. Its functional [[system]]s are free to [[organize]] themselves and [[reproduce]] themselves. But this means that the overall system can no longer assert itself thorugh [[operational control]], but only through the [[structural effect]]s of its [[differentiation]] [[form]] on subsystem]]s... neither [[ideal]]s nor [[norm]]s can offer a basis for methodological guidelines... Instead, we must establish findings by [[demonstrating]] that, and how, the same [[basal]] [[structure]]s can be found in completely differing functional areas ([[family]] and [[politic]]s, [[religion]] and [[economic]]s, [[cognitive]] [[science]] and create [[art]] or normative [[law]]). This [[argument]] is then that such coincidences cannot be [[accident]]al; they can and must be [[attribute]]d to the form of the societal system.
[[effect]]
[[control societies]]
[[TS15]]
[[summary]] list here
[[TS165]]
One effect of [[printing]]... was the [[standard]]ziation of national [[language]]s... Only now do [[rule]]s and a sense of rules for the "correct" use of language [[develop]]... [178] printing reveals inconsistencies in tradition and thus leads indirectly to arrengements for the [[semantic]] resolution of contradictions.
[[Guattari]]. [[internal cop]] [[grammitization]]
[[TS173]]
...no [[societal]] [[operation]] can begin without using [[meaning]].
If we take the general theoretical [[pattern]] of [[autopoeisis]] as the basis, presupposing [[meaning]] in no way contradicts [[generate]]ing meaning in the [[network]] of the [[operation]]s that always [[presuppose]] it. On the contrary, the specificity of the [[medium]] meaning is a necessary correlate to the [[operational closure]] of [[cognitive system]]s. Meaning only exists as the meaning of the [[operation]]s using it, and hence only at the moment in which it is [[determine]]d by [[operation]]s, neither beforehand nor afterward [it is temporally contingent]. Meaning is accordingly a [[product]] of the operations that use meaning, and not, for instance, a quality of the world attributable to a creation, a foundation, an origin. There is accordingly no ideality divorced from [[fact]]ual [[experience]] and [[communication]]... the [[memory]] [[construct]]s [[structure]]s only for momentary use to maintain [[select]]ivity and [[limit]] [[connect]]ivity. Meaning-constituting systems delude themselves if they think there have always been and will continue to be enduring [[identity]]s, and that we can refer to them as extant. All [[orientation]] is [[construction]], is [[difference]] re[[actualize]]d from moment to moment. [[coupling]]
We reach beyond this [[statement]], which at first sounds like a mere assertion (there is no meaning outside the systems that [[use]] and [[reproduce]] meaning as a [[medium]]), if we call to mind a consequence of operational closure for [[relation]]s between the system and its operationally [[unattainable]] [[environment]]. Living systems, that is, [[organism]]s, create a special [19] environment for their [[cell]]s, which protects them and enables them to specialize. The protect themselves be means of [[material]] [[boundary]]s in [[space]]. Psychic and social systems [[shape]] their operations as [[observation]]al undertakings, which allow the system to be [[distinguish]]ed from the environment- even though, (and I must add because) the operation can take place only within the system. In other words, they distinguish between [[self-reference]] and [[other-reference]]. For them boundaries are not material artifacts but [[form]]s with two [[side]]s.
[[TS17]]
If there are sustained trends in the [[evolution]] of [[dissemination]] [[media]]... they can in brief be identified as the trend from [[hierarchy]]cal [[organization]] to [[heterarchy]]cal...
With hierarchies, it suffices to watch and influence the apex, because, more or less rightly, it can be assumed capable of asserting its will. Heterarchies, in contrast, are based on the interconnection of direct contacts discriminating (observe]]ing) on the spot.
[[rhizome]]
[[TS177]]
...everyone who relies on [[communication]] in one way or another has to depend on trust. But in the age of [ [[computer]]s], this trust can no longer be personalized, no longer implemented in social status; it is now only trust in the system. [[control societies]] [[storytelling]] [[marketing]]
[[TS187]]
System [[boundary]]s can no longer be understood as edges of the system, as skinds or [[membrane]]s by which the system fortifies itself, so to speak. Boundaries are not parts-subdivisions, one might almost say-of the system, as if there were also "inner" parts that benefit from having no contact with the environment. Rather, a social system is nothing other than the one side, the inner [[side]], the [[opearting]] side of the [[form]] of the system, and with every [[operation]] of the system, the distinctness of the system as opposed to the [[environment]] is reproduced. The [[autopoiesis]] of a [[meaning]] system is nothing other than the [[reproduction]] of this [[difference]].
[[digitus]]
[[TS187]]
In [[abstract]] terms, this is a [[reentry]] of a [[distinction]] into what it has itself distinguished. The [[system/environment]] distinction occurs twice over: as [[difference]] [[produce]]d through the [[system]] and as difference [[observe]]d in the system... The system becomes [[incalculable]] for itself. It attains a [[state]] of indeterminacy that is [[attribute]]able, not to the unpredictability of [[external]] [[effect]]s ([[independent variable]]s), but to the system itself. Memory, a "[[memory]] [[function]]," is therefore needed to make the [[result]]s of past [[selection]]s available in a present state (in which [[forget]]ting and [[remember]]ing play a role)fn. And it thus puts itself in a state of [[oscillation]] between [[positive]] and [[negative]] operations and between self-reference and other-reference.It confronts itself with a [[future]] it cannot itself [[determine]], for which, so to speak, adjustment reserves are laid aside for unforseeable situations.
FN : [[cybernetic]]ians would speak of the reintroduction of [[output]] as [[input]] in the same [[system]]. p364
I shall refer to the results of these consequences of reentry apparent to the system as "[[meaning]]."
...we can neither assume that an existing [[world]] consists of things, [[substance]]s, and ideas nor take the concept of world to refer to their totality. [[monad]]...The world is an immeasurable [[potential]] for [[surprise]]s; it is [[virtual]] [[information]], needing, however, systems to [[produce]] information, or in more precise terms, to give selected [[irritation]]s the [[sense]] of information. All [[identity]] must accordingly be understood as the [[result]] of information [[processing]] or, if relating to the [[future]], as a [[problem]]. Identities do not "exist," they merely have the function of [[order]]ing [[recursion]]s so that in processing meaning, we an [[draw]] on and [[anticipate]] something that can be used [[recur]]rently. This requires [20] selective [[condensation]] and, at the same time, [[confirm]]atory [[general]]ization of something that can be called the same as [[distinguish]]ed from [[other]].
[[TS18]]
[[symbolically generalized communication media]]... they presuppose the yes/no [[coding]] of [[language]] and assume the [[function]] of rendering expectable the acceptance of a [[communication]] in cases where rejection is [[probable]]. The come into being only when there is [[writing]] and the [[reject]]ion of communicated [[meaning]] proposals therefore become even more probably. They react tot he [[problem]] that more [[information]]] normally means less [[acceptance]].
Even f the linguistic code gives a proposed meaning an equal [[chance]] of being accepted or rejected, an accepted meaning can be expected to have a better chance of being repeated than a rejected one. Communication registers a success and, if [[repetition]] is sufficiently tenable, will remember it. Moreover, an accepted meaning proposal has a better chance of [[generalization]] because the accepting communication and all subsequent communications take it over in another context and have to adapt it accordingly. Acceptance and rejection therefore set off different [[recursion]]s... This does not mean that the [[develop]]ment path produces "reasonable" results, for, as always, [[evolution]] depends on [191] starting [[point]]s and [[bifurcation]]s; but it does seem likely that society itself gives good [[mark]]s to positive results such as nature, reason, and [[reality]], and can then at best take a "critical" view of them.
[[TS188]]
[[symbolically generalized communication media]] [[develop]] from the outset in the [[plural]] and for [[problem]]-specific [[constellation]]s. To achieve the probability of highly [[improbable]] [[meaning]] [[selection]], a multiplicity of specialized [[code]]s has to be developed.... "adaptive [[polymorphism]]."
The idea... is that social agreement can only be attained if the underlying commonalities last for more than a single [[situation]]...
SGCM are also [[media]] insofar as they require the difference between [[loose]] and [[strict]] [[coupling]] and enable [[form]]s to be formed on the basis of a loosely coupled [[medial]] [[substratum]]. However, we are dealing neither with special [[language]]s nor [[dissemination media]], but with a different type of [[medium]]: a different [[form]], a different sort of [[distinction]], other sorts of [[code]]... these difference must therefore be clarified.
[[TS190]]
In order to restore [symbol/izations] precise [[meaning]], i shall [[limit]] it to cases where a [[sign]] [[connote]]s its own [[function]], and hence becomes [[reflexive]]. Its own function is to [[represent]] the [[unity]] of what [[indicate]]s and what is indicated. [[symbolization]] therefore [[express]]es-and hence makes amenable to [[communication]]-that unity lies in [[difference]], and what is separated belongs together, so that what indicates can stand for (and not only [[point]] to what is indicated...
[[symbolically generalized communication media]] coordinate [[selection]]s that cannot e [[link]]ed without difficulty and therefore initially exist as a [[loose]]ly [[couple]]d [[set]] of [[element]]s-selections of [[information]] items, [[utterance]]s, and [[understand]]ing [[content]]. They achieve [[strict]] [[coupling]] only through the [[form]] specific to the [[given]] [[medium]]-for example, theories, proofs of love, laws, prices. They must not only function [[symbolic]]ally but (as the above examples who) also be generalized, since [193] in anticipation of further [[autopoiesis]], the corresponding [[expectation]]s can be [[form]]ed only if the form covers a range of [[situation]]s... What is ultimately at stake is always to encourage, indeed, enable, communication through added opportunities for [[accept]]ance; and thus to gain terrain for society that would otherwise remain unworked owing to natural fertility.
[[TS191]]
The achievement of these [[media]] and the [[form]]s typical of them can therefore be described as the ongoing [[enable]]ment of a highly [[improbable]] [[combination]] of [[selection]] and [[motivation]].
[resolve] the circular relationship between [[selection]] and [[motivation]] (each determines the other) by making the [[conditioning]] of selection into a motivational factor.
[[TS192]]
If we wish to analyze the [[form]]s of [[differentiation]] fo [[symbolically generalized communication media]], we must remember that we are dealing with the special [[problem]] of a [[connection]] between [[selection]] and [[motivation]] that has become [[improbable]]. From this [[point of view]], all SGCM are functionally equivalent... this viewpoint requires that the problem not merely be described by enumerating the [[component]]s of each [[communication]], namely, [[information]], [[utterance]], and [[understanding]]. Other, connecting forms are needed, and it is these forms that [[generate]] the [[specification]] and differentiation of SGCM
Forms of [[self-observation]] of the communication process are used for this purpose. To begin with, the improbability [[problem]] has to be put in the social form of "[[double contingency]]" which has been described in the positional concepts [[ego]] and [[alter]]... conveys precisely that every person is always both when (and only when) he engages in communication. But why, to be more exact, do we have this doubling up? The [200] answer is that the self-reference of social systems requires an [[immanent]] [[duality]] to allow a [[circle]] to form whose [[interruption]] can permit [[structure]]s to [[develop]]. Inspired by the [[thermostat]], which can only [[control]] because it allows itself to be controlled. Ranulph [[Glanville]] postulates this principle for [[object]]s per se. We can leave this open. Social systems clearly need self-constituted twoness if they are to be structurally determined; and this cannot be be an essentially predetermined twoness (qua human being) imported from outside. For the problem at issue, the [[improbable]] [[acceptance]] of [[selection]]s, this means that every selection has to take into account that it has to reckon with other (conforming or adverse) selections. Otherwise, a specifically social solution to the problem cannot be reached.
[[Guattari]] what does this have to do with [[assemblage]]s? some sort of generational affect, movement out of the generative to the transformational? Dunno [[autocatalysis]]
[[TS193]]
That meaningful [[identity]]s (empirical objects, [[symbol]]s, [[sign]]s, [[figure]]s, [[sentence]]s, and so on) can be [[produce]]d only [[recursive]]ly has far-reaching [[epistemological]] consequences.
[[Difference and Repetition]] [[Deleuze]]'s 3 [[repetition]]s, and also how no repetition is originary, even if it happened 'first,' for we need that future repetition to define what this present (past in the future) is through relation
While it is clear that the [[meaning]] of such [[entity]]s goes far beyond what can be grasped at the [[moment]] of [[observe]]ing, this does not meaning that they "exist" when they are not observed... Where [[recursion]]s refer to the past (to tried and [[test]]ed, known [[mean]]ing), they refer only to [[contingent]] [[operation]]s whose results are presently available and not to substantiating origins. Where recursions refer to the future, they point to a [[virtual]] [[reality]]; and we cannot know whether observational realities will ever feed this reality into [[system]]s (and which ones... All [[determination]]s must use this [[medium]] [meaning], in which no [[registration]] has any other grounds than its [[facticity]] as secured by recursions.
In the [[communicate]]ve production of meaning, this recursivity is provided above all by the [[vocabulary]], which can be used as the same in many [[situation]]s. There are, however, also objects that as perceivable things can be enriched with social meaning, so that they [[perform]] a [[coordinate]]ing [[function]] not dependent on [[language]]... the particular way in which [[home]] is identified can also not be [[attribute]]d to language alone and can therefore not be adequately [[express]]ed in language. This is also true for the structuring of [[spatial]] relations through [[architecture]] or for the meaning of [[action]]s. We are always dealing with the basic function of ordering [[recursion]]s available at the given moment (and only then).
In the [[self-constitute]]d medium of meaning, it is indispensable to [[orient]] operations on [[distinction]]s. This alone can produce the [[select]]ivity necessary for recursion. Meaning implies that everything currently indicated [[connote]]s and captures reference to other [[possible]]ities. Each meaning thus means itself and other things.
[[TS19]]
It must also be established where responsibility lies for the [[selection]] whose [[conditioning]] is to [[motivate]]. This means that selection has to be [[attribute]]d. Attributions never involve the inner activity (the [[autopoiesis]]) of systems, but only their [[behavior]] as seen by an [[observer]] and relating to the environment. They are always [[artificial]] activity, which, although it finds suggestive [[condition]]s in real [[quality]]s, is never fully [[determine]]d by them. The process of attribution itself is hence socially [[condition]]ed, and the attribution of attribution is one of those endless [[question]]s that are not admitted but hidden and made invisible be "reasons."
..we are seeking to observe what cannot be observed with the [[semantic]]s of the [[media]].
[[differentiation]] of the media follows form [[binary]]zation based on the two possibilities of attribution. [[internal]] and [[external]]. Since communication can observe itself only if a [[distinction]] is [[draw]]n between [[information]] and [[utterance]], the accent of attribution can be placed either on information ([[experience]]) or on [[utterance]] ([[action]]); and this is true for both sides: for those who initiate a communication and for those who have to divide on (the communication of) its acceptance or rejection. If a selection (by whomsoever) is attributed to the system itself, I speak of action, if it is attributed to the environment, of [[experience]]. [[symbolically generalized communication media]] are then categorized according to whether they assume the two social [[position]]s [[ego]] and [[alter]] to be experiencing or acting.
The [201] [[distinction]]s present no everyday knowledge. It is not a matter of completely classifying phenomena. Attribution is tied to experience or action and participation marked as ego or alter (with reference to persons who are always both) only when needed. It takes place only in contexts of use, that is, only when necessary for the [[autopoiesis]] of the communication system. Bringing communication [[problem]]s to a [[point]] in [[constellation]]s that come into question for [[media]] [[formation]] thus activates distinctions of attribution as experience or action and of marking as ego or alter that would otherwise not occur and could also not be explained by the "nature of things."
[[TS199]]
[[meaning]] can be described... as [[surplus]] [[reference]] accessible from [[actual]]ly [[given]] meaning. Meaning is accordingly an [[infinite]] and hence [[indeterminable]] [[referential]] [[complex]] that can be made accessible and [[reproduce]]d in a [[determine]]d manner-and I attach great importance to [this [[paradox]] ]. We can [[describe]] the [[form]] of meaning as the [[difference]] between [[actual]]ity and [[potential]]ity, and can therefore also assert that this and no other distinction constitutes meaning.... we then have something tangible in mind (something we can [[indicate]], [[distinguish]]) in [[mind]]: and also this means that the meaning thesis limits what we can otherwise make out about society. Society is a meaning-constituting system.
[[TS20]]
The [[mode]]alization of [[actual]]ity by the [[distinction]] between [[actual]] and [[possible]] concerns the [[meaning]] actualized in [[system]] [[operation]]s. It is doubly asymmetrical; for actualized meaning is and remains possible, and possible meaning, actualizable. The distinction therefore provides for the [[reentry]] of the distinction into what it [[distinguish]]es. Meaning is hence a [[form]] that contains a [[copy]] of itself on both sides. This leads to the asymmetrization of the initially asymmetrical distinction between actual and possible, and meaning consequently appears to be the same everywhere in the [[world]]. Re-asymmetrization is possible, indeed necessary, for [[observation]], but it must be introduced by further distinctions, for example between [[system]] and [[environment]] or by [[signifier]] and [[signified]].
actual is the [[present]] of [[duration]]. not a quote.
[[TS21]]
As far as communication media are concerned, the unity of society manifests itself, not in morality, not in concrete morals, but in the non-arbitrariness of the structural arrangements that [[translate]] the function of [[symbolically generalized communication media]] into possibilities for [[autopoiesis]] [[system]]s. From a methodological [[point of view]], this means that we find viewpoints for comparing the various [[media]] and with the aid of these viewpoints have to test the forms in which modern society realizes itself as a communication enterprise.
[[TS200]]
precisely because they [are oriented on preference] [[symbolically generalized communication media]] are suitable [[guidance]] media. They perform their guidance function by fixing preference and by exposing them to [[variable]] [[conditioning]] [218] [there is a ] difference between the fixed preference code [more money is better, truth over falsity, power over none, etc] and variable conditioning ([[program]]s.
[[TS215]]
the positive value [of the code] [[function]]s as a [[preference]], and hence as a [[symbol]] for [[connect]]ivity, and at the same time, it functions as legitimation for the use of the [[code]] itself. It symbolizes what is distinguished from the opposing value and also legitimizes the [[distinction]] itself. [[TS217]]
...[[meaning]] can therefore be described as a [[form]] by [[distinguish]]ing meaning from [[nonmeaning]] ([[sense]] from [[nonsense]]) and making it possible to cross the [[boundary]], this can happen only where the meaning/nonmeaning difference attains meaning at the moment of its use, hence reproducing meaning as the [[medium]] of all form [[formation]].
Meaning arises and is reproduced in certain... [[system]]s as [[eigen]]behavior because these systems produce their ultimate [[element]]s as [[event]]s that arise at a [[point]] in time only immediately to disintegrate, have no [[duration]], and occur for a first and last time...
we produce [[redundancy]]s via the [[past]] and [[variety]] via the [[future]]; producing means making [[present]] in the present.
bottom of page, the system as existing in the [[actual]] and an [[infinite]] [[field]] of the [[possible]]
[[TS21/22]]
[[TS219]]...we must assum that quantitave increaes of this [ [[evolution]]ary] sort are [[possible]] only through [[differentiation]]... Behind the assumption of quantitative growth therefore lies the precondition of non-arbitrary structural differentiation.
[[evolution]] theory... [[distinguish]]es... between [[variation]], [[selection]], and [[restabilization]]. It explains, to use the old terminology, the origin of forms of being and substances in accident. It frees the order of things from all ties to an origin, to a formative beginning.
We can accordingly not know (not [[observe]]) whether variations lead to te positive or negative selection and just as little whether restabilization of the system after positive or negative selection will succeed or not. And the very proposition that one cannot know, cannot [[calculate]], cannot plan characterizes a theory as an evolution theory.
[[TS252]]
Three [[evolution]]ary [[function]]s or [[mechanism]]s are now needed, of which [[variation]] and [[selection]] refer to [[event]]s, while [[restabilization]] refers to the [[self-organization]] of evolving systems as an essential precondition for variation and selection.
Considering two [[distinction]]s, between variation and selection and between selection and restabilization... Only the coupling of two distinctions centered ont he [[concept]] of selection allows the theory to conceive of [[evolution]] as an endless [[process]] in irreversible time, in which every stabiltiy achieved-the more [[complex]] it is, the more this holds true-offers a starting [[point]] for variation.
restab is both beginning and end [[metastable]]
[[TS258]]
[[evolution]] is always and everywhere.
[[TS259]]
We return to our general point of departure: systems theory does not have to do with a particular type of object but uses a ertain type of [[distinction]], namely, taht between system and environment. In essence, [[evolution]] means nothing ohter than that structural changes, precisely because they can take place only intrasystemically ([[autopoiesis]]), are not at the disposal of the system but have to impose themselves in an environment that the system itself cannot probe, at any rate cannot include in its planning. The evolutionary diversification and reproduction of sysetms is at the same time a diversification and reproduction of environments. Only the [[difference]] between system and environment makes evolution [[possible]]. In other words, no system can evolve from within itself.
If the environment did not constantly vary differently than the system, evolution would come to a rapid end in "optimal fit." It also follows that, although evolution does not have to effect the adaptation of the system to the environment, such adaptation is required as a sort of minimum condition. But this says no more than that systems no longer exist can also not evelve. It should be noted that the difference between system and environment slends every change a multiplication effect. It changes a system and at the same time the (relevant or irrelevant) environment of other systems. Every change is accordingly very likely to set off a whole [[series]] of [[effect]]s, which in turn [[generate]] effects independently of one another, and for which the same holds true. The world becomes [[dynamic]] from within, precisely because of the simultaneity of what happens and because of the associated impossibility of coordination. If, in other words, both the system that we [[observe]] and the systems in its environment [[evolve]] (co-evolve), the result is the "co-evolution of unsustainability"; and observers can react only by observing "chance occurrences." Only against this backdrop can we understand what role "[[chance]]" plays in evolution theory.
[[summary]] [[TS261]]
[[autopoiesis]] itself makes only minimal demands; in the case of the system of coeity, it requires only that communication talke place with regard to further [[communication]]. But this can happen in widely differing [[structure]]s. Structures are necessary ybecause they narrow the scope for suitable [[connect]]ive [[operation]]s to such an extent that the progression from opeariont to operation can be achieved. We could also say that they are necessary complexity reductions. However, this [[selectivity]] of structure [[formation]] also provides the opportunit y for different [[develop]]ments. The need for structural [[selection]] compatible with autopoiesis [265]-and this is only the other side of the coin-explains the [[chance]] of [[differential]] [[evolution]].
...[[autopoiesis]] systems practice a [[self-reference]]ial, circular relationship with their own [[operation]]s, but on the assumption that [[structure]]s guide the determination of connecting operations.
[[TS262]]
..structural [[coupling]]... has always guaranteed [[adapt]]ation sufficient to continue [[autopoiesis]].
[[TS264]]
That all [[observation]] depends on [[difference]]s explains the wealth of [[meaning]] in the [[world]]; for we can [[identify]] what we are indicating by exposing it to one difference after another. [we are [[coordinate]]d in [[difference]], meaning seems to be the production of some form of difference/distinction in the form of a here/not here, 1/0, /yes/no, seen/invisible present/absent, etc]
...the meaning [[form]] can never go beyond itself... it can also distinguish only by using itself, in other words [[autologically]]. It is the [[absolute]] [[medium]] of itself.
[[TS23]]
[[chance]] is the [[capacity]] of a [[system]] to use [[event]]s that cannot be p[[produce]]d and [[coordinate]]d by the [[system]] itself (hence not in the [[network]] of the system's [[autopoiesis]])... the [[observe]]ation of chance events expands the [[information]]-[[processing]] capacity of the system, thus correcting as far as possible the tightness of its own of its own structural formations without sacrificing the orientational advantages of these strictures.
[[TS269]]
As an [[operational]] [[unity]] of [27] [[distinction]] and [[indication]], meaning is a [[form]] that contains itself, namely, the distinction between distinction and indication. [[reentry]].
With respect to the specific [[form]] of meaning, namely, the distinction between [[actual]]ity and [[potential]]ity, meaning therefore [[become]]s [[operational]] only by the form reentering the form. The inside of the form must be able to accept this reentry. The difference between momentary actuality and open [[possible]]ity must itself be actually available for [[consciousness]] and/or [[communication]]... Through [[reentry]]... meaning becomes a self-regenerating medium for the om-going [[select]]ion of [[particular]] forms.
[[systems theory]] is understood as the theory of the distinction between [[system]] and [[environment]], with reenrty possible on the side of the system if the system itself... in its own operations, distinguishes [28] between [[self-reference]] and [[other-reference]] Treatment of communication as the operation that reproduces specific social systems is guided by the distinction between medium and form. This distinction occurs within itself inasmuch as loosely or strictly [[couple]]d [[element]]s are presupposed on the two sides that are cognizable only as forms, that is to say, they presuppose a further distinction between medium and form...
...we no longer speak of [[object]]s but of distinctions. Moreover, we understand distinctions, not as existing facts ([[difference]]s), but as deriving from [[directive]]s to [[draw]] them, because if we did not we would be unable to [[indicate]] anything. We would have nothing to [[observe]] and hence nothing to [[pursue]].
[[TS27]]
Each side of the [[form]] is the other side to the other side. Neither side is anything on its own... form is [[unfold]]ed [[self-reference]] to be more precise, [[temporal]]ly unfolded self-reference... [[differance]]?
[[cross]]ing is [[creative]]. For whereas repeating an [[indication]] merely confirms its [[identity]] (...tests and hence [[condense]]s its [[meaning]] in various [[situation]]s), crossing back and forth is not [[repetition]] and can therefore not be contracted into a single identity. This merely another way of saying that a [[distinction]] cannot identify itself in use. And this, as will be shown in detail with regard to [[binary coding]], is the basis for the productiveness of crossing.
...[[form]] is the [[distinction]] itself, in that it imposes the [[indication]] (and thus the [[observation]]) of one side or the other and... can for this very reason not realize its [[unity]] on its own. The unity of the form s... the excluded [[middle]] that cannot be observed as long as we observe with the aid of the form. [concept of form= [[reciprocal presupposition]], which is a prerequisite for "[[draw]]ing a distinction" on top of page, we indicate, we observe, then we pursue. A sort if [[triad]].].
[[TS28]]
...neither within nor outside does [[society]] does the [[modern]] [[individual]] find a secure basis for [[self-observation]], [[self-realization]], or, to use the fashionable term, [4] "[[identity]]".
[[TS1]]
[[determine]]ing, [[indicate]]ing, cognizing, [[act]]ing, are all [[operation]]s that establish such a [[form]]... Whenever the form [[concept]] [[mark]]s the one side of a [[distinct]]ion on the [[condition]] that there is another [[side]] [[determine]]d by it, there is also a [[superform]], namely, the for of the distinction of the form from something else.
[[TS29]]
[[self-organizing]] systems [[produce]] [[structure]]s of the [[system]] being [[organize]]d by [[process]]es intrinsic to the system.
[[autopoeisis]] systems are systems that themselves produce not only their structures but their [[element]]s of which they consist in the [[network]] of these same [[element]]s. The elements (which from a [[temporal]] [[point of view]] are [[operation]]s) that constitute autopoietic systems have no independent existence. They do not simply come together. They are not simply connected. It is only in the system that they are produced (on whatever [[energy]] and [[material]] basis) by being made use of as [[distinction]]s. elements are [[information]], [[distinction]]s that make a [[difference]] in the system... units of use for the production of further units of use for which there is no counterpart in the environment of the system.
[[TS30]]
[[autopoeisis]] is in the first place the [[generation]] of [[indeterminacy]] within the [[system]], which can be reduced by the system forming [[structure]]s. This explains not least of all why societal systems have [[invent]]ed the [[medium]] of [[meaning]] to take account of this [[open]]ness for further [[determination]]s in [[operation]]s within the system. The only operations of their own they know are therefore [[communication]]s [[select]]ing meaning [[form]]s.
All [[operation]]s of a system rely on prior opeartions, historical states, [[infinite]] [[regress]], [[recursion]], etc.
[[TS32]]
...a [[statement]] about numbers implies a statement about a statement about numbers (in other words, [[communication]] functions only [through [[self-reference]] ]).
[[observing]] [[observe]] [[observation]] means simply [[distinguish]]ing and [[indicate]]ing...[Dist and Ind] constitute a [[single]] [[operation]] .. [34] the [[observer]] is the [[excluded middle]] of his [[observation]] He cannot see himself observing.[[TS33]]
...[[communication]] is an [[autopoietic]] [[operation]], because it [[produce]]s the [[distribution]] of [[knowledge]] and [[ignorance]] only be [[change]]ing it.
[[TS34]]
That the elementary [[operation]] of [[society]] is an [[event]] bound to a [[point]] in [[time]] that disappears as it occurs is an insight that takes us further. This is true of all [[component]]s of [[communication]]: [[information]], which can surprise only once; [[utterance]], an [[act]] tied to a point in time; and [[understand]]ing which also cannot be repeated but at best recalled.... the [[disseminate]]ion [[technology]] of [[writing]] can [[distribute]] the communication event in time and [[space]] to many addressees and can thus be [[real]]ized at unpredictably many points in time.
[[TS35]]
[[communication]] (hence [[society]]) must rather procure the necessary [[understanding]] itself. This is achieved through non[[arbitrary]]ness in [[connect]]ing communicative [[event]]s, hence through [[self-reference]]tial [[structure]] of communication [[process]]es. For each individual [[event]] gains [[meaning]] (=[[understand]]ability]]) only because it refers to others and restricts what they can mean; and this is precisely how it [event or communication? event of communication, communication of event? autologic?] [[determine]]s itself.
[[control societies]]
[[TS36]]
[[recursion]]s must [[produce]] [[identity]]s suitable for reuse; this can be done only through [[select]]ive [[condense]]ation, by leaving out unrepeatable [[element]]s of other [[situation]]s. However, they must also reserve the condensed [[meaning]] in new situations, and this requires [[general]]ization. If these requirements have to be repeatedly met, for instance, with the aid of [[language]], [[generalized]] meaning [[variant]]s [[develop]] whose [[signification]] cannot be sufficiently [[capture]]d in the [[form]] of [[definition]]s. They arise from [[experience]] in use, which depends entirely on the use [[system]]. I consider this a cause of the [[evolution]] of [[symbolically generalized communication media]].
[39] similar identity discussion: The [[boundary]] of the [[system]] is nothing other than the [[type]] and [[concretion]] of its [[operation]]]s, which [[individual]]ize the [[system]]. It is the [[form]] of the system whose other side thus becomes the [[environment]].
He gave the example of[[home]] some time ago. [[identity]] [[differance]] is discussed as being a sort of equivalent. [[TS190]]
[[TS37]]
With the continuously reproduced [[distinction]] between [[information]] and [[utterance]], a [[social system]] can [[observe]] itself. An [[observer]] of this oberving, a [[second-order]] observer...
[[TS38]]
...the [[cognition]] (or [[definition]] or [[analysis]])of [[action]]s are themselves actions.
[[TS3]]
...(for the [[distinction]] between [[level]]s in my [[concept]]ualization is a [[form]] that has two sides; the concept of level implies that there are other levels.
[[TS39]]
The general [[theory]] of [[autopoeisis]] [[system]]s requires precise identification of the [[operation]] that carries out the autopoeisis of the system and thus demarcates the system from its [[environment]]. In this case of [[social system]]s, this is done through [[communication]]... It is the smallest [[possible]] [[unit]] of a [[social system]], namely, the [[unit]] to which communication can still react through communication.
[[TS41]] [[fold]] [[unfold]]
An essential pre[[condition]] for the [[autopoeisis]] of [[society]] and its [[structure]] [[formation]] is that [[communication]] does not of itself contain its own acceptance; this has to be decided through further, independent communication...
the [[system]] has to constitute an [[eigen]][[time]] that [[adapt]]s the [[speed]] of [[operation]] and the [[temporal]] [[perspective]]s of the system to internal [[possible]]ities. The system must then renounce one-to-one [[coupling]]s between [[environmental]] [[event]]s and system events and create [[arrangement]]s within that take into account that other temporal [[relation]]s obtain in the environment than in the system. The system [[develop]]s structures ([[memory]] and [[expectation]]) to enable it in its operations to keep the temporal relations in the system and those in the environment apart and to [[organize]] eigentime.... It must be able to delay or accelerate reactions while something quite different has begun to happen in the [[environment]].
In the [[Leroi-Gourhan]] section of GoM, this reminds me of how signs do not [[signify]] but [[speed]] up or slow down [[deterritorialize]]ation. [within an assemblage? but that's what signs do, not represent, but [[function]] [[machinic]]ly. 'it must be able to delay or accelerate reactions while...' above
[[TS42]]
No [[self-observation]] is therefore in a position to [[capture]] the full [[reality]] of the [[system]] that carries it out.
[[TS43]]
...a [[complex]] [[structure]] of [[distinction]]s [[develop]]s that guides the [[observation]] [[process]] of the [[system]], steering it inward or outward depending on which side of the distinction is indicated as "inside" or "outside." If the system has appropriate [[storage]] capabilities at its disposal, for example, [[writing]], it can then gather [[experience]], [[condense]] [[situation]]al [[impression]]s through [[repetition]], and develop an [[operation]]al [[memory]] without running the risk of constantly confusing itself with the [[environment]]. All this takes place following the basal distinction between [[self-reference]] and [[other-reference]] with other suitable [[distinction]]s.
[[TS45]]
One consequence of operational closure is that the system has to rely on self-organization. a system's own structures can be built up and changed only through its own operations... All [[operation]]s ([[communication]]) therefore have a double [[function]]: they establish the historical [[state]] of the [[system]]... And they [[form]] [[structure]]s as [[select]]ion [[schemata]] that make [[recognition]] and [[repetition]] [[possible]], hence [[condense]]ing [[identity]]s (many say with [[Piaget]] [[invariance]]s), which they [[confirm]] in every-new [[situation]]s and thus [[generalize]]. This structure formation that permits [[remember]]ing and [[forget]]ting ins not possible through external agency; we therefore speak of [[self-organization]]. [[closure]], [[self-determination]], and [[self-organization]]-and this is the [[evolution]]ary advantage-make a system highly compatible with disorder in the environment, or hence with only [[fragmentary]], only incomplete environments not organized as a [[unity]].
[[epistrata]] [[parastrata]] [[unity of composition]] [[central ring]] [[partial object]] [[double articulation]]
[[TS46]]
By [[closure]] I do not mean [[thermodynamic]] closure but only [[operational closure]], which means the [[recursive]] enablement of a [[system]]s own [[operation]]s through the outcomes of its own operations.
[[society]] is a communicatively [[closed system]]. It [[generate]]s [[communication]] through communication. Its [[dynamic]]s consist in the effect of communication on communication in the [[sense]] of [[transform]]ing current [[distinction]]s and [[indication]]s but never in the sense of reshaping the external [[environment]]. We can no less talk things into shape than we can think them out of existence or rethink them.
Society is hence a system that is completely and exclusively determined by itself. Everything that is [[determine]]d as communication has to be determined through communication. Everything that is experienced as [[reality]] arises from the resistance of communication to communication,
0[[TS50]]
Operating on the basis of [[observation]] [[schema]] "[[system]] and [[environment]]," [society] can then communicate within itself, about itself, or about its environment, but never with itself and never with its environment. For neither it nor its environment can reoccur in society as partner in, as addressee of [[communication]]...
This [[closure]] has to do with the specific [[operation]]al manner in which the [[system]] [[reproduce]]s, namely, communication...
[[TS51]]
... [[communication]] only comes about because a [[distinction]] is [[drawn]] between [[utterance]] and [[information]] and the distinction is [[understood]].
[[TS52]]
For the [[system]], [[object]]s are accordingly always [[reference]]s; they are never things that exist in the outside [[world]], but [[structural]] [[entity]]s of the systems [[autopoeisis]], that is to say, [[condition]]s for the continuation of autopoeisis. FN 129 P372 The emphasis is on structural entities as opposed to merely [[operation]]al entities ([[event]]s). This means that objects can remains identical in progression from [[communication]] to communication; however, not because the natural conditions of the external world guarantee their persistence, but because they are [[generate]]d through the [[other-reference]] of the system (as [[topic]]s of communication) as structural entities of the system.
[[TS53]]
[54] The [[answer]] to a difficult [[question]] is a difficult [[concept]]... [[structural coupling]]s [55] [[limit]] the scope of the [[possible]] structures with which a system can carry out its [[autopoeisis]]. They presuppose that every autopoeisis system operates as a structurally determined system, in other words, a system that can determine its own [[operation]]s only through its own structures. [[Maturana]] would say that structural [[coupling]] is in [[orthogonal]] relation to the [[self-determination]] of the system. It does not determine what happens in the system but must be presupposed...
In the terminology of [[informatic]]s, we could say that structural couplings [[digitize]] [[analog]] relations. Since the environment and the other systems within it always operate simultaneously with the given [[reference]] of [[observation]], we are initially dealing with analog ([[parallel]]) relations. The participating systems cannot extract any [[information]], for this requires digitization.... must therefore convert analog into digital relations if they are to influence a system... this is a function of [[language]], which converts a [[continuous]] "alongside" into a [[discontinuous]] [[succession]].
[[surplus]] possibilities are set through the [[medium]] of [[meaning]]. To resolve these indeterminacies (which has to be done internally), the system requires [[pointer]]s, which can be supplied by its own [[memory]] or by structural couplings (the body remembers the limits to its possibilities for movement and sees them in the terrain)... [56] For no system can must the "requisite Variety" (W. Ross [[Ashby]]). it can only compensate for the unknownness of the environment by the internal surplus of possibilities, by matching [[indeterminacy]] with indeterminacy.
[[Simondon]], margins of indeterminacy of the technical object and for [[individuation]], [[Leroi-Gourhan]], the indeterminacy of our body, [[Wolfe]], the brain and [[adaptation]], [[specialization]], [[plasticity]]
[[TS54]]
...we define [[cognition]] as an [[indication]] on the basis of a [[distinction]], thus presupposing a capacity for [[distinguish]]ing for which there is no correlate of any sort in the [[environment]] of the [[system]]. If this is to be achieved, the system must be able, first, to close itself [[operation]]ally and [[reproduce]] autopoeitically, and, second, to rely on extremely limited structural [[coupling]]s with the environment. Eyes and Ears and the corresponding [[connect]]ive [[operation]]s in the [[brain]] are prime examples.
...structural couplings, too, are two-sided [[form]]s that include something by excluding other things.
[[TS55]]
If reproduced autopoeitically through [[recursion]]s, [[communication]]s [[form]] an [[emergent]] [[reality]] sui genesis.
[[TS56]]
[We can have autopoeitic systems coupled to each other]. This means that [[communication]] has to be prepared to [[cope]] with continual [[irritation]] by its [[environment]] without its [[vocabulary]] and [[rule]]s of [[grammar]] being allowed to change from moment to moment. Indeed, [[language]] has the peculiar ability to convert irritations to communication without breaking down.
...The mutual intransparency of the coupled [[system]]s has not only to be accepted in practice: it is a necessary condition for [[structural coupling]]; for the endogenously determined [[operation]]s of the systems could otherwise not be [[determined]].
[[coupling]].
[[TS57]]
Where such [[relation]]s [[develop]] in mutual co-[[evolution]] and non of the systems thus structurally [[coupling]] could exist without them, we can also speak of [[interpenetration]]...
The speaker has to choose an objective [[form]] of and surrender ownership of the spoken [[word]], with the result that in spoken [[communication]], no participant thinks exactly what another thinks. Language frees itself from its creators as form.
[[TS58]]
[ [[schemata]] ] serve as reductions of [[structural]] [[complexity]] in the [[develop]]ment of [[operation]]al complexity, and hence in the ongoing adjustment of structural [[coupling]] between psychic and social systems to changing conditions. Here, too, the function and [[mechanism]]s of coupling do not have to take effect in the operations of the systems; they can be supposed to act [[noise]]lessly.
[[TS60]]
...[[language]] does not have its own [[mode]] of [[operation]], it has to be [[real]]ized as [[thought]] or [[communication]]; it consequently does not form a system of its own. Language is and remains dependent on the circumstance that consciousness systems, on the one hand, and the communication system of society, on the other, continue their own [[autopoeisis]] with completely [[close]]d operations of their own. Were this not to happen, [[speech]] would immediately cease and thinking in language would no longer be [[possible]].
...the [[symbol]] means only that there is a [[difference]] that can be treated as the same from both standpoints... only the [[signifier]] is suitable for symbolic use, not the [[signified]] things themselves.
Just as important as [[artificial]]ity, [[condense]]ation, [[confirm]]ation, and the [[symbol]]ic use of [[linguistic]] signs is an [[element]] that often attracts less [[attention]]: the [[binary]] [[coding]] of language. All communication offers two [[possible]]ities: [[acceptance]] and [[rejection]]. All (condensed and confirmed) [[meaning]] can be [[express]]ed in an [[affirm]]ative version and in a [[negative]] version. This sets the course for further treatment of the topic.
[[TS61]]
From a [[genetic]] [[point of view]], it is always a matter of performance by the [[communication]] system: a deviation is proposed [[observe]]d, tested, rejected, intensified, and used for more and more [[connection]]s.
[[TS62]]
[[cognition]] is the ability to [[connect]] [[new]] [[operation]]s to [[remember]]ed operations.
[[Spinoza]] [[TS68]]
[ [[cognition]]s ] job is rather to [[produce]] [[redundancy]]s that spare the system repetitive [[information]] [[processing]]... [[mark]]ed as [[knowledge]], registered as recognizable, and then used "economically" to concentrate and expedite any checking of new information.
[[TS69]]
we regard the [[system]] [[form]] as the form of the [[difference]] between system and [[environment]]...
[[TS70]]
[[function]]al [[differentiation]] means above all the [[operational closure]] of functional systems, too. This [[produce]]s [[subsystem]]s with capabilities that the over all [[network]]ing of society-we could also say on the basis of [[language]]-could not supply. Subsystems assume [[universal]] [[competence]] for their specific function. This has vastly increased the capacity for resolution and recombination in functional systems own operations and in their environment within and outside of society. Moreover, [[organization]] takes on an importance of its own. The characteristic [[inclusion]]/[[exclusion]] [[mechanism]] for [[member]]ship allows members' [[behavior]] to be [[regulate]]d with great precision and directed in very concrete terms, in other words, under the influence of [[communication]]-relatively independently of members' other [[obligation]]s in the [[environment]] of the given organizational system and hence independently of their own, other [[role]]s.
[[control societies]]
[[TS73]]
The [[attribute]]s listed so far, namely, [[meaning]], [[self-reference]], [[autopoeitic reproduction]], and [[operational closure]] with monopolization of a specific type of [[operation]]-[[communication]] cause a system of [[society]] to develop its own [[structural complexity]] and hence to [[organize]] its own [[autopoeisis]]. In this connection we often speak of [[emergent]]" [[order]]s... but [this] is more a [[component]] of a [[narrative]] than an explanatory concept.
[[TS75]]
[[autopoeisis]] definition: the [[production]] "of a [[system]]s own [[element]]s by its own elements."
The [[distinction]] that constitutes [[complexity]] than takes the [[form]] of a [[paradox]]: complexity is the [[unity]] of a [[manifold]].
[79] [the more [[element]]s that are able to [[connect]] to one another, not in [[biunivocal]] fashion but in the manner of a [[rhizome]], the more complex the system is.
[[TS77]]
[79] The key [[distinction]] is now between [[system]]s with complete [[interconnect]]ion between [[element]]s and those with only [[select]]ive interconnection; and the [[real]] systems of the [[evolve]]d [[world]] are obviously to be found on the latter side of the [[distinct]]ion. In brief, the [[form]] of [[complexity]] is hence [80] the necessity to [[sustain]] an only selective [[interconnect]]ion between [[element]]s, in other words, the selective [[organization]] of the [[system]]s [[autopoeisis]].
complexity as a [[rhizome]] taht can be described in different ways, [[unity]] of the [[manifold ]], etc
[[TS78]]
...the [[world]] is the totality of what constitutes system and environment for each system.
[[monad]]
[[TS80]]
...as [[communication]] proceeds, it [[generate]]s [[identity]]s, [[reference]]s, [[eigenvalue]]s, [[object]]s-whatever the [[individual]] [[human]] being [[experience]]s when confronted by it.
FN 21 p362 offers a [[definition]] of eigenvalues, albeit a somewhat long-winded one. Not sure if it is the one [[Luhmann]] will be making use of throughout the text.
{I] regard human beings in their entirety... as part of the [[environment]] of the societal system.
[[TS4]]
...[[develop]]ment is a [[form]] whose one side (according to current understanding) consists in [[industry]]alization and whose other side consists in underdevelopment.
[[TS89]]
World [[society]] [[select]]s from [[tradition]], so to speak, what benefits it in such fields as [[stratification]], [[organization]], [[work]] ethics, or [[religion]].
[[strata]] [[abstract machine]]
[[TS93]]
{It is] clear how important the [[comparability]] of [[functional system]]s is for the [[theory of society]]... the theoretical importance... is even greater if we conceded that [[society]] cannot be deduced from a principle or basic [[norm]]... even those who do not recognize or violate such principles [deviants] contribute to societal [[operation]]s, and society itself must take account of this [[possible]]ty. OTOH, it is not by chance that widely differing functional areas such as science and law, economics and politics, the [[mass media]] and intimate relations can be shown to have comparable [[structure]]s... we can work with the same [[concept]]ual [[apparatus]]... [[autopoiesis]] and [[operational closure]], [[first-order]] and [[second-order]] [[observation]], [[self-description]], [[medium]] and [[form]], [[coding]] and, in [[orthogonal]] relation, the [[distinction]] between [[self-reference]] and [[other-reference]] as [[internal]] structure.
[[Theory of Society]]
It is a [[circular]] relationship: [[society]] cannot be conceived without [[communication]], and communication cannot be conceived of without society...
The thesis of [[self-production]] by communication postulates clear [[boundary]]s between [[system]] and [[environment]], The reproduction of communications from communications takes place in society. All other [[conditions]] [like human considerations] are [[environment]]al conditions. No human being is indispensable... system [[formation]]s within society cannot [[connect]] with any section of the environment.
[[TSxii]]
in addition to [[orthographic]] [[writing]], other kinds of quite precise [[recording]] also exist; this grouping I shall call [[memory]]'s [[orthothetic]] [[substructure]].
[[photography]] represents a slice of reality, dead and yet it's [[referent]] is the [[reality]] of the [[past]]. [[painting]] can't feign this. [me, a summary]
"photo-graphed, a [[singular]] instant has disappeared forever, which at the same time will remain forever and [[return]] endlessly in the [[repetition]] of the radically paradoxical [[contingent]], an improbable and a priori as impossible as the return of the [[dead]]. An instant, an instant as such would not be able to return.
As repetition, this "as such" signifies an objectivity: that of the photographic [[lens]]. Within the realm of photographic objectivity, the [[referent]] "[[adhere]]s" to its [[recording]]. The result is that stylization is excluded from the [[photograph]], as is generalization. The [[mechanical]] relationality of adherence (of exactitude) is what identifies the very instant of the [[Real]] as such.
[[TT2 p13-1]]
The [[spectrum]], as [[revelation]] of the chemical reaction on photo-sensitive film, is the interface between these two [[technic]]all [[system]]s, and of two separate viewings: those of the photographer and of the spectator. The spectrum only appears by delayed action...
[[TT2 p14-1]]
The photographic [[vision]] is a re-vision. Its [[delay]] is [[originary]]. The [[past]] remains completely as that [[present]] that it was, without loss and yet only a [[remainder]]: a spirit, a phantom. Returns as a past present for me even though it cannot be a question of my pat: it can only be a [[question]] of a past I have not lived. Astral, emerging from the night of an infinitely distanced past...
[[TT2 p15-1]]
The instant of capture coincides with the instant of that which is captured. This co-incidence of two instants grounds the possibility of the [[conjunction]] of the [[past]] and of [[real]]ity, in which the [[spectator]]'s [[presence]] coincides in its turn with the appearance of the spectrum. This conjunction wrenches the viewer out of the real and into an ineluctably lost past, a wrenching that is also an emanation perceived "like the delayed beams from a star": in the photographic, the past is presented (this is the meaning of "real," here a [[predicate]] of a [[time]] before that of the living being)-but it can only be presented as late. The vision is only a re-vision. But it is not only a re-vision: it is also an [[adieu]].
[[grammar]]
[[TT2 p15-2]]
[the photograph will] open a [[space]] [[between]] here and there, [[past]] and [[future]], thus rendering possible both the [[passage]] of [[time]] and a way of approaching the [[self]] without which I could never see myself. This always-already retarded specularity allows me to see myself, here, in my photogram, death... It [[become]]s phantomic. In the exemplary experience of the [[subject]]'s (re-)seeing himself photo-graphed, in the pose's wake, late, too late, [[death]] comes into view.
[[TT2 p16-1]]
All [[photo]]s are this [[catastrophe]], all [[narcissism]] is a [[thanatology]], but photographic narcissism is unique: it inaugurates an [[other]](ed) connection to the end, an other(ed) [[time]].
Manifesting a unique connection between myself and my end, photographic deferral gives me a particular [[temporalization]]: photographic [[being-for-the-end]] is unique.
[[TT2 p17-1]]
this cultural world... all of that should be framed as a matter of [[instrument]]ality, and of the "[[time]] of [[invention]]," as a [[retention]]al-[[protention]]al structure of the "[[invent]]or"; that is, as a test of the technologically accessible [[past]] that is retention as ideal protention... [[writing]] is a [[technology]]...
writing as something that invents new objects along with it; the writing of city laws in Ancient Greece as something that invents anew.
[[TT2 p17-2]]
"Simultaneous with the law's first appearance in [[writing]], the right to [[interpret]] the [[law]] was offered to each person." Yet this [[emergence]] is at the same time the appearance of all western forms of [[knowledge]] "[[isonomia]]... is more than a political program; it inaugurates a new [[system]] for intellectual activity."
[[TT2 p38-1]]
[[communitization]] calls for the possibility ot [[interpretation]], of [[differentiation]]: exact identification instigates the sudden appearance of a [[difference]] and imposes [[infinite]] difference on any [[reading]]. The more [[memory]] is "straight" (identical), the more it is "in [[play]]" (the more it differs).
[[TT2 p39-1]]
...[[Heidegger]] speaks of the simultaneous appearance within the [[city]], as the site or "source" of [[history]]... of the [[god]]s, [[temple]]s, [[priest]]s, festivals, games, poets, thinkers; of the king, council of elders, public assemblies; armies and navies...the [[polis]] begins to be thought as separate from [[time]], which then appears in "multiple ways".
[[regime of signs]]
[[despot]]
[[signifying]] [[regime]]
[[TT2 p39-2]]
[[technology]], specifically [[writing]], as conditioning [[access]] to a given [[system]]; in line with the [[societies of control]] thesis. Could this be said to be device-driven?
[[Deleuze]] [[power]] [[digitus]] [[device]]
[[TT2 p39-3]]
[[technic]]s is a surface of [[differance]], an instrumental [[mirror]] reflecting [[time]] as [[differentiation]], differing, as differed. Orthography is already a sort of [[clock]] to be seen... in a theoretical and not a photographic light; it calls into [[question]] another kind of gaze than that of [[photography]]
[[TT2 p38-1]]
Systemic properties are destroyed when a [[system]] is dissected into isolated [[element]]s.
[[The Web of Life]]
...different [[system]]s levels represent [[level]]s of differing [[complexity]]. At each level the observed phenomena exhibit properties of a particular level that do not exist at lower [other?] levels. The systemic properties of a particular level are called [[emergent]] properties, since they [[emerge]] at that particular level.
[[TWL 36-1]]
[[organization]] is a structure separate from physical [[structure]].[[TWL p37-1]]
[[information]] does not create [[idea]]s, ideas create information.
[[concept]]s
[[TWL p64-1]]
...[[pattern]] of [[organization]]-a configuration of [[relation]]ships characteristic of a particular [[system]].. the understanding of [[life]] begins with the understanding of pattern
[[TWL p70-1]]
In the study of [[structure]] we measure and weigh things. [[pattern]]s, however, cannot be measured or weighed; they must be [[map]]ped. To understand a pattern we must map a configuration of [[relation]]ships. In other words, [[structure]] involves quantities, while pattern involves qualities.
[[TWL p80-1]]
[[dissipative]] structures not only maintain themselves in a stable ([[metastable]]?) [[state]] far from [[equilibrium]], but may even [[evolve]]. When the [[flow]] of [[energy]] and [[matter]] through them increases, they may go through new instabilities and transform themselves into new structures of increased [[complex]]ity... while dissipative structures receive their energy from outside, the instabilities and jumps to new [[form]]s of [[organization]] are the result of fluctuations [[amplify]]d by positive [[feedback]] [[loop]]s. Thus amplifying runaway feedback... appears as a new source of [[order]] and complexity.
[[TWL p81-1]]
[[self organization]] happens in [[system]]s far from [[equilibrium]] [[metastable]]
[[TWL p89-1]]
"living [[system]]s ... are organized in a closed closed causal circular [[process]] that allows for [[evolution]]ary change in the way the circularity is maintained, but not for the loss of the circularity itself." [maturana] Since all the changes in the system take place within this basic circularity, [[Maturana]] argued that the [[component]]s that specify the circular [[organization]] must also be produced and maintained by it. And he concluded that this [[network]] [[pattern]], in which the [[function]] of each component is to help produce and transform other components while maintaining the overall circularity of the network, is the basic "organization of the living."...
The [[nervous system]] is not only [[self-organizing]] but continually [[self-referring]] so that [[perception]] cannot be viewed as the external reality but must be understood as the continual creation of new [[relation]]ships within the [[neural network]]...
[[TWL p90-1]]
Sometimes you want to see notes side by side:
*To review one and write in another
*To compare and contrast two ideas
*To have a reference sheet or list of snippets open while you are writing
In Roam you would do this by adding a page to the sidebar. In Scroll you do it by opening two columns of tiddlers.
<span class="bluebox">
''Activities:''
#Hide the sidebar using the <<icon {{$:/core/images/chevron-right}} "">> icon at the top of the sidebar.
#Hold down the Shift button and click on these two links, [[Dave Gifford]]. It should appear in a separate column to the right.
#Do the same (shift-click) for the tiddler [[Muffin 1]].
</span>
Now you can view or edit tiddlers in either column, side-by-side!
Note: If you close tidders and only one tiddler is left, Stroll will revert back to one column.
!Diverting tiddlers between columns
<span class="bluebox">
''Activity:''
#Now click the <<icon {{$:/_sq/Stories/icons/divert-left.svg}} "">> and <<icon {{$:/_sq/Stories/icons/divert-right.svg}} "">> icons at the top of the tiddler to 'divert' the [[Muffin 1]] tiddler back and forth between the two columns.
</span>
!'Folding' (compressing) tiddlers
<span class="bluebox">
#Click the <<icon {{$:/core/images/fold-button}} "">> in any tiddler multiple times to compress or 'fold' the contents of the tiddler. Folding tiddlers makes it faster to scroll up and down the columns. Click the button again to 'unfold' the tiddler.
</span>
!Switching between one- and two-column mode
<span class="bluebox">
''Activity:''
#Open the sidebar back up. You will see a <<icon {{$:/_sq/Stories/icons/bars.svg}} "">> button in the sidebar. It is only visible when both columns are open. Click the button to return to one column mode. Click it again to open the two column mode again.
</span>
!Adjusting the relative width (ratio) of the two columns
In the gear tab in the sidebar, you will find a slider to adjust the ratio of the two story columns.
<span class="bluebox">
''Activity:''
#With tiddlers visible in both columns, slide the slider to see how it works.
</span>
[[memory]] as [[virtual]], then
...I see nothing which compels us to insist that no [[trace]]s of a [[perception]] remain just because there are not enough left for one to remember that one has had it.
[[U95]]
an '[[idea]] is the [[object]] of thinking'...
provided that you add that an idea is an [[immediate]] [[inner]] object, and that this object [[express]]es the [[nature]] or [[quality]]s of things. If the idea were the [[form]] of the [[thought]], it would come into and go out of existence with the [[actual]] thoughts which correspond to it, but since it is the object of thought it can exist before and after the thoughts. [[sensible]] [[outer]] objects are only [[mediate]] because they cannot act immediately on the [[soul]]. [[God]] is the only immediate outer object... the soul itself is its own immediate inner object, but that is only to the extent that it contains idea, ie something corresponding to things. For the [[soul]] is a little [[world]] where [[distinct]] ideas represent God and [[confuse]]d ones represent the [[universe]].
[[U107]]
This [[tabula rasa]] of which one hears so much is a fiction, in my view, which [[nature]] does not allow and which arises solely from the incomplete -[[notion]]s of philosophers - such as vacuum, atoms, the state of rest (whether absolute, or of two parts of a whole relative to one another), or such as that prime [[matter]] which is conceived without any [[form]]. Things which are uniform, containing no variety, are always mere abstractions: for instance, time, space, and the other entities of pure mathematics. There is no [[body]] whose parts are at rest, and no [[substance]] which does not have something which distinguishes it from every other. Human [[soul]]s differ not only from other souls but also from one another, though the latter differences are not of the sort that we call specific. And I think I can demonstrate that every substantial be it soul or [[body]], has a unique relationship to each other thing; and that each must always differ from every other in respect of intrinsic denominations.
...inactive faculties - in short, the pure powers of the Schoolmen - are also mere fictions, unknown to nature and obtainable only by abstraction. For where will one ever find in the [[world]] a [[faculty]] consisting in sheer [[power]] without [[perform]]ing any [[act]]? There is always a particular disposition to action, and towards one [[action]] rather than another. And as well as the disposition there is an ·endeavour towards action - indeed there is an [[infinity]] of them in any [[subject]] at any given time, and these endeavours are never without some effect. Experience is necessary, I admit, if the soul is to be made to have such and such [[thought]]s, and if it is to take heed of the [[idea]]s that are in us. But how could experience and the senses provide the ideas? Does the soul have [[window]]s? Is it similar to writing-tablets, or like wax? Clearly, those who take this view of the soul are treating it as fundamentally [[corporeal]]. Someone will confront me with this accepted philosophical axiom, that there is nothing in the soul which does not come from the senses. But an exception must be made of the soul itself and its states. Nihil est in intellectu quod non juerit in sensu, excipe: nisi ipse intellectus. Now the soul includes being, substance, one, same, cause, perception, reasoning, and many other notions which the senses cannot provide.
PHI L. I hope then that you will concede to this able author that all ideas come through sensation or through reflection; that is, through 'our observation employed either about external, sensible objects; or about the internal operations of our' soul.
THEO. In order to keep away from an argument upon which we have already spent too long, let me say in advance, sir, that when you say that ideas come from one or other of those causes, I shall take that to mean the actual [[perception]] of the ideas; for I believe I have shown that in so far as they contain something distinct they are in us before we are aware of them.
[[Difference and Repetition]] [[Spinoza]] [[physics]] [[U60]]
[[U109]]
[[action]] is no more inseparable from the [[soul]] than from the [[body]]. For it appears to me that a thoughtless state of the soul and absolute rest in a body are equally contrary to nature, and never occur in the world. A [[substance]] which is in action at some time will be so forever after, for all the impressions linger on, merely being mixed with new ones. When one strikes a body one causes or rather induces l an [[infinity]] of swirls, as in a liquid - for fundamentally every solid is in some degree [[liquid]], every liquid in some degree [[solid]] - and there is no way of ever entirely stopping this internal turbulence. Now you may believe that since the body is never without [[movement]], the soul which corresponds to it will never be without [[perception]] either.
[[[true]] [[power]]s are never simple [[possibility]]s; there is always [[endeavour]], and [[action]].
...there are [[imperceptible]] [[body]]s and [[invisible]] [[movement]]s... there are countless inconspicuous [[perception]]s, which do not stand out enough for one to be [[aware]] of or to remember them but which manifest themselves through their inevitable consequences.
[[unconscious]]
[[physics]]
[[U110]]
...[[thought]] need not stop just because one is not aware of it...
...in the [[confused]] [[state]] the [[soul]] would be without [[pleasure]] and [[pain]], for they are noticeable [[perception]]s.
[[unconscious]] [[U112]]
...[[beast]]s have imperishable [[soul]]s, and that no soul-[[human]] or otherwise-is ever without some [[body]]. I hold that [[God]] alone is entirely exempt from this because he is pure [[act]].
[[U113]]
Every [[impression]] has an effect, but the effects are not always noticeable. When I turn one way rather than another, it is often because of a series of tiny impressions of which I am not aware but which make one movement slightly harder than the other. All our undeliberated actions result from a [[conjunction]] of [[minute]] [[perception]]s; and even our customs and [[passion]]s, which have so much influence when we do deliberate, come from the same source; for these [[tendency]]s come into being gradually, and so without the -minute perceptions we would not have acquired these noticeable dispositions. I have already remarked [[U55/57]] that anyone who excluded these effects from moral philosophy would be copying the ill- informed people who exclude [[insensible]] [[corpuscle]]s from natural science...
[every impression has a [[multiplicity]] of effects, [[virtual]] and [[actual]]?]
there is always a perfect correspondence between the body and the soul, and since I use bodily impressions of which one is not aware, whether in sleep or waking states, to prove that there are similar impressions in the soul. I even maintain that something happens in the soul corresponding to the circulation of the blood and to every internal [[movement]] of the viscera, although one is unaware of such happenings, just as those who live near a water-mill are unaware of the noise it makes. The fact is that if during sleep or waking there were impressions in the body which did not touch or [[affect]] the soul in any way at all, there would have to be limits to the union of body and soul, as though bodily impressions needed a certain shape or size if the soul was to be able to feel them. And that is indefensible if the soul is incorporeal, for there is no relation of proportion between an [[incorporeal]] [[substance]] and this or that [[modification]] of [[matter]]. In short, many errors can flow from the belief that the only perceptions in the soul are the ones of which it is aware.
The body has counterparts of all the [[thought]]s of the soul, rational or otherwise, and [[dream]]s have [[trace]]s in the [[brain]] just as much as do the thoughts of those who are awake.
[[strata]] [[double articulation]] [[assemblage]] [[stratum]] [[unconscious]] [[U114]]
For anything which is noticeable must be made up of [[part]]s which are not: nothing, whether thought or motion, can come into existence suddenly. In short, it is as though someone were to ask, these days, how we know about [[insensible]] [[particle]]s.
[118]-a [[body]] that's [[extend]]ed always has [[part]]s [[differenciation]]
[[Difference and Repetition]] [[reciprocal determination]] [[perception]] [[U116]]
...we are never without [[idea]]s never without [[thought]]s, and never without [[sensation]]s either. But i distinguish ideas from [[thought]]s. For we always have our [[pure]] and [[distinct]] ideas independently of the [[sense]]s, but thoughts always correspond to some [[sensation]]
simple vs composite ideas
The [[mind]] must at least give itself its thoughts of [[reflect]]ion, since it is the mind which reflects. Whether it can shut them out is another matter; no doubt it cannot do so unless some circumstance prompts it to turn aside
[[digitus]] [[Spinoza]]
[[U117]]
...some [[idea]]s are [[simple]] and some [[composite]]. Thus, the warmth and softness of wax, the hardness and coldness of ice, provide simple ideas; for of these the [[soul]] has a uniform conception which is not distinguishable into different ideas. [ see [[U110]] re the word uniform]
THEOPHILUS. It can be maintained, I believe, that these [[sensible]] ideas appear simple because they are [[confuse]]d and thus do not provide the mind with any way of making discriminations within what they contain; just like distant things which appear rounded because one cannot discern their angles, even though one is receiving some confused impression from them. It is obvious that green, for instance, comes from a [[mix]]ture of blue and yellow; which makes it credible that the idea of green is composed of the ideas of those two colours, although the idea of green appears to us as simple as that of blue, or as that of warmth. So these ideas of blue and of warmth should also be regarded as simple only in appearance. I freely admit that we treat them as simple ideas, because we are at any rate not aware of any divisions within them; but we should undertake the ·analysis of them by means of further experiments, and by means of reason in so far ,they can be made more capable of being treated by the intellect.
[[U119]]
[[fluid]] [[physics]]
[[U120]]
That is why we say that the pain is in our [[body]] and
not in the pin, although we say that the light is in the fire; because there
are motions in the fire which the senses cannot clearly detect individually,
but which form a [[confuse]]ion - a running together - which is brought within
reach of the senses and is represented to us by the idea of light.
[[U123/128]]
when the
[[organ]] and the intervening [[milieu]] are properly constituted, the internal
bodily motions and the ideas which represent them to the soul resemble
the motions of the object which cause the colour, the warmth, the
pain etc.; or - what is here the same thing - they [[express]] the object
through some rather precise relationship; though this relation does not
appear [[distinct]]ly to us, because we cannot disentangle this multitude of
[[minute]] [[impression]]s, whether in our [[soul]] or in our [[body]] or in what lies
outside us.
[[perception]]
[[U132]]
I would prefer to [[distinguish]] between [[perception]] and being -[[aware]].
For instance, a perception of light or colour of which we are aware is made
up of many [[minute]] perceptions of which we are unaware; and a noise which
we perceive but do not attend to is brought within reach of our awareness
by a tiny increase or addition. If the previous noise had no effect on the
soul, this minute addition would have none either, nor would the total. (I
have already touched on this point at lI.i. II, 12, 15 etc.)
[[difference]] [[differential]] [[singularity]] [[threshold]]
[[U133]]
a painting can deceive us, by
means of an artful use of perspective. When bodies have flat surfaces they
can be depicted merely by means of their outlines, without use of shading,
painting them simply in the Chinese manner but with better proportions.
This is how drawings of medallions are usually done, so that the draftsman
can stay closer to the precise lineaments of the ancient originals. But such
a drawing, unaided by shading, cannot distinguish definitely between a
flat circular surface and a spherical surface - since neither contains any
[[distinct]] [[point]]s or distinguishing feature
[[singular]] [[singularity]] [[remarkable]]
[[U134]]
[[vivid]]-[[confuse]]d
[[U135]]
man in a coma and [[confuse]]ion
[[U137]]
Phil. 'The [[understanding]] is not much unlike a closet wholly shut
from light, with only some little openings left, to let in external visible [[resemblance]]s
([[image]]s); would the ([images]) [[picture]]s2 coming into such a dark room but stay there,
and lie so orderly as to be found upon occasion, it would very much
resemble the understanding of a man'.
Theo To increase the resemblance we should have to postulate that there
is a [[screen]] in this dark room to receive the [[sensible]] [[species]], and that it is not
uniform but is diversified by [[fold]]s representing items of [[innate]] [[knowledge]];
and, what is more, that this screen or [[membrane]], being under [[tension]], has
a kind of [[elastic]]ity or [[active]] [[force]], and indeed that it [[act]]s (or [[react]]s) in ways
which are adapted both to past folds and to new ones coming from
[[impression]]s of the species. This [[action]] would consist in certain [[vibration]]s
or [[oscillation]]s, like those we see when a cord under tension is plucked and gives off something
of a musical sound. For not only do we receive images
and [[trace]]s in the [[brain]], but we form new ones from them when we bring
'[[complex]] ideas' to [[mind]]; and so the screen which represents our brain
must be [[active]] and elastic. This analogy would explain reasonably well
what goes on in the brain. As for the [[soul]], which is a [[simple]] [[substance]] or
[[monad]]': without being [[extend]]ed it represents these various extended
[[mass]]es and has [[perception]]s of them
[[U143/144]]
[[simple]] vs [[complex]] substances, unity of the [[aggregate]] [[mix]]ed [[mode]]s of substance as being considered as [[relation]]s rather than a simple substance
[[U145]]
[[extension]] is an
abstraction from the [[extended]], and the extended is a [[continuum]] whose
[[part]]s are [[coexistent]], i.e. exist at the same time.
[[intensive]]=an un[[fold]]ing, [[actual]]=coexistent parts in an extended continuum? [[Deleuze]] [[Difference and Repetition]]
[[U146]]
I
distinguish [[matter]] from [[extension]]...
If the [[world]] were full of [[hard]] [[particle]]s which could be neither bent
nor divided, as [[atom]]s are represented, then [[motion]] would indeed be
impossible. But in fact [[hard]]ness is not fundamental; on the contrary
[[fluid]]ity is the fundamental [[condition]], and the division into [[body]]es is carried
out - there being no obstacle to it - according to [our] need. That takes all
force away from the argument that there must be a vacuum because there
is [[motion]].
[[physics]] [[Difference and Repetition]]
[[U149]]
strictly speaking, [[point]]s and [[instant]]s are not [[part]]s of [[time]] or
[[space]], and do not have parts either. They are only [[termini]].
[[U151]]
[[time]] and [[space]] indicate possibilities beyond any
that might be supposed to be [[actual]]. Time and space are of the nature of
[[eternal]] [[truth]]s, which equally concern the [[possible]] and the [[actual]].
interesting [[perception]] lines in 153 but ultimately not worth copying out
one can say that the idea of
the [[absolute]]
in the nature of
to that of the [[limit]]s which we
contribute, but we come to notice the former only by starting with
whatever is limited and strikes our senses.
moving from the actual and/or the intensive, that is, the [[sensible]], to the [[virtual]]?
[[intensive]] [[virtual]] [[Difference and Repetition]] [[physics]]
[[U152]]
If [[God]] were [[extend]]ed he would have [[part]]s. But [[duration]]
confers parts only on his operations. However, where space is in question
we must attribute immensity to God, and this also gives parts and order
to his immediate operations. He is the source of possibilities and of
existents alike, the one by his essence and the other by his will. So that
space like time derives its reality only from him, and he can fill up the void
whenever he pleases. It is in this way that he is omnipresent.
[[Difference and Repetition]] [[extension]] [[actual]] [[differenciation]]
[[U154]]
[[intensity]] and [[degree]]s and [[color]]
[[U155]]
No doubt [[thinking]] is an [[action]], and cannot be the essence; but it
is an essential action, and such actions occur in all [[substance]]s. I have shown
above [pp. I115f] that we always have an [[infinity]] of [[minute]] [[perception]]s
without being aware of them. We are never without perceptions, but
necessarily we are often without ·[[awareness]], namely when none of our
perceptions stand out. It is because that important point has been
neglected that so many good minds have been conquered by a loose
philosophy - one as ignoble as it is flimsy - and that until very recently we
have been ignorant of all that is finest in the soul. And that is why people
have found so plausible the erroneous doctrine that [[soul]]s are by nature
perishable
[[U159]]
That is why the infinitely wise Author [ [[God]] ]
of our being was acting in our interests when he brought it about that we
are often ignorant and subject to [[confuse]]d [[perception]]s - so that we could
act the more quickly by [[instinct]], and not be troubled by excessively [[distinct]]
[[sensation]]s of hosts of objects which, necessary though they are to nature's
plan, are not entirely agreeable to us. How many insects we swallow
without being aware of it, how many people we observe who are
inconvenienced by having too fine a sense of smell, and how many
disgusting objects we would see if our eyesight were keen enough! By the
same device, nature has given us the spurs of [[desire]] in the form of the
rudiments or elements of [[suffer]]ing, semi-suffering one might say, or (to
put it extravagantly just for the sake of emphasis) of [[minute]] sufferings of
which we cannot be aware. This lets us enjoy the benefit of discomfort without
enduring its inconveniences; for otherwise, if this perception were too
distinct, one would always be miserable when looking forward to something
good; whereas our continual victory over these semi-sufferings - a victory
we feel when we follow our desires and somehow satisfy this or that
appetite or itch - provides us with many semi-pleasures; and the continuation and accumulation of these (as with the continuing thrust of a heavy
body gaining impetus as it falls) eventually becomes a whole, genuine
pleasure. In fact, without these semi-sufferings there would be no pleasure
at all, nor any way of being aware, that something is helping and relieving
us by removing obstacles which stand between us and our ease.
166 has a sort of [[desiring-machine]]s type description of [[becoming]] and our base psychical state [[4E cognition]]
[[U162]]
The [[Stoic]]s took the [[passion]]s to be [[belief]]s: thus for them
hope was the belief in a future good, and fear the belief in a future evil.
But I would rather say that the [[passion]]s are not contentments or
displeasures or beliefs, but [[endeavor]]s - or rather [[modification]]s of
endeavour - which arise from beliefs or opinions and are accompanied by
pleasure or displeasure.
[[event]] [[becoming]] [[metaphysics]] [[Spinoza]] [[Logic of Sense]] [[mode]]
[[U165]]
If men were more thorough in observing the [[overt]] [[movement]]s which
accompany the [[passion]]s, it would be hard to disguise them
[[psychology]] [[emotion]]s [[physical]]
[[U167]]
If' [[power]]' corresponds to the Latin [[potentia]], it is contrasted
with' act', and the transition from [[power]] into [[act]] is 'change'. That is what
Aristotle means by the word '[[movement]]', when he says that movement
is the act - or perhaps the actualizing - of that which has the power to be
[Physics III, 201&10]' Power in general, then, can be described as the
possibility of change. But since change - or the [[actualization]] of that
[[possibility]] - is action in one subject and [[passion]] in another, there will be
two powers, one [[active]] and one [[passive]]. The active power can be called
'faculty', and perhaps the passive one might be called 'capacity' or
'receptivity'. It is true that active power is sometimes understood in a
fuller sense, in which it comprises not just a mere faculty but also an
endeavour; and that is how I take it in my theorizing about [[dynamics]] [e.g.
'Dynamics: a summary' pp. 43Sf]. One could reserve the word 'force'
for that. Force would divide into' entelechy' and' effort'; for although
Aristotle takes' entelechy' so generally that it comprises all action and all
effort, it seems to me more suitable to apply it to primary acting forces, and
'effort' to derivative ones. There is, furthermore, a more special kind of
passive power which carries more reality with it: it is a power which matter
has, for matter has not only mobility (i.e. the capacity for or receptivity
to movement) but also resistance, which includes both impenetrability and
inertia. When an entelechy - i.e. a primary or substantial endeavour - is
accompanied by [[perception]], it is a [[soul]].
[[Difference and Repetition]] [[virtual]] [[actual]] [[intensive]] [[differenciation]] [[differentiation]] [[dynamics]]
[[U168]]
[[sensible]] [[quality]]s as [[composite]] not [[simple]]
[[Difference and Repetition]] [[intensive]] [[difference]] [[intensity]]
[[U169]]
My own view is that this opinion about what we don't know springs
from a demand for a way of knowing which the object does not admit of.
The true [[sign]] of a [[clear]] and [[distinct]] notion is one's having means for giving
[[a priori]] proofs of many truths about it. I showed this in a paper about truths
and ideas which was published in 1684 in the Acta of Leipzig [' Meditations
on knowledge, truth and ideas'].
[[U170]]
It is indeed rather hard to explain [[cohesion]]. But this cohesion of
[[part]]s appears not to be necessary to make an [[extend]]ed [[whole]], since
perfectly [[rare]]fied and [[fluid]] [[matter]] may be said to make up an extended
thing, without its parts being joined to one another. In fact, though, I think
that perfect fluidity is appropriate only to [[prime]] [[matter]] (i.e. matter in
the abstract), considered as an original [[quality]] like motionlessness. But it
does not fit secondary matter - i.e. matter as it actually occurs, invested with
its derivative qualities - for I believe that no [[mass]] is ultimately rarefied and
that there is some degree of [[bond]]ing everywhere. This is produced by
motions, when they all run the same way so that any division would have
to set up cross-currents, which cannot happen without some turbulence
and resistance. I would add that the nature of [[perception]], and secondly
of [[thought]], provides us with a notion of [qualities of] an extremely original
kind. On this, however, I believe that the doctrine of substantial unities-
[[monad]]s - will throw a good deal of [[light]].
It seems to me that if a [[body]] has (as I believe all bodies always do have)
internal [[movement]]s going on in it, i.e. if its parts are engaged in pulling
away from one another, it is still extended for all that. So the [[notion]] of
[[extension]] appears to me to be totally different from that of cohesion.
[[physics]] [[intensive]]
[[U219]]
'It is worth our consideration, whether [[active]] [[power]] be not the
proper [[attribute]] of spirits, and [[passive]] power of [bodies). Hence may be
conjectured, that created spirits are not totally separate from matter, because
they are both active and passive. Pure spirit, viz. God, is only active; pure
[[matter]] is only passive; those beings that are both active and passive we may
judge to partake of both.'
[[action]] [[passion]] [[body]]
[[U223]]
227/228 is about [[relation]]s
we can think of black, for
instance, without thinking of its cause, but that involves staying within the
limits of the knowledge which comes to one straight away, which is either
[[confuse]]d (when one has no analysis of the idea) or [[distinct]] but incomplete
(when one has only a limited analysis). But there is no term which is so
absolute or so detached that it does not involve relations and is not such
that a complete analysis of it would lead to other things and indeed to all
other things. Consequently, we can say that 'relative terms' explicitly
indicate the relationship which they contain.
[[U225]]
In fact, an [[organic]] [[body]] does
not remain the same for more than a moment; it only remains equivalent.
And if no reference is made to the [[soul]], there will not be the same [[life]],
nor a '[[vital]]' [[unity]], either. So the [[identity]] in that case would be merely
apparent.
[[U228]]
thing, a single individual substance can retain
its [[identity]] only by preservation of the same [[soul]], for the [[body]] is in
continual [[flux]] and the soul does not reside in certain [[atom]]s which are
reserved for it or in some little indestructible bone, like the luz of the
rabbins. However, there is no '[[transmigration]]' in which the soul entirely
abandons its body and passes into another. Even in [[death]] it always retains
an [[organic]] [[body]], part of its former one, although what it retains is always
subject to wasting away insensibly and to restoring itself, and even at a
given time to undergoing a great change. Thus, instead of transmigration
of the soul there is reshaping, in[[fold]]ing, [[unfold]]ing, and [[flow]]ing, in the
soul's body.
[[U232]]
I would rather say that the I and the he are without [[part]]s, since we
say, quite correctly, that he continues to exist as really the same [[substance]],
the same physical [[I]]; but we cannot say with complete fidelity to the truth
of things ~ that the same whole continues to exist if a part of it is lost. And
what has bodily parts cannot avoid losing some of them at every moment.
[[body]] [[extension]] [[actual]] [[Difference and Repetition]] [[quality]]
[[U233]]
[[insensible]] [[perception]]s, whose usefulness I have shown in so many
other important connections, serve a purpose here too - preserving the
seeds of [[memory]].
[[virtual]] [[minute]]
[[U238]]
In a short discussion of ideas - true and false, [[clear]] and
[[obscure]], [[distinct]] and [[confuse]]d - which appeared in 1684 in the Acta of
Leipzig [' Meditations on knowledge, truth and ideas '], I gave a definition
of 'clear idea' which applied both to [[simple]] and to [[composite]] ideas; and
it provides an explanation for what is said about them here. I say, then,
that an idea is clear when it enables one to recognize the thing and
[[distinguish]] it from other things. For example, when I have a really clear
idea of a [[color]] I shall not accept some other colour in place of it; and if
I have a clear idea of a plant, I shall pick it out from others which are close
to it - if I cannot, the idea is obscure. I believe that we have hardly any
perfectly clear ideas of [[sensible]] things: some colours are alike in such a
way that one cannot tell them apart in [[memory]] but will sometimes tell them
apart when they are laid side by side
[[U240]]
On this account of what a 'distinct' idea is, I do not see how to dis-
tinguish it from a 'clear' one. So in this matter I always follow M. Descar-
tes's language: for him an idea can be at once ·clear and confused, as are
the ideas of [[sensible]] [[quality]]s which are associated with particular [[organ]]s,
e.g. the [[Idea]]s of [[color]] and of warmth. They are clear, because we recognize
them and easily tell them from one another; but they are not distinct,
because we cannot [[distinguish]] their [[content]]s. Thus, we cannot define these
ideas: all we can do is to make them known through examples; and, beyond
that, until their inner structure has been deciphered we have to say that
they are a je ne sais quoi.
Thus, although according to us distinct ideas
distinguish one object from another, so also do ideas which are clear though
in themselves confused; so we do not call 'distinct' all the ideas which
are distinguishing (i.e. which distinguish objects), but only those which
are distinguished, i.e. which are in themselves distinct and which distinguish in the object the marks which make it known, thus yielding an
analysis or definition. Ideas which are not like this we call' confused'. On
this view, we are not to blame for the confusion which reigns among our
ideas, for this is an imperfection in our nature: to be able to pick out the
causes of odours and tastes, for instance, and the content of these qualities,
is beyond us. But I am to blame for the confusion in a case where distinct
ideas are within my power and it matters that I should have them, for
example if I accept spurious gold as genuine because I have not conducted
the tests which bring out the marks of real go
[[Difference and Repetition]] [[clear]] [[confused]] [[distinct]] [[obscure]]
[[U255]]
[261] You will agree with me, though, that composite ideas may' be
very clear and distinct in one part, and very obscure and confused in
another.' [from Locke]
[262]
That example shows that the idea is being confounded with the
image. If I am confronted with a regular polygon, my eyesight and my
imagination cannot give me a grasp of the thousand which it involves: I
have only a confused idea both of the figure and of its number until I
distinguish the number by counting. But once I have found the number,
I know the given polygon's nature and properties very well, in so far as
they are those of a chiliagon. The upshot is that I have this idea of a
chiliagon, even though I cannot have the image of one: one's senses and
imagination would have to be sharper and more practised if they were to
enable one to distinguish such a figure from a polygon which had one side
less. But knowledge of figures does not depend upon the imagination, any
more than knowledge of numbers does, though imagination may be a help;
and a mathematician may have precise knowledge of the nature of nine- and
ten-sided figures, because he has means for constructing and studying
them, yet not be able to tell one from the other on sight. The fact is that
a labourer or an engineer, perhaps knowing little enough of the nature of
the figures, may have an advantage over a great geometrician in being able
to tell them apart just by looking and without counting; just as there are
porters and pedlars who will say what their loads weigh, to within a
pound - the world's ablest expert in statics could not do as well. It is true
that this empiric's kind of knowledge, gained through long practice, can
greatly facilitate swift action such as the engineer often needs in emergencies
where any delay would put him in danger. Still, this clear image that one
may have of a regular ten-sided figure or of a 99-pound weight - this
accurate sense that one may have of them - consists merely in a confused
idea: it does not serve to reveal the nature and properties of the figure or
the weight; that requires a distinct idea. The point of this example is to
bring out the difference between ideas, or rather between ideas and images.
[[Difference and Repetition]] [[clear]] [[confused]] [[distinct]] [[obscure]]
[[differenciation]] or [[differenciate]] to clear up confusion
[[U256]]
We have a 'comprehensive', i.e. accurate, idea of [[eternity]], since we
have the definition of it, although we have no image of it at all. But ideas
of [[infinite]]s are not formed by the assembling of '[[part]]s'; and the mistakes
people make when reasoning about the infinite do not arise from their
having no [[image]] of it.
[two paras later]
There
are no images of size, in itself; and the images of it which we do have depend
merely on comparing things with our organs and with other objects.
an idea
can have a foundation in nature without 'conforming' to that foundation,
as when it is said that our ·[[sensation]]s of [[color]] and warmth do not
resemble any pattern or archetype. An [[Idea]] is real, also, if it is [[possible]],
even when nothing actual corresponds to it. Otherwise the idea of a species
would become 'chimerical' if all the members of the [[species]] went out of
existence.
[[real]] without being [[actual]]-what is it-[[pure]] [[virtuality]]? [[clear]] [[distinct]] [[confused]] [[obscure]] [[potential]]
real without being actual is a definition of [[virtual]]
[[U262]]
I have also uysed the analogy of a [[vein]]ed block of [[marble]], as opposed to an entirely homogenous block... that [veined] block would be more determined to that shape and hercules would be innate in it... This is how [[idea]]s and [[truth]]s are innate in us-as inclinations, dispositions, [[tendency]]s, or natural [[potential]]ities, and not as [[actual]]itys; although these potentialities are always accompanied by certain actualities, often insensible ones, which correspond to them
[53]Where could tablets be found which were completely unifrom? Will a perfectly homogenous and even [[surface]] ever be seen?
[[New Essays on Human Understanding]]
For I maintain that in the natural course of things no [[substance]] can lock activity, and indeed that there is never a [[body]] without [[movement]]...
there are no [[atom]]s... at every moment there is in us an [[infinity]] of [[perception]]s unaccompanied by [[awareness]] or [[reflection]]; that is, of alterations in the [[soul]] itself, of which we are unaware because these [[impression]]s are either too minute and too numerous, or else too unvarying, so that they are not [[sufficient]]ly [[distinct]]ive on their own. But when they are combined with others they do nevertheless have their effect and make themselves felt, at least [[confused]]ely within the [[whole]].
This is how we become so accustomed to the motion of a mill or a waterfall, after living beside it for a while, that we pay no heed to it. Not that this motion ceases to strike on our sense-organs, or that something corresponding to it does not still occur in the soul because of the harmony between the soul and the body; but these impressions in the soul and the body, lacking the appeal of novelty, are not forceful enough to attract our attention and our memory, which are applied only to more compelling objects. Memory is needed for attention: when we are not alerted, so to speak, to pay heed to certain of our own present perceptions, we allow them to slip by unconsidered and even unnoticed. But if someone alerts us to them straight away, and makes us take note, for instance, of some noise which we have just heard, then we remember it and are aware of just having had some sense of it. Thus, we were not straight away aware of these perceptions, and we became aware of them only because we were alerted to them after an interval, however brief. To give a clearer idea of these [[minute]] perceptions which we are unable to pick out from the crowd, I like to use the example of the roaring noise of the sea which impresses itself on us when we are standing on the shore. To hear this noise as we do, we must hear the parts which make up this whole, that is the noise of each wave, although each of these little noises makes itself known only when combined confusedly with all the others, and would not be noticed if the wave which made it were by itself. We must be affected slightly by the motion of this wave, and have some perception of each of these noises, however faint they may be; otherwise there would be no perception of a hundred thousand waves, since a hundred thousand nothings cannot make something. Moreover, we never sleep so soundly that we do not have some feeble and confused ·[[sensation]]; and the loudest noise in the world would never waken us if we did not have some perception of its start, which is small, just as the strongest force in the world would never break a rope unless the least force strained it and stretched it slightly, even though that little lengthening which is produced is [[imperceptible]].
[[U52]]
These [[minute]] [[perception]]s, then, are more effective in their results than has been recognized. They constitute that je ne sais quoi, those flavours, those images of [[sensible]] [[quality]]s, vivid in the [[aggregate]] but [[confuse]]d as to the [[part]]s; those [[impression]]s which are made on us by the [[body]]s around us and which involve the [[infinite]]; that [[connect]]ion that each being has with all the rest of the [[universe]]. It can even be said that by virtue of these minute perceptions the [[present]] is big with the : and burdened with the [[past]], that all things harmonize - sympnoia panta, as ·Hippocrates put it - and that eyes as piercing as [[God]]'s could read in the lowliest substance the universe's whole sequence of events - 'What is, what was, and what will soon be brought in by the future' [Virgil).
These [[insensible]] perceptions also indicate and constitute the same [[individual]], who is characterized by the vestiges or [[expression]]s which the perceptions preserve from the individual's former states, thereby connecting these with his present state. Even when the individual himself has no sense of the previous states, i.e. no longer has any explicit [[memory]] of them, they could be known by a superior mind. But those perceptions also provide the means for recovering this memory at need, as a result of successive improvements which one may eventually undergo. That is why [[death]] can only be a sleep, and not a lasting one at that: the perceptions merely cease to be [[sufficient]]ly [[distinct]]; in animals they are reduced to a state of [[confusion]] which puts awareness into abeyance but which cannot last for ever; and I shall not here discuss the case of man, who must in this regard have special prerogatives for safeguarding his personhood. I t is also through insensible perceptions that I account for that marvellous pre-established [[harmony]] between the soul and the body, and indeed amongst all the [[monad]]s or [[simple]] [[substance]]s, which takes the place of an untenable influence of one on another and, in the opinion of the author of the finest of dictionaries [·Bayle], exalts the greatness of divine perfection beyond anything previously conceived. It would not be adding much to that if I said that it is these minute perceptions which determine our behaviour in many situations without our thinking of them, and which deceive the unsophisticated with an appearance of indifference oj equilibrium - as if it made no difference to us, for instance, whether we turned left or right. I need not point out here, since I have done so in the work itself [pp. 164-6, 188f], that they cause that disquiet which I show to consist in something which differs from ·suffering only as small from large, and yet which frequently causes our desire and even our pleasure, to which it gives a dash of spice. They are also the insensible parts of our sensible perceptions, which bring it about that those perceptions of colours, warmth and other sensible qualities are related to the motions in bodies which correspond to them; whereas the Cartesians (like our author, discerning as he is), regard it as arbitrary what perceptions we have of these qualities, as if God had given them to the soul according to his good pleasure, without concern for any essential relation between perceptions and their objects. This is a view which surprises me and appears unworthy of the wisdom of the author of things, who does nothing without harmony and reason. In short, insensible perceptions are as important to ·[[pneumatology]] as insensible [[corpuscle]]s are to ·natural science, and it is just as unreasonable to reject the one as the other on the pretext that they are beyond the reach of our senses. Nothing takes place suddenly, and it is one of my great and best confirmed maxims that nature never makes leaps. I called this the [[law]] of [[continuity]] when I discussed it formerly in the Nouvelles de la republique des lettres [' Letter on a general principle useful in explaining the laws of nature ']. There is much work for this law to do in natural science. It implies that any change from small to large, or vice versa, passes through something which is, in respect of degrees as well as of parts, in between; and that no motion ever springs immediately from a state of rest, or passes into one except through a lesser motion; just as one could never traverse a certain line or distance without first traversing a shorter one. Despite which, until now those who have propounded the laws of motion have not complied with this law, since they have believed that a body can instantaneously receive a motion contrary to its preceding one. All of which
supports the judgment that noticeable perceptions arise by [[degree]]s from ones which are too [[minute]] to be noticed. To think otherwise is to be ignorant of the immeasurable fineness of things, which always and everywhere involves an [[actual]] infinity...
in consequence of imperceptible [[variation]]s no tow individual things could be perfectly alike, and that they must always differ more than numerically. This puts an end to the blank tablets of the soul, a soul without [[thought]],a substance without action, empty space, [[atom]]s and even to portions of matter which are not actually divided, and also to absolute rest, completly uniform parts of [[time]] or place or matter,... and hundreds of other fictions which have arisen from the incompleteness of philosophers' notions. The escape challenge because of our ignorance and our neglect of the [[insensible]]...
All we can do with infinities is to know them [[confused]]ly and at least to know [[distinct]]ly that they are there.
[[individuation]] [[difference]] [[U54]]
This [[knowledge]] of [[insensible]] [[perception]]s also explains [individuality of souls] each of them having its own inherent [[relation]] to the [[point of view]] which it will have in the [[universe]].
[[U55/57]]
...we should think of [[space]] as full of [[matter]] which is initially [[fluid]], capable of every sort of [[division]], and indeed [[actual]]ly divided and subdivided to [[infinity]]: but with this [[difference]], that how it is divisible and divided varies from place to place, because of [[variation]]s in the extent to which the [[movement]]s in it are more or less [[harmonious]]. That is what brings it about that [[matter]] has everywhere some [[degree]] of [[rigid]]ity as well as of fluidity, and that no [[body]] is ether hard or fluid in the ultimate [[degree]]-we find in it no invincibly hard [[atom]]s and no [[mass]] which can be divided as easily in any manner as in any other. The [[order]] of [[nature]], and in [[particular]] the [[law]] of [[continuity]], equally pull down both alternatives.
[[u58]]
You must admit though, that the inclination we have to recognize the [[idea]] of [[God]] is part of our human nature.... men's receptiveness to this doctrine comes from the [[nature]] of their [[soul]]s... teaching from outside merely brings to life what was already in us.
[[U60]]
[[memory]] [[Difference and Repetition]] the [[virtual]]ity of memory
...we are always aware of all the [[truth]]s that are in our [[soul]]...if one can maintain the [[innate]]ness of any particular [[proposition]], then... all [[proposition]]s which are reasonable, and which the mind will be able to regard as such, are already imprinted on the soul.[78] some may be easier or harder for a given soul to bring into the light
[[U76]]
[[necessary]] truths are [[innate]], and truths of [[fact]] are established by [[experience]]
[[U77]]
[[explicit]] [[knowledge]] of [[truth]]s is subsequent (in [[temporal]] or natural [[order]]) to the explicit knowledge of [[idea]]s.
[[U79]]
For general [[principle]]s enter into our thoughts, serving as their inner core and as their mortar. Even if we give no thought to them, they are [[necessary]] for thought, as muscles and tendons are for walking. The mind relies on these principles constantly; but it does not find it easy to sort them our and to command a [[distinct]] [[view]] of each of them separately, for that requires great [[attention]] to what one is doing...
[[U81]]
"For [[thought]]s are [[action]]s whereas [[item]]s of [[knowledge]] (or [[truth]]s), in so far as they are within us even when we do not think of them, are [[tendency]]s or [[disposition]]s; and we know many things we scarcely think about."
side effect: we may have truths within us we never uncover
[[U84]]
[[morality]] has indemonstrable [[principle]]s, of which one... is that we should pursue [[joy]] and avoid [[sorrow]], it must be added that this is not a [[truth]] known from [[reason]], since it is based on inner [[experience]]-on [[confuse]]d [[knowledge]]; for one only senses what joy and sorrow are.
[[U86]]
...certain rules of [[justice]] can be demonstrated in their full extent and perfection only if we assume the existence of [[God]] and the immortality of the [[soul]], and that those to which the instinct of humanity does not impel us to are engraved in the soul only as other derivative [[truth]]s are....
Now, an inclination which is [[expressed]] by the [[understanding]] becomes a [[precept]] or [[natural]] truth; and if the inclination is [[innate]] then so also is the [[truth]]-there being nothing in the [[soul]] which is not expressed in the understanding, although not always in [[distinct]] [[actual]] thinking...
[[U89]]
Again, it is a natural feeling that has brought about the [[tradition]] that there is a [[God]].
[[U90]]
...every [[feeling]] is the [[perception]] of a [[truth]], and that natural feeling is the perception of an [[innate]] truth, though very often a [[confused]] one as are the [[experience]]s of the outer senses. Thus innate truths can be distinguished from the [[natural light]] (discussed from 90--93, a sort of natural light that tends thought towards the true] (which contains only what is [[distinct]]ly knowable) as a genus should be distinguished from its species, since innate truths comprise instincts as well as the natural light.
[[U93]]
...every [[innate]] [[truth]] is [not] known always and by everyone.
[[U94]]
-The nature of groups: there exist many contradictory ways for actors to be given and identity; "in any controversy about group formation-including academic disputes-some items will always be present: groups are made to talk; anti-groups are mapped; new resources are fetched so as to make their [[boundary]]s more durable; and professionals with their highly specialized paraphernalia are mobilized." [[RTS p31-1]] following pages elaborate
-the nature of actions: in each course of action a great variety of agents seem to barge in and displace the original goals; Although we never know for sure who and what is making us act, we can define a list of features which are always present in contradictory arguments about what has happened; agencys are always part of an account; they are given a figure of some sort; they are opposed to other competing agencies; and finally they are accompanied by some explicit theory of action. [[RTS p52-1]]
-the nature of objects: the type of agencies participating in interaction seems to remain wide open;
-the nature of facts; the links of natural science with the rest of society seems to be the source of continuous disputes;
-and, finally, about the type of studies done under the label of a science of the social as it seems it is never clear in which precise sense social sciences can be said to be empirical.
I have chosen 'uncertainties'-in a weak allusion to the 'uncertainty principle'-because it remains impossible to decide whether it resides in the observer or in the phenomenon observed. As we will see, its never the case that the analyst knows what the actors ignore, nor is it the case that the actors know what the observer ignores. This is the reason why the social needs to be reassembled.
[[RTS p22-2]]
[[unconditioned response]] (UR)
• A response elicited (caused) by
• an unconditioned stimulus.
[[unconditioned stimulus]] (US)
• A stimulus that elicits (causes) a response
• without previous pairing with another stimulus.
[[molecule]]
[[matter]]
[[particle]]
[[element]]
[[unformed]]
[[flow]]s
All these terms are related in some way, they appear at this moment as being related to types of matter prior to stratification, or [[destratified]]
[[strata]]
[[stratum]]
You were always here, weren't you?
Tiddlers have two sides to them: a viewing mode and an editing mode.
!Viewing mode
*The buttons at the top right of the tiddler are called the 'viewtoolbar'.
**<<icon {{$:/core/images/edit-button}} "">> takes you to editing mode
**<<icon {{$:/core/images/close-button}} "">> closes the tiddler. It is now hidden but you can search for it in the searchbar or the tabs.
**<<icon {{$:/core/images/down-arrow}} "">> opens a menu of other buttons.
**You will find out about the other buttons in another step.
!Editing mode
*In editing mode you can change the tiddler title, add tags, add text, and make other advanced changes.
*<<icon {{$:/core/images/chevron-down}} "">> opens a dropdown we will explain in the 'Advanced stuff' tab
*<<icon {{$:/core/images/delete-button}} "">> deletes the tiddler
*<<icon {{$:/core/images/cancel-button}} "">> cancels changes made to the tiddler and returns to viewing mode
*<<icon {{$:/core/images/done-button}} "">> saves changes and returns to viewing mode
<span class="bluebox">
''Activity:''
Click the <<icon {{$:/core/images/edit-button}} "">> icon in the top right corner of the Welcome to Stroll tiddler to go into editing mode and see what it looks like. Then click either the <<icon {{$:/core/images/cancel-button}} "">> button or the <<icon {{$:/core/images/done-button}} "">> button and return to viewing mode.
</span>
[[implicit presupposition]]s? [[order-words]]? All the [[linguistic]] and [[nonlingustic]] factors internal to [[enunciation]]? I think it's all of the above.
[[variables of content]]
[[textual]] behavior is so strongly reinforced that one is likely to find oneself reading not only letters, books, and newspapers, but unimportant labels on packages, subway [[advertisement]]s, and billboards. Automatic consequences are used to motivate the beginning reader when a textbook is designed to be “interesting.” Such reinforcement is not, however, contingent upon accuracy of response in the manner needed to shape skillful behavior.
[[VB98]]
A basic repertoire at approximately the level of the single letter or speech sound may develop slowly when only larger units are reinforced, but as in echoic behavior it nevertheless appears without special guidance.
[[emergence]]
[[VB100]]
In echoic behavior, the correspondence upon which [[reinforcement]] is based may serve as an [[automatic]] conditioned reinforcer. The speaker who is also an accomplished listener “knows when he has correctly echoed a response” and is reinforced thereby
[[essay]]
Reading a text which one has written oneself is so common that its importance may be missed. We frequently create a text (“make a note”) to control our own behavior at a later date
[[VB102]]
Any one link in a [[chain]] of [[intraverbal]] responses is not under the exclusive [[control]] of the preceding link. We see this when a chain (such as saying the alphabet, giving the value of e to twenty places, or reciting a poem) has been interrupted and cannot be reinstated by the last [[emit]]ted link. A running start picks up more remote controlling stimuli and may be effective.
[[quote]]
[[VB103]]
The reinforcements which establish [[intraverbal]] operants are often quite obvious and specific. The contingencies are the same as in [[echoic]] and [[textual]] behavior: a verbal stimulus is the occasion upon which a particular [[verbal]] response characteristically receives some sort of generalized reinforcement
[[generalized conditioned reinforcer]]
[[VB107]]
For example, educational reinforcement sets up many different [[intraverbal]] [[operant]]s involving the [[cardinal]] [[number]]s. Four is part of the occasion for five in learning to count, for six in learning to count by twos, for one in learning the value of π, and so on. On the other hand, many different [[verbal]] stimuli come to [[control]] the response four, e.g., one, two, three... or two times two make.... Many different connections between verbal responses and verbal stimuli are established when different passages are memorized and different “facts” acquired.
We may assume, on the contrary, that, aside from intraverbal sequences specifically acquired, a verbal stimulus will be an occasion for the reinforcement of a verbal response of different [[form]] when, for any reason, the two forms frequently occur together. A common reason is that the nonverbal circumstances under which they are emitted occur together. [two different forms=different topographies [?] so this could be small talk described?]
[[VB108]]
If logical or causal connections have any relevance, it is in describing the conditions which produce these contextual properties of the physical [[world]]...
The more [[complex]] the [[stimulus]] [[pattern]], the more specific the [[verbal]] occasion, and the stronger the [[control]] exerted over a single [[response]]
[[quote]]
[[VB109]]
In all [[verbal]] behavior under [[stimulus control]] there are three important events to be taken into account: a [[stimulus]], a [[response]], and a [[reinforcement]]. These are contingent upon each other, as we have seen, in the following way: the stimulus, acting prior to the emission of the response, sets the occasion upon which the response is likely to be reinforced. Under this [[contingency]], through a process of [[operant discrimination]], the stimulus becomes the occasion upon which the response is likely to be emitted.
There are two important types of controlling stimuli which are usually nonverbal. One of these has already been mentioned: an [[audience]] characteristically controls a large group of responses through a process to be discussed in detail in Chapter 7. The other is nothing less than the whole of the physical [[environment]]—the [[world]] of things and events which a speaker is said to “talk about.” Verbal behavior under the control of such stimuli is so important that it is often dealt with exclusively in the study of language and in theories of meaning
The invented term “[[tact]]” will be used here. The term carries a mnemonic suggestion of behavior which “makes contact with” the physical world. A tact may be defined as a verbal [[operant]] in which a response of given [[form]] is evoked (or at least strengthened) by a particular object or event or property of an object or event. We account for the strength by showing that in the presence of the object or event a response of that form is characteristically reinforced in a given verbal community.
[[VB110]]
The only useful functional relation is expressed in the statement that the presence of a given stimulus raises the [[probability]] of occurrence of a given [[form]] of response. This is also the essence of the [[tact]].... serves no useful purpose, and may be misleading, to call a tact an “announcement,” “declaration,” or “proposition,” or to say that it “states,” “asserts,” or “denotes” something, or that it “makes known” or “communicates” a condition of the stimulus
[[VB115]]
The [[tact]] emerges as the most important of [[verbal operant]]s because of the unique control exerted by the prior stimulus. This control is established by the reinforcing [[community]] for reasons to be noted in a moment. It contrasts sharply with the controlling relations in the [[mand]], where the most efficient results are obtained by breaking down any connection with prior stimuli, thus leaving deprivation or aversive stimulation in control of the response. Either explicitly or as the effect of common contingencies, a response is reinforced in a single way under many different stimulating circumstances. The response then comes to “specify” its characteristic consequences regardless of the condition under which it occurs. In the tact, however, (as well as in echoic, textual, and intraverbal behavior) we weaken the relation to any specific [[deprivation]] or [[aversive]] stimulation and set up a unique relation to a [[discriminative stimulus]]. We do this by reinforcing the response as consistently as possible in the presence of one stimulus with many different reinforcers or with a [[generalized conditioned reinforcer]]. The resulting control is through the stimulus. [[stimulus control]]
A given response “specifies” a given stimulus property. This is the “reference” of semantic theory. Roughly speaking, the mand permits the listener to infer something about the condition of the speaker regardless of external circumstances, while the tact permits him to infer something about the circumstances regardless of the condition of the speaker. These “inferences” need to be more sharply represented by analyzing the reinforcing practices of the community which maintain mands and tacts in strength. A tact which is established with a completely generalized reinforcement might be called “pure” or “objective.” Whether the response is emitted at all may depend upon other variables; but whenever it is emitted, its form is determined solely by a specific feature of the stimulating environment
[[VB115]]
The relative [[frequency]] with which the [[listener]] engages in effective action in responding to behavior in the form of the tact will depend upon the extent and accuracy of the [[stimulus control]] in the [[behavior]] of the [[speaker]]
also discusses why the [[tact]] is not a [[symbol]]
[[VB116]]
If a [[response]] is [[reinforce]]d upon a given occasion or class of occasions, any feature of that occasion or common to that class appears to gain some measure of [[control]]. A novel [[stimulus]] possessing one such feature may evoke a response. There are several ways in which a novel stimulus may resemble a stimulus previously present when a response was reinforced, and hence there are several types of what we may call “extended [[tact]]s.”
He goes on to discuss extension vs metaphor vs metonymy. Notions of [[stimulus control]] and [[induction]] abound.
[[VB122]]
the basic [[formula]] is simple: manipulate stimuli and, through the presence or absence of the response, identify the effective controlling properties. Laboratory [[experiment]]s in concept formation follow this pattern by setting up and testing for the presence of abstract tacts in an artificial verbal community
[[VB125]]
From such behavior there eventually [[emerge]]s a basic [[repertoire]] of smaller functional [[unit]]s also at the level of the word. The child who has acquired the responses I have a doll and I have a kitten upon separate occasions may show some functional unity in the expression I have a ... which is later combined with novel responses under novel circumstances—for example, when the child says for the first time, and without separate conditioning, I have a drum. The process may go further. From responses such as I have a ... and I want a ..., a smaller unit response I emerges. Small functional units may, of course, be separately learned, particularly through the educational reinforcement supplied by those who teach children to speak, but they also appear to emerge as by-products of the acquisition of larger responses containing identical elements, very much as in echoic and textual behavior. Just as a speaker who possesses well-developed echoic behavior may imitate new complex sound-patterns heard for the first time, so the individual who possesses a well-developed minimal repertoire of tacts may “describe” a new complex situation when seen for the first time.
[[emergence]] [[learning]] [[essay]] [[Difference and Repetition]], repetition of process differentiates responses
[[VB147]]
The considerable difference between a given state of affairs and the verbal behavior which it comes to control means that, to a listener, verbal behavior lacks the richness, complexity, and detail of “direct experience [the discourse of the stoker doesn't represent the stoker] [[A Thousand Plateaus]]
But [[generalize]]ation]], like [[metaphor]], is merely a characteristic of [[stimulus control]]. The more precise control established by the community in [[abstraction]] has sometimes caused this term to be applied to (1) the history of reinforcement producing the desired result, (2) the resulting response, and (3) the controlling property of stimuli.
[[VB154]]
What are essentially relations between words and words come to be treated as relations between words and things
[[quote]] [[essay]] [reminds of the epistemology essay and computing relations???]
[[VB162]]
section title: VERBAL BEHAVIOR UNDER THE CONTROL OF PRIVATE STIMULI [fn 17: Some of the points in the present section were first discussed in an article entitled “The Operational Analysis of Psychological Terms,” in the Psychological Review, 1945, 52, pp. 270-277, reprinted in the author’s Cumulative Record (rev. ed.) 1961, New York: Appleton-Century-Crofts. A more extensive discussion in reference to a general science of human behavior, appears in Science and Human Behavior, particularly in Chapter XVII, “Private Events in a Natural Science]
[[review]] [[revisit]] this whole section [[cognition]]
[[VB163]]
[[stimulus control]] is not only “stretched” but “invented.” A response which has received a special measure of reinforcement is emitted in the absence of the circumstances under which it is characteristically reinforced. We see this in the behavior of children: a response which has been enthusiastically received on one occasion is repeated on a different and inappropriate occasion. In a still greater distortion, a response is emitted under circumstances which normally control an incompatible response. We call the response a lie.
[[constructivism]]
[[VB164]]
The action which a [[listener]] takes with respect to a verbal response is often more important to the [[speaker]] than generalized reinforcement. The behavior of the alert, mature speaker is usually closely related to particular effects
[[VB184]]
That is nonsense; but it is ravishing [[poetry]]. [[quote]]
[[VB186]]
It is the exceptional environment which sets up self- descriptive behavior with respect to such events. Marcel Proust7 was the introspective product of such an environment and has recorded at length his search for the precise stimuli generating emotional reactions and the earlier history which gave them their power. The reader of Proust is, as a result, more likely to note passing responses and to make some effort to explain them. It is generally the case, however, that the response occurs before the appropriate stimulus can be identified, and certainly without recognition on the part of the listener or reader of the earlier history responsible for it. The emotional reactions aroused by proper names are involved in “Freudian” forgetting and serve as a special consequence working for or against the process of nomination when a name is given to a new object or person. In testing whether we “like” a name or whether it is appropriate under such circumstances, we are presumably testing conditioned responses of the present sort. Such responses are taken into account in giving names to products or actors and actresses in order to encourage public support or patronage.
[[Proust]] [[covert]] [[cognition]]
[[VB191]]
A [[definition]] of [[verbal]] behavior as [[behavior]] reinforced through the [[mediation]] of other persons needs, as we shall see, certain refinements. Moreover, it does not say much about the behavior of the [[listener]], even though there would be little verbal behavior to consider if someone had not already acquired special responses to the patterns of energy generated by the [[speaker]]. This omission can be justified, for the behavior of the listener in mediating the consequences of the behavior of the speaker is not necessarily verbal in any special sense. It cannot, in fact, be distinguished from behavior in general, and an adequate account of verbal behavior need cover only as much of the behavior of the listener as is needed to explain the behavior of the speaker. The behaviors of speaker and listener taken together compose what may be called a total verbal [[episode]].
Once a [[repertoire]] of verbal behavior has been set up, a host of new [[problem]]s arise from the interaction of its parts. Verbal behavior is usually the effect of [[multiple]] causes. Separate variables combine to extend their functional [[control]], and new forms of behavior [[emerge]] from the recombination of old fragments
[[Verbal Behavior]]
The direction to be taken in an alternative approach is dictated by the task itself. Our first responsibility is simple description: what is the [[topography]] of this subdivision of human behavior? Once that question has been answered in at least a preliminary fashion we may advance to the stage called explanation: what conditions are relevant to the occurrence of the [[behavior]]—what are the [[variable]]s of which it is a [[function]]? Once these have been identified, we can account for the [[dynamic]] characteristics of [[verbal]] behavior within a framework appropriate to human behavior as a whole. At the same time, of course, we must consider the behavior of the [[listener]]. In relating this to the behavior of the [[speaker]], we complete our account of the verbal episode
[[VB35]]
Still another set of problems arises from the fact, often pointed out, that a [[speaker]] is normally also a [[listener]]. He reacts to his own behavior in several important ways. Part of what he says is under the control of other parts of his verbal behavior. We refer to this interaction when we say that the speaker qualifies, orders, or elaborates his behavior at the moment it is produced. The mere emission of responses is an incomplete characterization when behavior is composed. As another consequence of the fact that the speaker is also a listener, some of the behavior of listening resembles the behavior of speaking, particularly when the listener “understands” what is said
[[VB35]]
Although the emphasis is not upon experimental or statistical facts, the book is not theoretical in the usual sense. It makes no appeal to hypothetical explanatory entities. The ultimate aim is the [[predict]]ion and [[control]] of [[verbal]] behavior.
[[VB44]]
It is usually asserted that we can see [[meaning]] or [[purpose]] in [[behavior]] and should not omit it from our account. But meaning is not a property of behavior as such but of the [[condition]]s under which behavior occurs. Technically, meanings are to be found among the [[independent variable]]s in a functional account, rather than as properties of the [[dependent variable]]. When someone says that he can see the meaning of a response, he means that he can infer some of the variables of which the response is usually a function
[[VB45]]
In defining [[verbal]] behavior as behavior reinforced through the [[mediation]] of other persons we do not, and cannot, specify any one form, mode, or medium. Any movement capable of affecting another organism may be verbal. We are likely to single out vocal behavior, not only because it is commonest, but because it has little effect upon the physical environment and hence is almost necessarily verbal.
Pointing to words is verbal—as, indeed, is all [[point]]ing, since it is effective only when it alters the behavior of someone. The definition also covers manipulations of physical objects which are undertaken because of the effect upon people, as in the use of ceremonial trappings. In the case of any medium, the behavior is both verbal and nonverbal at once—nonverbal in the effect upon the medium—verbal in the ultimate effect upon the observer
[[VB46]]
This brings us to an important principle in the analysis of behavior. We distinguish between an [[instance]] of a response and a [[class]] of [[response]]s. A single response, as an instance of the activity of an organism, may be described as fully as facilities will permit. But when we are concerned with the [[prediction]] of future behavior it may be either impossible to predict the great detail of the single instance or, more likely, unimportant to do so. All we want to know is whether or not a response of a given class will occur
[[VB47]]
A technique which permits the reconstruction of a datum is unusual. [[science]] does not generally resort to models or mimicry; its [[description]]s of events do not resemble those [[event]]s. In the field of nonverbal behavior we usually do not report behavior by imitating it. Yet in speaking a language under study the scientist uses mimicry in lieu of the more usual method of description which bears no point-to-point correspondence with the thing described. [[isomorphism]]
[[VB49]]
We are also likely to overlook the fact that in a direct [[quote]]ation we are [[infer]]ring something about the [[condition]]s under which a response was emitted, or about characteristic effects on a [[listener]]. [[contingency]]
[[VB50]]
What is needed for present purposes—and what the traditional “word” occasionally approximates—is a [[unit]] of [[behavior]] composed of a [[response]] of identifiable [[form]] [[function]]ally related to one or more [[independent variable]]s... An extrapolation of this concept to the [[verbal]] field is central to the analysis represented by the rest of this book..
The kinds of [[behavior]] in which we are usually interested have, as we have seen, an effect upon the [[environment]] which has a return effect upon the [[organism]]. Such behavior may be distinguished from activities which are primarily concerned with the internal economy of the organism by calling activities which operate upon the environment “[[operant]] behavior.” Any unit of such behavior is conveniently called “an operant.” For most purposes “operant” is interchangeable with the traditional “[[response]],” but the terms permit us to make the distinction between an [[instance]] of behavior (“So-and-so smoked a cigarette between 2:00 and 2:10 P.M. yesterday”) and a kind [[[class]]? ] of behavior (“cigarette smoking”). The term “response” is often used for both of these although it does not carry the second meaning easily. The description of an instance of behavior does not require a description of related [[variable]]s or of a [[function]]al relation. The term operant, on the other hand, is concerned with the [[predict]]ion and [[control]] of a kind of behavior. Although we observe only instances, we are concerned with [[law]]s which specify kinds..
[[VB52]]
The distinction raises the issue of formalism. A [[response]], as an [[instance]], can be completely described as a [[form]] of [[behavior]]. An [[operant]] specifies at least one relation to a [[variable]]—the effect which the behavior characteristically, though perhaps not inevitably, has upon the [[environment]]—and is therefore not a purely formal unit. A formal specification cannot be avoided, since a response can be said to be an instance of an operant only through objective identification. But identification is not enough. As an instance of a [[verbal]] operant, the response must occur as a [[function]] of a certain variable. In this way we may distinguish between the operant fast in which the controlling variable [ [[independent variable]] ] is shared by the operant speedy and the operant fast in which the controlling variable is similar to that in the operant fixed.
Can't just have the response-[[consequent]] relation, we need a full [[contingency]] which includes the [[antecedent]]. [[discriminative stimulus]]
A bit of behavior as small as a single [[speech]]-sound, or even a pitch or stress pattern, may be under independent control of a manipulable variable (we shall see evidence of such “atomic” verbal operants later). On the other hand, a large segment of behavior—perhaps a phrase like vast majority or when all is said and done or the truth, the whole truth, and nothing but the truth or a whole sentence such as Haste makes waste—may be shown to vary under a similarly unitary functional control
[[VB53]]
We are concerned here not only with the fact that certain specific [[form]]s of [[verbal]] behavior are observed but that they are observed under specific circumstances. These [[control]]ling circumstances add a dynamic character to “[[repertoire]]” which is lacking in “vocabulary.” [[antecedent]]
Our basic [[datum]] is not the occurrence of a given [[response]] as such, but the [[probability]] that it will occur at a given time. Every verbal [[operant]] may be conceived of as having under specified circumstances an assignable probability of [[emission]]—conveniently called its “[[strength]].” We base the notion of strength upon several kinds of evidence. [[antecedent]]
The scientist who continues to talk shop during a thrilling football game or in a noisy subway and the steamrolling conversationalist who will brook no interruption give evidence of especially strong [[repertoire]]s
[[VB54]]
Among the unusual circumstances which give evidence of [[strength]] we may include inadequate [[verbal]] stimuli; from the fact that one sees his name in unclear or briefly exposed printed material or hears his name in a noisy conversation in a room we [[infer]] the strength of his name in his own repertoire.
A [[response]] may be executed with a certain [[energy]], which is not to be confused with “[[strength]]” as a synonym for “[[probability]].” Energy seems to vary with probability, and is frequently accepted as a measure of strength. An energetic and prolonged NO! is not only a strong response, it suggests a strong tendency to respond which would not easily be overcome by competing forces. On the other hand, a timid brief No is accepted as an instance of a weak [[operant]] from which we [[infer]] some inadequacy in the [[independent variable]]s. Relative energy permits a similar inference
[[VB55]]
Another property of [[emit]]ted [[verbal]] behavior is the [[speed]] with which successive parts of a sample follow one another or the speed with which a [[response]] appears after the occasion for it has arisen [[antecedent]]. In general we accept the implication that strong verbal behavior is rapid and that hesitant speech indicates little strength. A ready answer is one which the speaker is “strongly inclined to make”; a delay in answering leads us to suspect that something is possibly amiss in the controlling circumstances. The weakness may be due to competitive behavior
A third possible indication of relative strength is the immediate [[repetition]] of a response. Instead of saying NO! with great energy one may say No! No! No
pg 58 discusses other individuating factors
[[VB56]]
We can allow for special conditions of this sort in evaluating any given measure only by inferring [[operant]] [[strength]], not from the fact that one speaks loudly, but from the fact that he speaks at an [[energy]] level above that which would ordinarily prevail under the same circumstances. There is some consolation in the fact that changes in strength due to these special conditions usually exaggerate “natural” strength. They may lead us to mistake the relative importance of an indicator but not its [[direction]] or [[sign]].
[what we detect is [[difference]] ]
The [[verbal]] [[community]], as a collection of [[listener]]s, forces [[speech]] toward a standard [[level]] of [[speed]], [[energy]], and repetitiveness
[[repetition]]
[[VB57]]
A third type of evidence is the over-all [[frequency]] with which a response appears in a large sample of [[verbal]] [[behavior]]. For example, the number of times a speaker [[emit]]s I, me, my, and mine is sometimes taken to indicate the strength of his behavior with respect to himself as a controlling [[variable]]—his “egocentricity” or “conceit.”
[61] Although over-all frequencies are interesting and often satisfactory data, they depart from our program of dealing with the individual speaker upon a given occasion
[[VB59]]
The [[probability]] that a [[verbal]] [[response]] of given [[form]] will occur at a given time is the basic [[datum]] to be [[predict]]ed and [[control]]led. It is the “[[dependent variable]]” in a [[functional analysis]]. The [[condition]]s and [[event]]s to which we turn in order to achieve prediction or control—the “[[independent variable]]s”—must now be considered.
Any [[operant]], [[verbal]] or otherwise, acquires [[strength]] and continues to be maintained in strength when [[response]]s are frequently followed by the [[event]] called “[[reinforcement]].” The process of “[[operant]] conditioning” is most conspicuous when verbal behavior is first acquired.
[[VB60]]
If the [[contingency]]es of reinforcement are for any reason ever relaxed, the properties of the verbal response undergo a change in the other direction.... partly because other aspects of the situation begin to control the behavior.
Reinforcing consequences continue to be important after [[verbal]] [[behavior]] has been acquired. Their principal function is then to maintain the response in strength. How often the speaker will emit a response depends, other things being equal, upon the over-all frequency of reinforcement in a given verbal community. If reinforcements cease altogether through some change of circumstance, an operant grows weak and may effectively disappear in “[[extinction]].”
[[VB62]]
[[operant]] reinforcement, then, is simply a way of [[control]]ling the [[probability]] of occurrence of a certain [[class]] of [[verbal]] responses. If we wish to make a response of given form highly probable, we arrange for the effective reinforcement of many instances. If we wish to eliminate it from a verbal [[repertoire]], we arrange that reinforcement shall no longer follow. Any information regarding the relative frequency of reinforcement characteristic of a given verbal community is obviously valuable in predicting such behavior.
A child acquires verbal behavior when relatively unpatterned vocalizations, selectively reinforced, gradually assume forms which produce appropriate consequences in a given verbal community. In formulating this process we do not need to mention stimuli occurring prior to the behavior to be reinforced. It is difficult, if not impossible, to discover stimuli which evoke specific vocal responses in the young child [[shaping]]
Prior stimuli are, however, important in the control of [[verbal]] behavior. They are important because they enter into a three- term [[contingency]] of [[reinforcement]] which may be stated in this way: in the presence of a given [[stimulus]], a given response is characteristically followed by a given [[reinforcement]]. Such a contingency is a property of the [[environment]]. When it prevails, the organism not only acquires the response which achieves reinforcement, it becomes more likely to [[emit]] that response in the presence of the prior stimulus. The process through which this comes about, called “[[stimulus discrimination]],” has been extensively studied in nonverbal [[behavior]]. Numerous examples will be described in later chapters. [[probability]]
Although reinforcement provides for the control of a response, we do not use reinforcement as such when we later exercise [[control]]... [68] Subsequently we control the response, not by further reinforcement, but by depriving or satiating [[deprivation]]... If the response has been reinforced in several different ways, we may control it by changing, not the deprivation, but the impending reinforcemen
[[VB63]]
When an [[operant]] is acquired it becomes a member of a group of responses which vary together with the relevant [[deprivation]]. A man gets a drink of water in many ways—by reaching for a glass of water, by opening a faucet, by pouring water from a pitcher, and so on. The [[verbal]] operant Water! becomes a member of this group when it is reinforced with water. The [[probability]]es of all operants so reinforced vary together. [[response]]s in all [[class]]es are made more likely to occur when we deprive the man of water or cause him to lose water— for example, by inducing violent exercise, by feeding him salt which must be excreted, or by raising the temperature of his surroundings so that he sweats. On the other hand, we make all such responses less likely to occur by causing the man to drink large amounts of water... The important events are the [[operation]]s which are said to change the state of thirst. In [[predict]]ing and controlling the verbal response Water! we do not change thirst directly; we engage in certain operations which are said to change it. It is simpler to omit any reference to a “[[drive]]” and say that the probability of the response Water! can be changed through these [[operation]]s.
[[VB64]]
section heading [[aversive]] [[control]]
There are other types of [[consequence]]s which alter the [[strength]] of a [[verbal]] [[response]]. Behavior may be [[reinforce]]d by the reduction of aversive stimulation. When an aversive stimulus itself is reduced, we call the behavior [[escape]]. When some condition which characteristically precedes an aversive stimulus is reduced, we speak of [[avoidance]]. Thus, if the verbal response Stop it! is reinforced when it brings about the cessation of physical injury, the response is an example of escape. But Don’t touch me! may be reinforced when it brings about the cessation of the threat of such injury—of events which have previously been followed by such injury and which are therefore conditioned aversive stimuli—and the behavior is then called avoidance. When a speaker has had a history of such reinforcement, we [[control]] his verbal behavior by creating appropriate circumstances. We make him say Stop it! by pummeling him, or Don’t touch me! by threatening to do so.
[[VB65]]
Our interest in the [[listener]] is not, however, merely an interest in what happens to the [[verbal]] stimuli created by the [[speaker]]. In a complete account of a verbal [[episode]] we need to show that the behavior of the listener does in fact provide the conditions we have assumed in explaining the [[behavior]] of the speaker. We need separate but interlocking accounts of the behaviors of both speaker and listener if our explanation of verbal behavior is to be complete. In explaining the behavior of the speaker we assume a listener who will [[reinforce]] his behavior in certain ways. In accounting for the behavior of the listener we assume a speaker whose behavior bears a certain relation to [[environment]]al conditions. The interchanges between them must explain all the conditions thus assumed. The account of the whole episode is then complete.
[[VB66]]
In a given [[verbal]] [[community]], certain responses are characteristically followed by certain consequences. Wait! is followed by someone’s waiting and Sh-h! by silence. Much of the verbal behavior of young children is of this sort... These effects are not inevitable, but we can usually find one consequence of each response which is commoner than any other... When a response is characteristically reinforced in a given way, its likelihood of appearing in the behavior of the speaker is a function of the [[deprivation]] associated with that [[reinforcement]]
A “[[mand]],” then, may be defined as a verbal operant in which the response is reinforced by a characteristic consequence and is therefore under the functional control of relevant conditions of deprivation or aversive stimulation In particular, and in contrast with [70] other types of verbal operants to be discussed later, the response has no specified relation to a prior stimulus. [instead it is with [[deprivation]] ]
[[VB67]]
A [[mand]] is characterized by the unique relationship between the form of the response and the reinforcement characteristically received in a given verbal [[community]]. It is sometimes convenient to refer to this relation by saying that a mand “specifies” its reinforcement... Frequently both the behavior of the [[listener]] and the ultimate reinforcement are specified. The mand Pass the salt! specifies an action (pass) and an ultimate reinforcement (the salt).
A mand is a type of [[verbal]] [[operant]] singled out by its [[control]]ling [[variable]]s. It is not a formal unit of analysis. No response can be said to be a mand from its form alone. As a general rule, in order to identify any type of verbal [[operant]] we need to know the kind of [[variable]]s of which the [[response]] is a [[function]]. In a given [[verbal]] [[community]], however, certain formal properties may be so closely associated with specific kinds of variables that the latter may often be safely [[infer]]red. In the present case, we may say that some responses, simply because of formal properties, are very probably [[mand]]s.
But we have to explain not only the relationships between patterns of response and reinforcements, but the [[maintenance]] of the behavior of the listener. When we come to consider other types of verbal operants, we shall find that the behavior functions mainly for the benefit of the listener, and in that case his behavior is not difficult to explain. The mand, however, works primarily for the benefit of the speaker; why should the listener perform the necessary mediation of reinforcement?
What needs to be explained, in other words, is the total speech [[episode]]. This can be done by listing all relevant events in the behavior of both speaker and listener in their proper temporal order. The deprivation or aversive stimulation responsible for the strength of each must be specified, and the reinforcing contingencies must explain the origin and continued maintenance of the behavior.
[[VB69]]
Classifying the [[behavior]] of the [[speaker]] in terms of the characteristics of the mediating behavior of the [[listener]] may be distinguished from the traditional practice of defining requests, commands, prayers, advice, warnings, permission, offers, and calls in terms of “the [[intention]]” of the speaker. In general, intention may be reduced to [[contingency]]es of reinforcement. In the present case the conspicuous differences lie in the behavior of the listener and the conditions which control it. But these result in different contingencies of reinforcement for the speaker, which yield different [[dynamic]] properties, different interrelationships among responses, different intonations, and so on.
[[VB70]]
Any response used in conjunction with different [[mand]]s specifying different [[reinforcement]]s comes under the control of different [[deprivation]]s and acquires certain [[general]] properties. Please is the best known example. It is strengthened by almost any state of deprivation, and is often [[emit]]ted without further specification of the behavior of the reinforcer... Since the [[listener]]’s subsequent behavior may be relevant to many states of deprivation, these responses come under a rather broad [[control]]. [[generalize]]d mands reinforced by the [[attention]] of the listener are often used in [[conjunction]] with other types of verbal behavior to be considered later...
Particularly relevant are level of [[deprivation]] and [[intensity]] of [[aversive]] stimulation and the extent to which a given listener or someone like him has reinforced similar responses in the [[past]] (or has refused to do so). Such [[condition]]s have a relatively greater effect upon the mand than upon the other types of [[verbal]] behavior to be discussed in later chapters. The wide range of dynamic properties which result makes the mand a very expressive type of [[operant]].
[[VB75]]
The net result of a long history of responding to [[mand]]s is a general tendency no longer easily traced to any form of [[deprivation]] or aversive stimulation. The [[listener]] obliges and may not even be aware (see Chapter 5) that he is doing so.
[[VB76]]
The [[distinction]] between [[learn]]ed and unlearned [[response]] is much easier to make in terms of a history of reinforcement than in terms of meaning and conscious use.
An important example is crying. Vocal behavior of this sort is clearly an [[unconditioned]] response in the new-born infant. For some time it is a function of various states of [[deprivation]] and aversive stimulation. But when crying is characteristically followed by parental attentions which are reinforcing, it may become [[verbal]] according to our [80] definition. It has become a different behavioral unit because it is now under the control of different variables. It has also probably acquired different properties, for parents are likely to react differently to different intonations or intensities of crying.
[[transition sign]]s
[[VB77]]
A [[mand]] assumes a given form because of [[contingency]]es of reinforcement maintained by the listener or by the verbal [[community]] as a whole
[[VB79]]
Discussion of [[extended mand]]-this is a process of [[stimulus]] [[induction]]
The same process leads in the extreme case to the [[emission]] of [[mand]]s in the absence of any listener whatsoever. The lone man dying of thirst gasps Water! An unattended king calls A horse, a horse, my kingdom fora horse! These responses are “unreasonable” in the sense that they can have no possible effect upon the momentary [[environment]], but the underlying process is [[lawful]]. Through a process of stimulus induction situations which are similar to earlier situations come to [[control]] the behavior, and in the extreme case a very strong response is emitted when no comparable stimulus can be detected.
There are many familiar nonverbal instances of stimulus [[induction]]. It may be true that one cannot open a door without a door or eat a meal without a meal, but in a state of great strength parts of even the most practical behavior occur in the absence of the stimulation required for proper execution.
[[verbal]] behavior may more easily break free from [[stimulus control]], because by its very nature it does not require [[environment]]al support—that is, no stimuli need be present to direct it or to form important links in [[chain]]ing [[response]]s.
[[VB80]]
The special relation between response and consequence exemplified by the [[mand]] establishes a general [[pattern]] of [[control]] over the [[environment]]. In moments of sufficient stress, the speaker simply describes the reinforcement appropriate to a given state of [[deprivation]] or [[aversive]] stimulation. The response must, of course, already be part of his verbal [[repertoire]] as some other type of verbal [[operant]] (Chapters 4 and 5).
[[VB81]]
The specific relation between response and reinforcement which defines a [[mand]] does not, as we have seen, involve a specific prior stimulus. Prior stimuli are not, however, irrelevant. An example of a controlling stimulus has already been cited [where?]. [[verbal]] behavior is reinforced only through the [[mediation]] of another person, but it does not require the participation of such a person for its execution. When it is [[emit]]ted in the absence of a listener, it generally goes unreinforced. After repeated reinforcement in the presence, and [[extinct]]ion in the absence, of a [[listener]], the speaker eventually speaks only in the presence of a listener. Practically all verbal behavior is thus controlled by an [[audience]], as we shall see in detail in Chapter 7.
[[VB83]]
In a very large part of [[verbal]] behavior a given form of response does not yield a specific reinforcement and hence is relatively independent of any special state of deprivation or aversive stimulation. Instead, the [[control]] is exercised by prior stimuli
[[mand]] vs [[tact]]
The effect of this procedure in releasing a response from a specific controlling condition is usually achieved in another way. Instead of using a great variety of reinforcements, each of which is relevant to a given state of deprivation or aversive stimulation, a contingency is arranged between a verbal response and a [[generalized conditioned reinforcer]]. Any event which characteristically precedes many different reinforcers can be used as a reinforcer to bring behavior under the control of all appropriate conditions of deprivation and aversive stimulation [for instance, verbal praise]. A response which is characteristically followed by such a generalized conditioned reinforcer has dynamic properties similar to those which it would have acquired if it had been severally followed by all the specific reinforcers at issue
[[VB86]]
In destroying the specificity of the control exercised over a given form of response by a given condition of deprivation or aversive stimulation, we appear to leave the [[form]] of the response undetermined. Previously we could produce the response Water! by depriving the organism of water and the response Food! by depriving the organism of food. But what is to take the place of deprivation in controlling a response which has achieved a generalized reinforcement? The answer, of course, is some current stimulus. In destroying the specificity of one relation, we make it possible to set up another. We may use our generalized reinforcer to strengthen response a in the presence of stimulus a, response b in the presence of stimulus b, and so on. Whether the speaker emits response a or response b is no longer a question of deprivation but of the stimulus present. It is this controlling relation in verbal behavior which proves to be of great importance for the functioning of the group.[[collective assemblage]] [[assemblage]] [[community]]
Very long winded way of describing the manner in which we can change the [[antecedent]]s of [[mand]]s to those of [[tact]]s. Doesn't make sense in the book; why describe the [[transition]] at all? The notion of an undetermined form as relating to multiple stimuli is interesting.
[[transition sign]]s
[[conditioned aversive stimuli]] (stimuli which frequently precede or accompany aversive stimulation) are also [[reinforce]]ing when their withdrawal is [[contingent]] upon [[behavior]]. [[negative reinforcement]]
[[VB87]]
In analyzing the [[stimulus control]] of [[verbal]] behavior, it is convenient to distinguish between instances in which the controlling stimuli are themselves verbal and those in which they are not. The present chapter is confined to responses under the control of audible or written verbal stimuli supplied by another person or by the speaker himself. A further distinction may be made in terms of the [[resemblance]]s between forms of stimulus and response. The three principal categories to be discussed are [[echoic]], [[textual]], and [[intraverbal]] behavior.
In the simplest case in which [[verbal]] behavior is under the control of verbal stimuli, the response generates a sound- pattern similar to that of the stimulus. For example, upon hearing the sound Beaver, the speaker says Beaver. Evidence of a tendency to engage in such “[[echoic]]” behavior comes from many sources.
[[VB88]]
A [[fragment]]ary [[echoic]] [[behavior]] is evident when one speaker adopts the accent or mannerisms of another in the course of a sustained conversation
[[community]] [[assemblage]] [[essay]]
[[VB89]]
[[echoic]] responses are useful and reinforced when they serve as fill-ins. In answer to the question What will happen to the international situation during the next few weeks? the student may begin During the next few weeks, the international situation...,
[[VB90]]
[[echoic]] behavior is reinforced when it continues to reinstate
the stimulus and to permit the speaker to react to it in other ways. If we have been given complicated directions to be followed, it may be advantageous to repeat them echoically.
Echoic behavior is easily confused with responses which are self-reinforcing because they resemble the speech of others heard at some other time. When a sound pattern has been associated with reinforcing events, it becomes a conditioned reinforcer. If someone repeatedly reinforces behavior with the verbal stimulus Right!, we must not exclude the possibility of the speaker’s reinforcing himself in the same way
[[generalized conditioned reinforcer]]
The self-reinforcing property may be merely an intonation or some other idiosyncrasy of a given speaker or of speakers in general. A child whose mother often entertained at bridge imitated quite accurately the unintelligible noise of a room full of people talking volubly
[[VB91]]
A distinction must also be drawn between [[echoic]] behavior and the later reproduction of overheard speech
Echoic behavior does not depend upon or demonstrate any instinct or [[faculty]] of [[imitation]]. The formal similarity of stimulus and response need not make the response more likely to occur or supply any help in its execution
parrot does not echo a verbal stimulus because the stimulus sets up a train of events which naturally lead to a set of muscular activities producing the same sounds; the parrot’s distinguishing capacity is to be reinforced when it makes sounds which resemble those it has heard. What is “instinctive” in the parrot, if anything, is the capacity for being thus reinforced. Echoic behavior, like all verbal behavior, is shaped and maintained by certain contingencies of reinforcement.
[[VB92]]
We might say that the child “has no way of knowing how to execute a particular [[response]] for the first time”; strictly speaking, we should say that the response is not yet a function of any [[variable]] available to the parent..
When some echoic behavior has been acquired, the acquisition of a new [[unit]] is simplified. Exploratory behavior may be narrowed. In acquiring an [[echoic]] [[repertoire]] the skillful speaker increases the chances that he will correctly echo new material by learning not to respond as he has already responded ineffectively, just as he learns not to look where he has already looked for his hat. Partially echoic responses will be made to a novel stimulus as the result of earlier similar [95] [[contingency]].
[[quote]]
[[VB93]]
But we cannot wait until such a response appears spontaneously, and the method of progressive shaping may take too much time. If we can evoke the response as an assemblage of small [[echoic]] units never before arranged in this order, the behavior can be suitably [[reinforce]]d
[[emergence]]
[[VB94]]
We pick up a large part of our verbal [[repertoire]] by echoing the behavior of others under circumstances which eventually control the behavior non-echoically. The advantage gained possibly supplies another example of indirect reinforcement of echoic behavior persisting into adult life.
[[essay]]
[[VB96]]
[[echoic]] behavior is therefore exceptional in the extent to which novel occasions may give rise to accurate responses. It is also exceptional in the extent to which the reinforcement of such behavior contributes to the [[general]] strengthening of the basic [[repertoire]], and hence to the strengthening of all echoic operants
[[essay]]
[[VB97]]
The [[phenomenon]] by which an actor makes another actor speak through the production of a given [[utterance]] [[AAD p1-1]]
A [[definition]] of [[verbal]] behavior as [[behavior]] reinforced through the [[mediation]] of other persons needs, as we shall see, certain refinements. Moreover, it does not say much about the behavior of the [[listener]], even though there would be little verbal behavior to consider if someone had not already acquired special responses to the patterns of energy generated by the [[speaker]]. This omission can be justified, for the behavior of the listener in mediating the consequences of the behavior of the speaker is not necessarily verbal in any special sense. It cannot, in fact, be distinguished from behavior in general, and an adequate account of verbal behavior need cover only as much of the behavior of the listener as is needed to explain the behavior of the speaker. The behaviors of speaker and listener taken together compose what may be called a total verbal [[episode]].
[[VB35]]
In defining [[verbal]] behavior as behavior reinforced through the [[mediation]] of other persons we do not, and cannot, specify any one form, mode, or medium. Any movement capable of affecting another organism may be verbal. We are likely to single out vocal behavior, not only because it is commonest, but because it has little effect upon the physical environment and hence is almost necessarily verbal.
Pointing to words is verbal—as, indeed, is all [[point]]ing, since it is effective only when it alters the behavior of someone. The definition also covers manipulations of physical objects which are undertaken because of the effect upon people, as in the use of ceremonial trappings. In the case of any medium, the behavior is both verbal and nonverbal at once—nonverbal in the effect upon the medium—verbal in the ultimate effect upon the observer
[[VB47]]
...he took the word [[virtual]]... he gave it a new meaning, completely [[rigorous]]... That no longer meant going toward the [[indefinite]]; rather, it meant un[[assign]]able, yet also [[determine]]d. [dx/dy=0/0, but that 0/0 is not equal to 0]
[[L81-20]]
[[territory]] is purely a [[problem]] of the [[environment]] because it represents an exclusively [[subjective]] [[product]], the presence of which even the most detailed knowledge of the surroundings offers no explanation at all.
His definition of territory seems to involve a defense function, that is, in a territory there can be intruders, of the same species or otherwise.
[[WA88]]
...everything a [[subject]] [[perceive]]s belongs to its perception world, and everything it produces to its effect world. These two worlds, of [[perception]] and production of effects, form on closed unit, the [[environment]].
Not one part of the tick's [[body]] has the character of a [[machine]]. There are machine [[operator]]s at work all over the place. [[larval selves]]... a stimuli has to be noticed by the subject and does not appear at all in objects. Roll of the dice; chance/difference affirmed at every step of the way
[[WA42]]
every living cell is a [[machine]] [[operator]] that [[perceive]]s and [[produce]]s and therefore possesses its own particular (specific) perceptive [sign]]s and impulses or effect signs. The complex perception and production of effects in every animal subject can thereby be attributed to the cooperation of small cellular-machine operators...
[[WA46]]
It is only a [[question]] of the fact that, among the hundreds of [[effect]]s that emanate from the mammal's body, only three become feature carriers for the tick. Why these three and no others?
[[WA47]]
While we said before, "there can be no living [[subject]] without [[time]]," now we shall have to say, "Without a living subject there can be no time." We shall see... the same is true of [[space]].
[[WA50]]
...the tick's perception [[sign]]s [[transform]] the butyric acid stimulus into a [[perception]] [[mar]] of its [[environment]]... The first task of research on such [[environment]]s consists in seeking out the [[animal]]s perception signs and, with them, to [[construct]] the animal's environment... Every subject spins out, like the spider's threads, its [[relation]]s to certain [[quality]]s of things and [[weave]]s them into a solid web., which carries out its existence.
[[A Thousand Plateaus]]
[[WA52]]
[[space]] and [[time]] are of no immediate use to the [[subject]]. They only become meaningful when numerous [[perception]] [[mark]]s (features) must be distinguished that would otherwise without the [[spatiotemporal]] framework of the [[environment]]. coincide.
[[WA53]]
[[asignifying]] [[sign]]s are discussed on para2. Plan=[[signifying]] [[regime]], but there is no [[plan]], there is only asignification
[[WA42]]
<<tabs "[[A stroll through Stroll]] [[The TiddlyWiki layout]] [[Using tiddlers]] [[Linking in Stroll, part 1]] [[Linking in Stroll, part 2]] [[Linking in Stroll, part 3]] [[New tiddler linked here]] [[Two columns]] [[Advanced stuff]] [[Troubleshooting]] [[Stroll vs Roam]] [[Recent updates to Stroll]] [[Download Stroll]] [[Updating Stroll]] [[Add Stroll to your TW]] [[Remove Stroll from your TW]] [[Get goodies]] [[Help / Acknowledgments]] [[Help us]]" "[[A stroll through Stroll]]" "$:/state/strollhometabs" "tc-vertical">>
[[area]]
[[experience]]
[[exterior]]
[[group]]
[[illusion]]
[[interior]]
[[intermediate]]
[[membrane]]
[[object]]s
[[transitional]]
[[transitional spaces]]
[[transitional objects]]
[[reading]] and [[writing]], a [[binary]] of the [[consumer]]:[[producer]] type. No need to separate them today, other than as [[marketing]]
The physiological signals that convey [[information]] about vision are identical to those that carry information about odors. Here we see a key principle of brain function: the type of information conveyed by an [[action potential]] is [[determine]]d not by the [[form]] of the [[signal]] but by the [[pathway]] the signal travels in the [[brain]]. The brain thus analyzes and interprets [[pattern]]s of incoming electrical signals carried over specific pathways, and in turn creates our [[sensation]]s of sight, touch, taste, smell, and sound.
most [[presynaptic]] [[terminal]]s end on the [[postsynaptic]] [[neuron]]'s [[dendrite]]s, but some also terminate on the [[soma]] or, less often, at the beginning or end of the [[axon]] of the postsynaptic cell. Some presynaptic neurons [[excite]] their postsynaptic target cells; other presynaptic neurons [[inhibit]] their target cells.
The [[neuron doctrine]] holds that each neuron is a discrete cell with distinctive [[process]]es arising from its cell body and that neurons are the signaling units of the [[nervous system]].
[[c3t2]]
the [[principle]] of dynamic polarization states that electrical s[[signal]]s within a nerve cell flow in only one direction: from the postsynaptic sites of the neuron, usually the dendrites and the cell body, to the trigger region at the axon. From there, the action potential is propagated along the entire length of the axon to its terminals. in most neurons studied to date, electrical signals in fact travel along the axon in one direction.
connectional specificity states that nerve cells do not [[connect]] randomly with one another in the [[formation]] of [[network]]s but make specific connections-at particular contact points-with certain postsynaptic [[target]] cells and not with others. These two principles are the basis of the modern [[cellular-connectionist]] approach to studying the brain.
the feature that most [[distinguish]]es one type of neuron from another is [[form]], specifically the number of the [[process]]es arising from the [[soma]].
three lagre groups, [[unipolar]], one primary process, [[bipolar]] two primary processes, [[mltipolar]].
[[x58]]
..almost all [[neuron]]s can be described by a model neuron that has four [[function]]al [[component]]s that [[generate]]t he four types of [[signal]]s: a receptive component for producing graded input signals, a summing or integrative component that produces a trigger signal, a conducting long-range signaling component that produces [[all-or-nothing]] conducting signals, and a synaptic component that produces output signals to the next neuron in line or a muscle or gland cells.
[65, the] ionic current changes the [[membrane potential]] [the voltage in the membrane], producing a local signal called the [[receptor potential]]. [in this example, it is the receptor of a stretch from a muscle, this RP travels locally, and only fires off an action potential if it makes it to the trigger zone.] The [[amplitude]] and [[duration]] of a receptor potential depend on the [[intensity]] of the [[stimulus]]... receptor potentials are graded, unlike APs. Most are depolzarizing (excitatory)
[66] If the receptor potential reaches the first [[node of Ranvier]] in the [[axon]] and is large enough, it will trigger an action potential...
The AP in the presynaptic terminal of the neuron [at the end of the axon] initiates the release of a chemical substance, or [[neurotransmitter]], into the synaptic cleft... the transmitter binds to receptor [[protein]]s in the postsynaptic membrane. thereby directly or indirectly opening [[ion]] [[channel]]s The ensuing flow of current briefly alters the membrane potential of the postsynaptic cell, a change called the [[synaptic potential]]. Like the receptor potential, the synaptic potential is [[grade]]d; its amplitude depends on how much transmitter is released.
[67] synaptic potentials, like receptor potentials, spread passively. Thus, the change in potential will remain local unless the signal reaches beyond the axon's initial segment where it can give rise to an action potential. Some [[dendrite]]s are not entirely passive but contain specializations that boost the synaptic potential, thereby increasing its efficacy to produce an action potential. p67 has a summary table.
A [[series]] of headings, p66: the input component produces graded local signals, p67 the trigger zone makes the decision to generate an action potential [no notes above are from here, just the last heading], the conductive component propagates an all-or-none action potential, p68 the output component releases neurotransmitter
Action potentials are generated by a sudden influx of NA+ through channels in the cell membrane taht open and close in response to changes in membrne potential. When an input signal (a receptor potential or synaptic potential) depolarizes an area of membrane, the local change in membrane potential opens local NA+channels that allow Na+ to flow down its[[concentration gradient]], from outside the cell where the Na+ concentration is high to inside where it is low.
Because the initial segment of the axon has the highest density of voltage-sensitive Na+ channels and therefore the lowest [[threshold]] for generating an action potential, an input signal spreading passively along the cell membrane is more likely to give rise to an AP at the initial [[segment]] of the axon than at other sites in the cell. This part of the axon is therefore called the [[trigger zone]]. It is here that the activity of all receptor (or synaptic) potentials is summed and where, if the sum of the input signals reaches [[threshold]], the neuron generates an action potential.
APs are highly stereotyped, varying only subtly (sometimes importantly) from one cell to another.... only two features of the conducting signal convey information: the number of action potentials and the time [[interval]]s between them.
Interconnected neurons form anatomically and functionally distinct pathways-[[labeled lines]]-[[pathway]]s of connected neurons, these labeled [[line]]s, not individual neurons, that convey information.
Whether the synaptic potential has an excitatory or inhibitory effect depends on the type of [[receptor]] in the postsynaptic cell, not on the particular chemical neurotransmitter. The same transmitter substance can have different effects at different receptors.
Receptor potentials may come from a [[multiplicity]] of inputs on dendrites and the [[soma]], which can then be summed up. not a quote, look at figures 3-8 and 3-9
[[x59]]
https://cartographies.tiddlyhost.com
cartographies.tiddlyhost.com
https://cartographies.tiddlyhost.com/thumb.png